【问题标题】:Is Google starting to use Dart? Did they build a Closure (or GWT) to Dart compiler? [closed]谷歌开始使用 Dart 了吗?他们是否为 Dart 编译器构建了闭包(或 GWT)? [关闭]
【发布时间】:2014-07-03 11:28:31
【问题描述】:

我们正在尝试决定是否使用 Dart 来构建 Web 应用程序。我们正在寻找一种能够在未来 5 年内保持高度相关性的技术。

现在 EcmaScript 6 规范即将到来(应该在 2014 年底推出),我们无法确定 Dart 是否真的会长期存在。

这是因为据我们所知,Google 最初的 Dash(现为 Dart)计划缺少一个部分。正如谷歌在其泄露的备忘录中最初计划的那样:

大型 Google Apps 的现有代码库如何?他们不是必须重建一切才能利用 Dash 吗? Dash 交叉编译器应该能够采用类型化的闭包代码(有一些限制)并转换为 Dash。虽然迁移过程不会完全自动化,但它应该会更容易迁移到 Dash 代码库。

因此,这就是提出这个问题的原因。 迄今为止,Google 是否有任何努力为 Dart 编译器或翻译器构建闭包(或 GWT)?此外,您是否知道 Google 是否开始将它用于任何现有或新的生产网络应用程序?

换句话说,我们担心 Dart 将只是一种用于填补过渡期并推动 Javascript 更快迭代的语言,但一旦主流浏览器支持 ES6(和 ES6+)将被遗弃。

我们不想就 Dart 的优缺点展开任何争论,我们只需要一些可以帮助我们做出这个关键决定的事实信息。 谢谢

【问题讨论】:

  • 我认为没有人可以向您保证任何事情。但是,如果 Dart VM 将成为 Chrome(消费者版)的一部分,那么它将会有所作为。 Dart 可能最终成为主要的服务器端语言,但在开始任何大型项目之前,我会等待它的 VM 成为 Google App Engine 的一部分。对于小型项目,它已经完全准备好了,并且 dart2js 具有非常好的性能,有时甚至比手写 JS 还要好 + 它提供了树抖动。
  • 是的,我知道 Dart 的优点,我认为它已经为我们的项目做好了准备。我担心只是因为 Google 似乎仍然没有在内部使用它。
  • Google 将 Dart 用于内部和外部应用程序。 Adwords 前端开始迁移到 Dart 等。
  • @SethLadd 非常感谢您提供的信息。连同我打开的 dartlang 线程:groups.google.com/a/dartlang.org/forum/#!topic/misc/v6wsIW96QcA 我已经获得了能够押注 Dart 未来所需的所有反馈。

标签: javascript gwt dart google-closure ecmascript-harmony


【解决方案1】:

到目前为止,我主要使用GWT(科学网络应用程序)进行开发,但最近我也开始使用Dart

Google 对Dart 投入了大量资金(查看所有 I/O 讨论),所以我无法想象他们会放弃它。 ES6 也将解决一些问题(模块、类等),但它仍然是Javascript,存在所有问题和缺点。

在使用GWT 时,有两个方面使得开发大型网络应用程序实际上是可行的:

  • 结构化语言 (Java) 和静态类型
  • 编译器

1.) Java 是一种静态类型语言,因此您可以在开发过程中轻松捕获错误。此外,当您的 IDE 了解代码的结构时,重构代码会容易得多。同样的优势也适用于Dart

2.) GWT 编译器和Dart 编译器都非常复杂,它们可以做到global optimizations (https://plus.google.com/111739836936169749229/posts/DSUgfWefyR3) 和tree shaking (https://plus.google.com/110412141990454266397/posts/VK8URgZiLbS)。如果您开发具有 100.000 LOC 的 Web 应用程序,这是非常重要和关键的。

Dart 在开发故事方面比GWT 有一大优势:Dartium 包含DartVM。这使得开发和迭代与Javascript 一样方便 (GWTSuperDevMode,但没那么快)。

您可以签出Java2Dart,它可用于将GWT 代码转换为Dart

【讨论】:

  • 我认为 GWT 在过去的播出时间更多,但这可能是由于 Google IO 普遍从开发人员转向营销和公关。
  • GWT 之所以没有在 I/O 上亮相,是因为它不再归 google 所有,并且有自己的开发者大会 (GWT.create)
  • 我说的是从 Google IO 表示的角度来看,Google 看起来如何真正致力于 GWT 压缩到 Dart。当 GWT 进入现场时,谷歌给了它大量的 IO 播出时间,但是,尽管如此,他们从项目中撤出了资源,即使在这个阶段我也看不到 Dart 的这种承诺。我认为他们现在打得非常安全。 GWT 的采用率也非常好(Sencha、Smart GWT、Vaadin 等)但我总体上是乐观的。
  • ES6 引入了无法填充/填充的功能,因此在 2018 年之前依赖它是一个很大的信念。我在这里说 ES6 并没有影响 Dart 的优势,因为 Dart 是== ES6 now + jQuery + modernizer + .... + IDE + 调试器 + 更快的 VM(现在在 Android 手机上!!)。以及自 2014 年 7 月 4 日起的 ECMA 标准;-)
【解决方案2】:

我还没有听说过 Closure to Dart 转换器。我认为这已经过时了,因为 Dart 只能通过 Dart-js-Interop 使用 JavaScript。这有助于通过逐部分迁移代码来将现有应用迁移到 Dart。

你可以问尽可能多的问题,你不能保证 Dart 会留下来,但我喜欢和 Dart 一起工作,我也听说过很多其他人也这样做。我认为这表明谷歌创造了一个伟大的产品。如果有足够多的开发人员加入这一行列,它将继续存在。

【讨论】:

    猜你喜欢
    • 2021-09-18
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    • 2014-05-23
    • 2012-03-08
    • 1970-01-01
    • 2014-01-18
    • 1970-01-01
    相关资源
    最近更新 更多