Java 7,一个技术标准的商业咒语
在进一步说明之前,我们必须明确Java标准的两个重要组成部分——JCP和JSR。JCP(Java Community Process)是一个类似ISO标准委员会的组织,Java的一切标准化工作由JCP负责。JSR(Java Specification Requests)是Java请求规范,每一个JSR规范都包括一些Java技术细则、参考实现(RI)和一个兼容性测试工具(TCK)组成。Java标准的每一项新的功能组成由JSR来封装后递交JCP审核。
对于Java的发展而言,JCP的权利极大,它可以决定一项Java规范是否会出现在下一个版本的Java标准中,也可以决定下一个标准对怎样的应用开发更有利。这其中的关键就是,JCP被谁所控制。JCP由Sun一手创建的,用来发展和更新Java技术规范、参考实现(RI)、技术兼容包(TCK),Sun被Oracle收购后,JCP也由Oracle接手。
事实上,在Oracle收购Sun之前,众多的Java开发者及已经开始纷纷逃离JCP而转换到一些小型的论坛。大批逃离者称,JCP已经失去了它的吸引力,它不再是被当成响应和解决Java开发者问题的社区,相反,JCP已经成为被一些大公司所利用JSP通过的橡皮图章。这些大公司凭着自身的影响和力量来指定各种规范从而达到满足自己的利益。整个JCP更像是一个商业擂台,多位法师念出自己的咒语试图在Java技术的发展中对自己有利。
这一切在Oracle接手Sun之后变得更糟。在Sun和Apache基金会之间,关于JDK规范应用范围的纷争由来已久。之前Sun考虑到Java ME在授权方面的收入,不愿意为Apache提供一个公平的竞争环境。目前大热的Google Android系统之所以会选择Dalvik虚拟机也是这个原因。类似的商业博弈和争论在Oracle接手JCP后没有改变,只是变得更为直接。
注:这里所提到的OpenJDK JDK 7是目前正在进行的Java 7规范项目,由Oracle/Sun推动。OpenJDK之前称为Sun JDK,是由JCP定义的规范,是Java实现的官方参考。
在之前公开的日程表中,JDK 7功能完成版是在6月3日完成,最终的里程碑版本是在9月9日发布(正好赶在由Oracle举办的JavaOne大会之前)。如果我们相信这份安排,JDK 7将在今年年底的某一天完成。但这是JDK 7,对于Oracle这样一家极其依赖企业级Java中间件的软件厂商而言,在没有稳妥的解决Java 7规范的问题前,我们很难看到它正式发布。
OpenJDK上关于JDK 7的发布安排