我们一直在关注Java 7,对于Java这样占据软件开发领域半壁江山的技术平台,没人会忽略它的新版本。但对于一门技术,特别是IT技术,使用者和拥有者却有截然不同的理解。开发者的期望往往是更高效、更方便,更贴合当前应用场景的进化需求,也就是提高软件开发者的生产力。而对于持有技术标准的厂商而言,Java要比其自身技术的结构、语法和特性要复杂得多,是商业利益和竞争的砝码。一再延期的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提交JSR并等待JCP的执行委员会投票通过并建立这个Java规范。51CTO之前所报道的《Java 7已经完成的七大新功能预览》中所提到的新功能都是通过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后没有改变,只是变得更为直接。
目前,Java 7的JSR的官方规范还从未被Sun或Oracle提交给JCP。Sun的工程师还没有启动OpenJDK JDK 7中的Java 7功能规划。恰恰在这段时间,我们听到各种技术项目的决策(不引入闭包,引入闭包,等等)。目前,大部分已有的功能还处于功能级别以下(under feature-level specs),所以,我们看到上周Java 7并未按时发布 计划再次延期。
注:这里所提到的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的发布安排
没有标准的Java,没有“write once,run anywhere”。在Java 7规范方面,Oracle不愿看到由其他JDK/JVM实现者提出的未定义功能;其他需要在Java平台上收获利益的厂商也无法忍受某一方对Java标准的独裁。这一切纷争或许会导致Java规范的第二次分裂危机。而一切喧闹的背后是默默注视和等待的开发者。
这一切就像一个咒语,不断影响Java技术以一种偏离正确坐标的方向前进。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
请问CloudStack和Hadoop有什么区别,都是apache的产品有什么不一样吗
-
如何选择Web服务器:Nginx对阵Apache
Nginx人气的迅猛提升与Apache在Web服务器市场份额领域的稳步下降不禁引发诸多猜测,很多从业者认为这种趋势将使新部署流程中的方案选择变得更为清晰。
-
Java的秘密 使用全屏幕模式
什么是全屏幕模式,你了解吗?了解了全屏幕模式,你知道什么时候会用到它,并且怎样人使用它吗?不同的软件有不同的方法,那么在Java中如何使用全屏幕模式?
-
Java编程程序异常处理方法
进行Java编程,运行程序时常常会出现异常。对于java异常你是否能迅速找出异常所在,而且对于异常的处理你是否都掌握了呢?