GWT与Dart有何主要区别?Dart能否替代GWT成为潜在选择?

45

我正在尝试理解两者之间该如何选择,有四个主要标准:

  • 更好地编写、易于维护的客户端JavaScript代码,配合使用现代IDE工具(拥有更好的内容辅助和调试能力)
  • 跨浏览器支持
  • 减少锁定,能够阅读代码
  • 技术在未来更有可能得到支持(难以确定)

这两种技术的主要区别是什么?

它们似乎具有相似的用例和相同的潜在开发者社区。

看起来GWT最终会被Dart替换吗?有任何迹象表明这一点吗?

还是我错过了什么,它们是完全不同的概念?

4个回答

30

我想我找到了答案:(应该先阅读Dart的常见问题解答,而不是在Google中搜索“GWT vs Dart”)

来源:http://www.dartlang.org/support/faq.html#future-for-GWT

问:GWT的未来是什么?

Bruce Johnson在GWT博客上发表了文章(在Plus上有进一步的评论): “Dart和GWT都共享使结构化Web编程成为可能的目标。实际上,许多带给您GWT的工程师正在从事Dart的开发工作。我们认为Dart是GWT使Web应用程序更好地服务于最终用户的雄心勃勃的演变,并且我们对其潜力感到乐观。随着Dart的不断发展和准备就绪,我们预计会与GWT开发者社区密切合作,探索Dart。”

“同时,请放心,GWT将继续成为构建最具野心的Web应用程序甚至包括Angry Birds等游戏的生产力和可靠性工具。Google内部的关键项目每天都依赖于GWT,我们计划根据他们的实际需求继续改进(并开源)GWT。”


4
似乎已被删除。 - Ali

22

我认为Dart的主要目标不是像GWT那样用源编译器替换JavaScript,而是要替换JavaScript本身。它需要做到这一点来处理大规模可维护的代码库,并提高性能,以及其他一些原因。

Dart更强类型,并借鉴了Java和其他语言的许多概念。

就预测未来而言,您可以看看Dart在Google Trends上与JavaScript的对比情况。


1
这个回答不再有效了...请查看http://news.dartlang.org/2015/03/dart-for-entire-web.html获取更多信息。 - rahmivolkan

11

Dart主要存在于解决以下两个问题:

  1. 提供一种客户端语言,使开发者能够构建大型应用程序,而不像通常与大型JavaScript应用程序相关的痛苦。
  2. 在客户端和服务器端使用相同的语言(即Dart SDK最终将类似于NodeJS)。

这样,它解决了与GWT(桥接客户端和服务器之间的差距)以及CoffeeScript(适合大规模开发的现代语言)解决的一些问题相同的问题。

Dart希望比GWT更好地解决客户端/服务器差距的问题,因为它从一开始就被设计为编译为JavaScript,因此解决了GWT-RPC的主要问题(即GWT-RPC只能序列化Java的一小部分,而Dart没有这个问题)。

它是否比CoffeScript更好是另一个讨论,但现在它的改进调试功能(即在Chrome内直接运行)正在证明对于大规模Web应用程序开发(如GWT的dev模式)具有重大优势。


1
“GWT-RPC只能序列化Java的一小部分,Dart没有这个问题”,除了Java没有一个重大的问题,Dart有一个在浏览器中可以运行的有限的future集合。 GWT RPC无法序列化的唯一内容是不能在客户端Web应用程序的上下文中执行的内容... - rodrigo-silveira

8
希望Dart在连接客户端和服务器方面比GWT表现更好,因为它从一开始就被设计成编译成JavaScript,因此解决了GWT-RPC的主要问题(即GWT-RPC只能序列化Java的一小部分,而Dart却没有这个问题)。
我从未见过或遇到过这个问题。您可以轻松地序列化java.util.*中的所有类型和大多数数据结构。还有什么更多的需求吗?

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