GWT 如何与 Javascript 框架(例如backbone.js
、angularJS
、Ember
、JQuery
等)进行比较(或可以进行比较)?它们的目标是完成相同的工作,使它们成为竞争对手,还是可以一起使用?
1 回答
是和不是。虽然 GWT 的编译器本质上是一个 Java 到 Javascript 的转换器,但它提供的好处远远超过了我从任何流行的 JS 库中看到的任何东西。
由于基于 GWT 的应用程序是用 Java 编写的,因此它们获得了许多好处,例如强类型和极易重构。如果某些更改影响了另一个班级,您会立即知道。而对于那些Java不擅长的事情,你总是可以使用Javascript来处理JSNI的情况。Google 还为 Eclipse 提供了一个很棒的插件,它允许您调试代码,就像我从未见过的 JS 库一样。这样做的另一个好处是您可以用相同的语言编写客户端和服务器端代码,而 GWT 负责将它们捆绑在一起的繁重工作。
自动生成多个排列也有好处。GWT 在最常用的浏览器上踢出一个外观和行为相同(尽可能)的代码副本。您的客户在没有您承担额外重量的情况下都会看到相同的东西。您无需负责编写无穷无尽的代码行来处理那些永远困扰 Web 开发人员的无数浏览器特性。虽然在某种程度上这些事情是由一些 JS 库处理的,但 GWT 使它完全不费吹灰之力。
以我的经验,您提到的库本身都很棒,但根本无法提供 GWT 开箱即用的强大调试、可移植性、可扩展性、可维护性和可移植性。GWT 并不是真正为与其他库一起工作而构建的,而是让您能够(大部分)在没有他们帮助的情况下完成这些库所能做的所有事情。(当然这并不是说你不能在任何你想使用的地方使用其他库……如果你真的觉得有必要,你可以这样做。)
所以在我看来,不,没有竞争。GWT是这个舞台上的象征性重量级冠军。