学习GWT有多大用处?

9
我开发Web应用程序,在我的工作中,每当出现一些JS或CSS怪异时,我就会与各种浏览器进行斗争。从我从这个描述中了解到的内容来看,我相信使用GWT将会极大地帮助我:
“编写Web应用程序是一项繁琐且容易出错的过程。开发人员可能会花费90%的时间在处理浏览器的怪癖上。此外,构建、重用和维护大型JavaScript代码库和AJAX组件可能会很困难和脆弱。Google Web Toolkit(GWT)通过允许开发人员快速构建和维护复杂但高性能的JavaScript前端应用程序来减轻这种负担。”
关于GWT的普遍意见是什么?学习和使用它有多容易?
编辑:我是一名Java开发人员!
5个回答

15

你没有说明是否有Java的背景。如果没有,那么我无法评论你的学习曲线。

然而……作为一个使用Java工作了将近9年,大部分时间都在使用Swing的人,我发现GWT非常容易学习。

控件与Swing不同,所以需要一些时间来适应。但是从我的角度来看,这与学习任何其他库并没有什么区别。

个人而言,我喜欢使用IntelliJ(我选择的编辑器),并利用所有帮助我编写更好代码的出色Java工具。 (顺便说一句,这也是GWT任务的一部分。)

我喜欢这是一个充满活力和高度活跃的工具包,有很多人真正有兴趣使其变得更好。(再次看看讨论组或甚至浏览贡献者讨论组。)

如果您想要访问更多或不同的小部件,则有很多项目正在寻求填补空缺:

  • GWT-Ext(一个基于GWT的JavaScript库,用于构建富互联网应用程序)
  • ExtGWT(又称为GXT,是一个基于GWT的UI框架,提供了许多可重用的组件和控件)
  • SmartGWT(一个基于GWT的企业级UI框架,包含大量可定制的组件和控件)
  • Advanced GWT Components(一个收费的GWT组件套件,提供了许多高级UI组件和控件)
  • GWT Incubator(GWT团队中产生许多有趣想法的地方)

(注意:我不是在支持任何这些项目或评论它们的相对优劣,只是试图提供一些参考资料...)

我认为如果你在网络上挖掘一下,特别是看看GWT Discussion Group,你可以了解到其他人如何使用GWT。

话虽如此,请注意...您仍然会发现某些问题,例如IE6与IE7、Firefox 3等浏览器的呈现方式。我没有使用过纯JavaScript或其他工具包编写Web应用程序,因此无法说GWT在这方面有多好。我所知道的是,在10个月以上的应用程序开发中,我们只遇到了很少几个情况,需要为一个浏览器或另一个浏览器专门设置CSS。


2
如果您来自Java背景或习惯于类似Swing的东西,使用GWT是有意义的,因为它让您在熟悉的环境和概念中编码。另一个使用GWT的好理由是,如果您的团队主要由Java开发人员和很少的Web开发人员组成,在这些情况下,学习和使用应该相当容易。
另一方面,我不确定它是否是构建大多数Web应用程序的正确抽象级别,特别是如果您不是正在构建类似桌面应用程序但与丰富功能混合的网页。
Javascript是一种强大的语言,在某些方面比Java更适合Web(Groovy可以修正这一点,但我不确定如何轻松地与GWT集成),有许多成熟的JS框架可以使您远离大多数浏览器怪癖并提供恰到好处的抽象级别,有JS的单元测试框架,以及一些良好的编程实践可以使您的代码更易于管理。
对于编写Web应用程序,我更喜欢在客户端上进行客户端开发,并希望看到浏览器在这个方向上进化,而不是成为各种沙盒的容器,例如Flex或GWT。

2

我曾从事C#开发,转向Java和GWT并没有太大的困难。一旦你理解了异步RPC调用、JSNI等概念,就已经走上了正确的道路。


1
个人而言,如果你能找到替代Ext-GWT的方案,请尽量避免使用它,因为支持很差,整个框架存在许多漏洞和不成熟的地方。此外,我也没有找到任何有关在Eclipse中运行Ext-GWT的教程。我已经成功地在Eclipse中安装并运行了一个GWT示例应用程序,但是现在我想使用Ext-GWT库,它们无法共存。Eclipse GWT插件设置了自己的小环境,无法容纳Ext-GWT组件,反之亦然。例如,当Ext-GWT需要自己的入口点时,它如何与GWT moduleOnloadFunction配合?我们在工作中经常使用JS库,这很好,但是论坛很糟糕,版主经常很粗鲁或者太含糊,似乎没有“简单答案”的概念。

0

我可能有点晚来到这个聚会...但是对于未来的读者...

我已经构建了不到3年的GWT应用程序,所以我可能处于一个很好的位置来回答“学习GWT有多容易”的问题。

当我决定编写GWT应用程序时,我的Java技能还不够娴熟,因此我的GWT学习之旅有些坎坷。等到我的Java达到我想要的水平时,Marius Andreiana的在线书籍让我的GWT学习体验更好了。

总的来说呢?根据Ray Cromwell在Google I/O 2012的Google Web Toolkit的历史和未来演讲中的描述,他认为GWT是一种工具,可以帮助Java开发人员在不学习任何额外技术、测试框架、构建工具等情况下开发Web应用程序。这有点像Phone-gap是为Web开发人员制作的移动开发工具。

现在,在发布这个问题的时候,如果参考Cromwell's presentation,至少从它现在所处的位置来看,GWT并没有感觉到太多。社区非常强大,文档是一项艺术品,当然还有更多的书籍,我个人最喜欢的是Daniel Guermeur和Amy Unruh的那本。然而,我仍然觉得YouTube上存在GWT教程的不足,但是,一切都会有所改变。

在我结束时,HTML/CSS/JavaScript世界也发生了巨大的变化,前端框架、构建自动化、依赖管理、测试等方面有了更好的工具,你想要的基本都有了。个人而言,在构建谷歌应用引擎应用程序时,我选择编写GWT,以便所有代码都是Java,并在其他时间选择依赖于CSS/JavaScript框架。

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