原文链接: http://www.wking-china.com/xpjylc/news/2240146307/Is-Java-ready-for-HTML5

每一个新的苹果移动设备和苹果笔记本都支持最新的HTML5标准。一些大的社交网站,包括FACEBOOK,已经在内容推送功能中使用了HTML5技术。但是高级JAVA应用开发人员依然有一个疑问:JAVA社区是否已经准备好为HTML5的开发与集成做出努力?

HTML5直接用浏览器提供更具交互性的内容,简化了富内容的推送过程,并且减少了对专利技术(比如Adobe Flash和微软的Silverlight)的依赖,提升了用户端的体验。在富内容领域里, Oracle提供的纯JAVA解决方案只有JavaFX, 在与HTML5融合使用的同时,其生存环境也会受到后者的威胁。

在2011年9月的JavaOne大会上,为了简化利用了HTML 5技术的应用程序的开发,Cameron Purdy 和Adam Messinger 揭开了Avatar项目的神秘面纱。“你现在虽然可以在使用HTML5做前端工作的同时使用Java做后端工作,但是这并不会给你带来任何乐趣,这么搭配并易用,并且让Java开发人员和HTML5开发人员配合起来也很困难”Adam Messinger 在谈到当前HTML5技术与标准Java技术配合开发时说。

遗憾的是,在大会之后,Adam Messinger不再担任Oracle公司Fusion Middleware部门的副总裁一职,而是加盟了Twitter,担任Infrastructure Engineering部门的副总裁。虽然距Avatar首次面世已经有六个月了,但是Oracle的网站上几乎没有提及这个项目的任何信息。

当然,其他Java社区里的人会认为Java实际上已经为与HTML5融合做好了准备。对于大多数的企业应用,Java是在服务端上运行的,它从服务端把内容推送到Web端。这些推送出来的内容通常不会被认为是运行于JVM的字节码生成的。模型-视图-控制器(MVC)的方法意味着Web层(视图)将会与用Java实现的控制逻辑、数据、业务逻辑分开进行开发。

有了独立的Web层,从HTML4转移到HTML5只用上几节课,升级如HTML5新特性这样的开发技能,然后开始利用HTML5 canvas ,silder和video就可以了。尽管Java社区坚信他们的应用可以在视图层和逻辑层完全分离的情况下进行开发,然而事实上,很多网站的渲染技术和HTML4的规范紧密的联系在了一起。

例如,JSF(为Web应用程序的UI层开发而设计的Java EE标准)就包含了大量直接映射到HTML4规范的标签。这种紧耦合引起了广泛关注,JSF很可能会在下一个标准的版本发布之前牢牢绑定在HTML4上。但很多专家预计,对JSF开发者来说,从HTML4过渡到HTML5将比想象的要更加快捷。

让JSF为HTML5做好准备

JSF的规范分离了其逻辑层和渲染层,这意味着只要在已存在的JSF组件上替换渲染器即可容纳新的标准。

从其他技术换成HTML5很简单,你只要更换渲染器就可以。甚至你只需要更新,不用更换就可以。这和我们把HTML5当做一种全新的技术根本不一样。所以你只需要把渲染器更新使他包含HTML5的标签,然后一切就大功告成了。我确信他们在讨论的JSF2.x支持HTML5标签。如果你看一下丰富的组件库,你会发现实际上把其他技术换成HTML5会比你想的更容易,因为渲染器并没有特别地和实现绑定在一起。他们只需要更新HTML5表全的组件和功能就可以了。

此外,JSF是为非常强的灵活性和自定性而生的,所以看到很多position documents已经被应用并且展示着HTML5 drag-and-drop 和 inline editing的能力可以在JSF组件中可以继续发挥作用。

于是,以前的Java框架和项目需要进行代码的维护才能适应现在的工作,然而程序员去做这项工作是需要动机和动力的。这就是为什么在选择框架时项目的健康度(具体体现在维护该框架社区的活跃性和发展状况——译者注)及其贡献者的活跃性是相当重要的。AppFuse框架的发明者Matt Raible 受到了像Tapestry这样活跃Web框架的影响,开始跟进对HTML5的支持。

我认为一个项目的健康程度十分重要,因为如果一个框架没人进行更新维护框架就不会与时俱进,于是就没有会长期去喜欢使用它。在今天一些框架,例如Tapestry上你就可以发现这一点。我现在越来越多的使用Tapestry,你会发现这个框架在这个项目正在专注于很多前端的技术,其中就包括刚刚推出的HTML5。

Java已经为融合基于HTML5技术准备了很多种不同的方法。如果你一直采用MVC的设计理念进行开发,那么通过升级视图组件来使用新的标签和特性将比用文本编辑器打开JSP然后不停地敲代码更容易。如果你在使用一个像JSF 下的Tapestry这样活跃并且健康的框架,那么框架的贡献者和维护者已经将HTML特性加入其中了。

HTML5在Java程序员开发的应用中盛行起来所需要的时间将由用户对最新基于HTML5的特性在应用中的需求和Java开发社区可以多快接受只能由HTML5所带来的革新而决定。

译者:徐淙浩(就读于东南大学计院本科大二) 这是我的第一篇译文,我本来并没有想去承担如此重的任务。但在姚琪琳老师的鼓励下,我试着去挑战一下自我。在认识图灵系列以前,我一直对计算机书籍的翻译质量有着很大的成见。但是今天,我自己做了一回译者,真的觉得翻译的确不是一件容易的事。对于技术类的翻译在达到不出技术错误的同时还要做到信、达、雅,让中国的读者读起来不觉得别扭。 感谢姚琪琳老师对本文第一段提出的修改意见。 希望大家多拍砖,我也好学习一下。