甲骨文为了提前释出Java新版,将部分重大功能延后到第8版,也如期在7月底释出Java SE 7,不过企业版Java EE 7则要等到2012年才会释出。

甲骨文如期在7月28日释出Java SE 7,这是甲骨文入主Java以后释出的第一个重大Java版本,但甲骨文表示,Java EE 7企业版则预定明年底前才会释出正式版。睽违2年以后,台湾甲骨文7月29日也重新在台举办JavaTwo研讨会介绍Java最新特色。

Java上一次大改版释出SE 6是2006年底,距今已有5年之久,甲骨文技术传教士Lee Chuk Munn表示,因为Java新版功能的讨论太久,以至于迟迟未能推出新版,所以,后来甲骨文决定,先推出Java SE 7,其他未能及时完成的功能,则延至第8版推出,尤其是变革较大的功能,包括模块化架构Jigsaw计划,这可让开发者打包部分组件来提供安装环境以减少下载文件大小,以及能使用Lambda表示语法的Lambda计划。

Lee Chuk Munn表示,Java SE 7仍有不少新功能,包括了如COIN计划对Java语法的改善,其中一项改善像是在Switch陈述中现在可以使用字符串来做为比较条件,不像过去只能使用整数,只能用if-else来进行字符串比较,或像是可以使用Multi-catch语法等。另外SE 7其他新功能包括InvokeDynamic可提高动态语言执行效率、Concurrency的增强如加入Fork/Join机制,文件系统也增加了新的API(NIO.2)等。

知名Java作家林信良表示,SE 7在Byte code中增加了InvokeDynamic指令,以及在API上提供了java.lang.invoke套件,这些都可以让动态语言在JVM 更方便实作,且执行速度更为快速,未来使用Java来打造动态语言的执行环境时,将可以获得更高的执行效率,换句话说,Java越来越适合打造各种不同的动态语言执行环境。

圣蓝科技技术长王建兴也认为,Java对动态语言执行环境的影响将越来越重要,他表示,当开发者需要在一个开发项目中,使用不同的语言时,例如同时使用Ruby和Java,Java开发的动态语言执行环境越有效率,不同语言之间就能更有效率的沟通。

而松凌科技总经理李日贵从实务工作角度来看,他认为,像Switch支持String等语法改善,可以让工程师减少撰写if-else程序代码,有助于减少例行开发工作的负担。

Lee Chuk Munn也预告,甲骨文将于2012年底前释出Java EE 7,除了拥有SE 7的功能之外,EE 7的特色还包括了对云端环境的支持,例如让Java应用更容易在公有云或私有云上运作,提供多租户(Multi-Tenancy)和扩充弹性(Elasticity )的能力。资源和状态管理会更紧密、应用程序之间可以更好的隔离、强化应用程序和数据的版本管理等。另外也会以Java SE 8的模块化架构来建置EE 7的模块化,让应用程序利用模块来建置。目前确定纳入EE 7的功能包括JPA 2.1、JAX-RS 2.0、Servlet 3.1、EL 3.0、Platform 7/Web Profile 7、JMS 2.0和JSF 2.2,而Concurrency工具1.0和JCache 1.0功能则还在进行中,未确定纳入的功能则包括了EJB 3.2、CDI 1.1、JSON 1.0等。