很难将GWT与其他任何东西进行比较。
GWT背后的主要思想是利用现有的工具:调试器,IDE(重构等),静态分析工具(findbugs,checkstyle,PMD)等。目标不是在JavaScript中提供真正的Java仿真。 ;能够使用任何现有的Java库与GWT是一个非目标。
那么,什么是GWT?
- GWT是JavaScript的转换器,非常类似于CoffeeScript,TypeScript,Script#,Emscripten,Haxe和many more。
- 与许多其他人不同,GWT开发在JVM中运行Java而不是编译为JS(Dart与其Dartium和dart2js的工作方式类似),这允许您使用Java调试器和JRebel等工具来替换热代码。 / LI>
- 编译过程也是可插入的,包含代码/资源生成器(延迟绑定)。这与Java的静态类型相结合,可以使用依赖注入工具,如GIN(Guice for GWT)
- GWT也是一个广泛的图书馆:
- 客户端 - 服务器通信协议:GWT-RPC和RequestFactory(RequestFactory也可以从Java客户端使用,例如Android应用程序; RequestFactory也可以用于使用JSON-RPC服务)
- 通过AutoBeans进行JSON编组
- 小部件,这使得人们有时会在构建UI的过程中将GWT与Swing进行比较(尽管如果你像Swing UI一样构建GWT UI,那你就注定了)
- UiBinder类似于Flex的MXML,.NET的XAML或Gnome的Glade;但也可以用来输出HTML而不是构建小部件,这更像是...... AngularJS可能吗?
- SafeHtmlTemplates可以看作类似于Mustache.js
- CssResources类似于Closure Stylesheet,或Sass或Less,但功能较少
- 编辑器在某种程度上与AngularJS绑定相当(见https://plus.google.com/114156500057804356924/posts/LSNj2zTZo78的讨论)
根据您正在查看的方面,您可以将GWT与许多其他工具进行比较;但最重要的是,GWT是一个客户端工具,所以你不能将它与Rails进行比较。
<强> GWT:强>
GWT architecture
需要深刻理解才能完全使用。它是为advanced users
而构建的。
<强>滑轨:强>
Rails
很简单,旨在编写更少的代码。适合web development.
的初学者
以下是关于比较的完整PDF。
简单的JavaScript MV *框架众多且易于比较。但是,在企业规模上 - 框架的数量要少得多,而且每个框架都非常不同。其他几个:
- ExtJS - 复杂的企业级JavaScript框架
- TypeScript - Microsoft开发的一种强类型并编译为JavaScipt的新语言
- 关闭 - 用于类型检查JavaScript的Google技术
正如您所看到的,这些都与GWT完全不同,但所有这些都是针对企业级JavaScript开发的。