我正在尝试理解两者之间该如何选择,有四个主要标准:
- 更好地编写、易于维护的客户端JavaScript代码,配合使用现代IDE工具(拥有更好的内容辅助和调试能力)
- 跨浏览器支持
- 减少锁定,能够阅读代码
- 技术在未来更有可能得到支持(难以确定)
这两种技术的主要区别是什么?
它们似乎具有相似的用例和相同的潜在开发者社区。
看起来GWT最终会被Dart替换吗?有任何迹象表明这一点吗?
还是我错过了什么,它们是完全不同的概念?
我想我找到了答案:(应该先阅读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。”
我认为Dart的主要目标不是像GWT那样用源编译器替换JavaScript,而是要替换JavaScript本身。它需要做到这一点来处理大规模可维护的代码库,并提高性能,以及其他一些原因。
Dart更强类型,并借鉴了Java和其他语言的许多概念。
就预测未来而言,您可以看看Dart在Google Trends上与JavaScript的对比情况。
Dart主要存在于解决以下两个问题:
这样,它解决了与GWT(桥接客户端和服务器之间的差距)以及CoffeeScript(适合大规模开发的现代语言)解决的一些问题相同的问题。
Dart希望比GWT更好地解决客户端/服务器差距的问题,因为它从一开始就被设计为编译为JavaScript,因此解决了GWT-RPC的主要问题(即GWT-RPC只能序列化Java的一小部分,而Dart没有这个问题)。
它是否比CoffeScript更好是另一个讨论,但现在它的改进调试功能(即在Chrome内直接运行)正在证明对于大规模Web应用程序开发(如GWT的dev模式)具有重大优势。