我们一直在关注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规范。

对于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技术以一种偏离正确坐标的方向前进。

Java 7 一个技术标准的商业咒语相关推荐

  1. Java 7,一个技术标准的商业咒语

    [51CTO观察]我们一直在关注Java 7,对于Java这样占据软件开发领域半壁江山的技术平台,没人会忽略它的新版本.但对于一门技术,特别是IT技术,使用者和拥有者却有截然不同的理解.开发者的期望往 ...

  2. 学了编译原理能否用 Java 写一个编译器或解释器?

    16 个回答 默认排序​ RednaxelaFX JavaScript.编译原理.编程 等 7 个话题的优秀回答者 282 人赞同了该回答 能.我一开始学编译原理的时候就是用Java写了好多小编译器和 ...

  3. JAVA鸡汤------一个牛人给java初学者的建议

    给初学者之一:浅谈java及应用 学java不知不觉也已经三年了 从不知java为何物到现在一个小小的j2ee项目经理 虽说不上此道高手,大概也算有点斤两了吧 每次上网,泡bbs逛论坛,没少去java ...

  4. 用java实现一个简易自动提款机

    用java实现一个简易自动提款机,且有以下要求 如何实现呢?首先,我们定义一个用户类User,同时根据要求设计好属性(本人部分命名没有使用驼峰命名法,不够规范).因为一个人可能有多个卡,卡号又不能重复 ...

  5. java编写存钱_用Java编写一个简单的存款

    package desposit.money; public class DespositMoney { public static void main(String[] args) { Custom ...

  6. java里冒泡排序编程案例_java编程题:用Java实现一个冒泡排序算法

    /** * java编程题:用Java实现一个冒泡排序算法 */ public class Test12 { public static void main(String[] args) { int[ ...

  7. 用java写一个简单的区块链(下)

    用java写一个简单的区块链(下) 2018年03月29日 21:44:35 java派大星 阅读数:725 标签: 区块链java 更多 个人分类: 区块链 版权声明:本文为博主原创文章,转载请标明 ...

  8. java怎样开关语句随机数 不重复_怎样用java产生一个指定范围而且不重复的随机数?...

    题目: 怎样用java产生一个指定范围而且不重复的随机数? 解答: package test; import java.util.Random; public class RandomBirth { ...

  9. java把一个list_java中将一个List等分成n个list的工具方法(推荐)

    实例如下: /** * 将一个list均分成n个list,主要通过偏移量来实现的 * @param source * @return */ public static List> average ...

最新文章

  1. 【ROM修改教程】添加高级电源重启菜单(安卓4.0.4官方ROM)
  2. python自学行_怎么自学python?
  3. c#結合正則表達式驗證輸入的字符串
  4. 属性“dataProvider”有多个初始值设定项。(注意:“dataProvider”是“mx.charts.BarChart”的默认属性)。...
  5. 简述openstack
  6. fastadmin 后台view data-source关联报500错误问题
  7. python如何使用sdk_Python_sdk首页、文档和下载 - 优图人脸识别sdk - OSCHINA - 中文开源技术交流社区...
  8. ffmpeg拉流设置暂停_ffmpeg+SDL2实现的视频播放器「退出、暂停、播放」
  9. nginx websocket wss 连接失败 failed_浅谈WebSocket协议、WS协议和WSS协议原理及关系
  10. [编程题]vivo智能手机产能
  11. PHP调用OCX控件的具体方法
  12. matlab卷积神经网络的实现,matlab卷积神经网络库
  13. 双网卡设置一个外网一个内网(两张网卡同时上内外网设置)
  14. 怎么看rx580是不是470刷的_【BIOS】网上都没有的教程 RX470 RX480 RX570 RX580显卡BIOS刷黑了怎么办?自救方法...
  15. 关于文章关键字词云的生成
  16. mysql 正则表达式 标点符号_正则表达式-匹配标点符号
  17. go 语言最详细的入门教程
  18. 「2020年大学生电子设计竞赛分享」电源题,省一等奖!
  19. 【Linux Centos6/7 Oracle11g 内存16G调整32G】
  20. 华为初面 + 综合面试,附上面试题,share 给大家~

热门文章

  1. NC文件不规则裁剪(利用shp文件裁剪)
  2. 动态瑜伽 静态瑜伽 初学者_静态网站生成器:初学者指南
  3. 【Android 手势冲突】Colin带你彻底解决RecyclerView与ScrollView滑动冲突问题,并实现RecyclerView悬停导航栏(附demo哦)
  4. 风炫安全Web安全学习第三十九节课 反序列化漏洞基础知识
  5. 用VPS/Linux/CentOS7搭建泰拉瑞亚原版/mod服务器教程
  6. 树霉派更换软件镜像源
  7. Python: pyqt5 自己写一个窗口文本编辑器
  8. 机器学习之KNN算法
  9. 用FileSystemWatcher实现山寨版Second Copy [1]
  10. [微语21.01.03] 耐性