GWT仍然适用于新项目吗?

oli*_*bre 47 jquery gwt extjs gxt gquery

问题为什么我应该使用jQuery而不是GWT?可能已经过时(作为答案).和大多数 其他SO相关问题,也可能是当今过时.所以,让我们更新最先进的约GWT相关的新项目.

GWT现在更加成熟

自2009年问答以来,GWT已经发展,一些JS框架可以用Java:

甚至更多,Java代码可以转换为独立的JS库:gwt-exporter

但是低级JS框架可能就足够了

但是我阅读的内容越来越多,我看到Web开发人员建议他们退回GWT并直接使用JS框架(Firebug,JS框架的IDE插件......).

生产率

但是,我喜欢使用相同的IDE(Eclipse,Netbeans,IntelliJ IDEA ......)进行开发和调试的想法.我我会更有成效......我也应该考虑文档和社区(论坛反应性,这个SO问题)......

问题

  1. 对于什么样的新2014项目GWT应该(或不考虑)?
  2. 是否有相关的 GWT替代方案可以轻松实现AJAX Web应用程序的开发和部署?
  3. 目前的模式和趋势是什么?

我的具体情况

我刚刚完成了基于Python3(http.server.HTTPServer)调用(POST)bash脚本(在C++中的一些处理)和检索JSON数据的POC(内联网Web应用程序).网页中的一些JS(无框架)用于渲染.所以我想知道下一次迭代的最佳选择.

但是也请回答关于其他案件的这个问题.我希望一般性问题/答案对更多人有用.


2015年10月更新

GWT看起来不太活跃,因为自11个月以来没有新发布.但是在版本2.4和2.5之间的过去直到13个月.在Git的回购镜仍然非常活跃.此外,GWT是可扩展的,并且新功能可以来自GWT库而无需新的GWT框架发布.例如,参见最常见的移动GWT库以及相应的发布周期.与此同时,趋势是在任何地方使用Node.js!新项目采用GWT实际上取决于开发人员的技能/动力和项目生命周期(周转/培训/维护).还可以考虑其他一些标准,如重用可用的源代码和上市时间......请参阅下面的优秀答案.

Ste*_*fer 43

对于第1点,我可以给你一些我会使用的标准:

使用基于JavaScript的框架时,通常在初始创建代码时非常快.根据我的经验,在维护(错误修复,新功能,重构)方面你要慢得多,因为工具支持不如静态类型语言那么好.因此,对于更大或更长时间运行的项目,我总是会选择GWT,因为Java和它的编译器检查/生态系统/工具.我认为随着时间的推移,您将受益于更高的效率和扩展,因为动态类型不会出现奇怪的问题.对于不会长寿或不需要大量重构的小型项目,JavaScript框架可以大大提高开发速度.

在目标平台的上下文中调试需求也是我的标准.调试GWT代码非常好,只要您拥有DevMode支持的浏览器或至少可以与基于SuperDevMode的新源映射一起使用.例如,不支持MacOS X上的Safari.对于移动设备,您可以在Android Chrome上远程调试JavaScript,但据我所知,这对GWT来说是不可能的.

我的另一个标准是球队规模和离职率.基于Java的工具(IDE,代码质量检查器......)可以帮助开发人员,尤其是新开发人员浏览其他开发人员的代码.对于其他静态类型语言也是如此,但是您要求使用GWT/Java.

下一个是堆栈问题...如果在服务器端使用servlet容器,GWT可以轻松解决客户端和远程通信部分.将它与成熟的Java企业技术(JPA,EJB,Spring框架......)结合起来也很容易.如果您需要/想要拥有堆栈,这是一个很大的优势.如果您要在服务器端使用没有JVM的多语言(如上所述),那么这个不适合您.

当然,GWT和JavaScript框架都有更多标准.

最大的问题是偏好.JavaScript有很好的概念(例如Closures),但由于它的动态类型,它也是一种风险.你更倾向哪个?

关于第2点:

我不确定是否有一个真正的替代GWT提供类似的功能和工具.大多数其他框架只关注一个方面(小部件,优化,数据绑定,远程通信,浏览器支持,I18n,...).这并不意味着,其他框架都很糟糕,但您通常需要不同框架的组合来获得GWT提供的功能.

关于第3点:

  • 我肯定会看看TypeScript,因为它改进了与JavaScript的打字和互操作性
  • 据我记忆,Dart也有类似的目标
  • 常青树是JQuery,但依赖于你的需求有很好的选择.但这是非常主观的
  • 对于小部件,Twitter Bootstrap(http://getbootstrap.com/)很好,如果它的方式对你来说没问题.甚至还有它的GWT版本(http://gwtbootstrap.github.io/)


ATr*_*bka 7

Steffen的答案很棒.我开始输入它作为对他的评论,但发现我输入的内容超出了我的预期,因此将其作为一个单独的答案.不寻找分数......

我只想添加1个主观点.现实情况是,大多数开发人员都是所谓的后端开发人员,他们没有知识,经验,最重要的是希望开发Web前端.美国IT市场的现实是,大多数人更喜欢Java的简历,而不是JS,PHP,Python和其他外来语言.原因是补偿.Java开发人员平均得到更多报酬.不确定其他国家.

因此,公司中的大多数开发人员都是Java开发人员(或.NET,这不在此对话中).为了使它们在UI上工作,您必须使用Java兼容技术,即JSP或GWT.JSP需要学习JS库以使前端或多或少具有可呈现性.

显然,如果你想用独特的UI打动公众,你必须使用JS库来实现更大的自定义.JSP和GWT都可以工作,因为大部分工作都将在JS中完成.正如我上面提到的,很少有公司会在员工中体验JS开发人员.

大多数申请虽然是为内部使用而写的,不是面向公众的.根据您的描述,您的用例可能属于此类别.

内部非公开工具通常具有比公共网站更复杂的功能,但只要功能存在且便于内部使用,它们的设计要求就更加宽松.

在这种情况下,您可以使用GWT,这对于Java开发人员而言比jQuery和具有标准主题的高级库(如GXT)更少.

GWT with GXT对我们来说是一种简单快捷的方法来创建一组内部应用程序.有了我们公司的Java开发团队,我们永远不会在同一时期内接近项目的质量甚至完整性.