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问题)......
问题
我的具体情况
我刚刚完成了基于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点:
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开发团队,我们永远不会在同一时期内接近项目的质量甚至完整性.