谷歌是否开始使用Dart?他们是否构建了一个将Closure(或GWT)编译成Dart的编译器?

9
我们正在考虑是否使用Dart构建Web应用程序。我们正在寻找一种技术,将在未来大约5年内保持高度相关性。
现在,由于EcmaScript 6规范即将发布(应该于2014年底发布),我们无法确定Dart是否真的会长期存在。
这是因为据我们所知,Google最初为Dash(现在是Dart)计划存在缺失。正如Google在其泄漏的备忘录中最初计划的那样:
“对于大型Google应用程序的现有代码库怎么办?他们难道不必重建所有内容以利用Dash吗?Dash跨编译器应该能够接受带有某些限制的类型闭包代码并将其转换为Dash。尽管迁移过程不会完全自动化,但它应该使转移到Dash代码库变得更加容易。”
因此,这就是这个问题的原因。
Google是否有任何努力来构建Closure(或GWT)到Dart编译器或翻译器?此外,您是否知道Google是否已经开始为任何现有或新的生产Web应用程序使用它?
换句话说,我们担心Dart只是一种语言,用于填补过渡期,并推动Javascript更快地迭代,但一旦主要浏览器支持ES6(和ES6+),它将被抛弃。
我们不想在Dart的利弊上引发任何争论,我们只需要一些有助于我们做出关键决策的实际信息。
谢谢

我认为没有人能保证任何事情。但如果Dart VM成为Chrome(消费者版本)的一部分,那将是一件大事。 Dart可能最终成为主要的服务器端语言,但在开始任何大型项目之前,我会等待它的VM成为Google App Engine的一部分。对于小型项目来说,它已经完全准备好了,dart2js的性能非常好,有时甚至比手写JS更好,并且提供树摇优化。 - JAre
是的,我知道Dart的优点,我认为它可以用于我们的项目。我只是担心因为似乎谷歌仍然没有在内部使用它。 - Durden81
https://www.dartlang.org/community/who-uses-dart.html - JAre
2
Google在内部和外部应用程序中使用Dart。Adwords前端正在开始迁移到Dart,还有其他应用程序也在使用。 - Seth Ladd
1
@SethLadd非常感谢您提供的信息。加上我开启的dartlang线程:https://groups.google.com/a/dartlang.org/forum/#!topic/misc/v6wsIW96QcA,我已经得到了所有必要的反馈,可以对Dart的未来进行投注了。 - Durden81
显示剩余5条评论
2个回答

5

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

谷歌对 Dart 进行了大量投资(看看所有的 I/O 讲座),所以我实在无法想象他们会放弃它。此外,ES6 将解决一些问题(模块、类等),但仍然是有所有问题和缺陷的 Javascript

在使用 GWT 进行工作时,有两个方面使得开发大规模网络应用程序成为可能:

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

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

2.) GWT编译器和Dart编译器都非常复杂。它们可以进行全局优化(https://plus.google.com/111739836936169749229/posts/DSUgfWefyR3)和树摇( https://plus.google.com/110412141990454266397/posts/VK8URgZiLbS )。如果你使用100,000行代码开发Web应用程序,这非常重要和关键。

Dart在开发方面有一个很大的优势: Dartium内置了DartVM。这使得开发和迭代与Javascript一样方便(GWTSuperDevMode但速度不如此快)。

你可以查看Java2Dart,它可以用于将GWT代码转换为Dart

我认为GWT在它的时代更受关注,但这可能是由于Google IO从开发人员转向营销和公关的普遍转变所致。 - JAre
GWT没有在I/O大会上亮相的原因是它不再归谷歌所有,而是有自己的开发者大会(GWT.create)。 - Ümit
我在谈论Google从Google IO的角度来看,相对于Dart,他们似乎真的致力于GWT。当GWT出现时,Google给了它大量的IO时间,但是他们撤回了项目的资源,即使在这个阶段,我也看不到对Dart如此的承诺。我认为他们现在非常谨慎。此外,GWT有着很好的采用率(Sencha、Smart GWT、Vaadin等),但总体上我持乐观态度。 - JAre
ES6引入了一些无法多填/模拟的特性,因此在2018年之前依赖它是相当冒进的。我在这里说,ES6并没有掩盖Dart的优势,因为现在Dart等同于ES6 + jQuery + modernizer + .... + IDE + debugger + 更快的VM(现在可用于Android手机!!)。并且自04/july/14以来已成为ECMA标准;-) - GameAlchemist

2

我没有听说过Closure转换为Dart的工具。我认为这已经过时了,因为Dart可以通过Dart-js-Interop使用JavaScript。这有助于逐步迁移现有应用程序到Dart。

你可以问尽可能多的问题,但是无法保证Dart会一直存在,但我喜欢使用Dart,而且我听说许多其他人也是如此。我认为这表明Google创造了一个很棒的产品。如果有足够的开发人员加入到其中,它将会持续存在。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接