最近Java JSR经核准通过,但Apache全部投了反对票。Google与Tim Peierls则对Java SE 7与Java SE 8 JSR投了反对票,以此在闹得沸沸扬扬的TCK许可与使用限制这个问题上发出了自己的声音。
Project Coin,JSR 334,13票通过,1票反对,1票弃权
Project Lambda,JSR 335,13票通过,1票反对,1票弃权
Java SE 7,JSR 336,12票通过,3票反对
Java SE 8,JSR 337,12票通过,3票反对
相关的评论很有趣:Steven Colebourne在一个网页上总结了相关公司的评论。虽说大多数都对TCK投了赞成票,但相关的评论却对其许可问题提出了批评:
Google:投了反对票,因为其许可条款
SAP AG:虽然我们相信Java 7的继续发展很重要,但我们想对Oracle就Apache TCK的决定表达自己的不同观点
Eclipse:对围绕着Java许可的纷纷扰扰感到非常失望
RedHat:对许可条款感到极度失望,规范领导并没有采取更加开放的许可
Credit Suisse:目前,围绕着许可条款的明争暗斗揭示出Java始终没有形成一个开放的标准
众多的评论还表明只要JSR能让Java平台从现在停滞的状态向前迈进,那么这些公司就会投JSR的赞成票。此外,模块化在Java SE 7与Java SE 8的讨论中也被多次提到,Java SE 8 JSR还特别提到了OSGi的互操作性。
这也是各大公司首次通过投票表决的方式来核准Java SE JSR。同时,最近Project Coin与Project Lambda上的工作取得了很大的进展,Java SE 7中的其他内容(比如JDBC 4.1)也深受人们欢迎,Java SE 8 JSR还包含了大量处于襁褓中的JSR。或许当Java SE 8发布时,Oracle会说这是大多数人的意愿,即便Java SE 8的内容与之前的版本有很大差别。
然而,由于许可问题并未得到解决,因此一些人称JCP“仅仅是一些客户而已”——Oracle不再认真对待JCP了。这场争斗最后的结果就是Apache宣布离开JCP,将继续追寻自己的脚步。这也许是Apache软件基金会最后一次对JSR投票了:
Apache软件基金会必须对JSR投反对票。虽然我们支持JSR的技术内容,也认为Java平台需要向前发展,但凭良心说,我们得对这个JSR投反对票,原因在于:
该JSR的TCK许可包含了一个“使用限制”,限制了独立实现的正常使用,这个许可元素不仅被JSPA所禁止,还被 JCP EC的大多数成员所拒绝——包括Oracle。我们只能推测Oracle包含这一限制的原因,但我们认为开放的规范生态系统必须要独立于任何组织的商业利 益。
该JSR与自己的TCK许可自相矛盾。JSR显式声明Java SE以嵌入式部署作为目标。但TCK许可则特别明确地禁止了经过测试的独立实现的使用(比如说上网本)。我们认为这会对潜在的实现者造成误导,通过TCK 的任何独立实现都应该可以使用并且根据实现者所提供的条款进行分发。
规范领导忽视了多个EC成员的再三请求
规范领导——Oracle——违背了身处JSPA的义务——为Apache Harmony提供TCK许可,让Apache根据自己的选择分发其独立实现。我们认为故意不履行JSPA义务的任何人都没资格成为JCP的成员。这个原则适用于所有人。
虽然我们理解Oracle最初的意图是不管EC的决定是什么都要推进Java不断前进,但我们还是奉劝Oracle尽快解决上面提到的那些问题,然后在JCP的体系下继续与JCP成员并肩作战让Java活力重现。
分享到:
相关推荐
Java API规范JSR82,全称为"Java Community Process (JCP) Specification Request 82",是Java为蓝牙应用提供的一套接口和类库,它定义了如何在Java环境中访问和控制蓝牙硬件。 JSR82规范的目标是为Java开发者提供...
7. **动态语言支持**:JRuby、Groovy等动态语言在Java 7中得到了更好的支持,通过JSR 223和JSR 199实现了脚本引擎。 Java 8(也称为Java SE 8或Java Platform, Standard Edition 8)在2014年发布,它引入了更多创新...
JSR166Y
of the Java Language Specification and Chapter 8 of the Java Virtual Machine Specification. The current document has been written generically to apply to both, the final version will include two ...
(JSR) 223 通过定义标准框架和应用程序编程接口 (API) 来帮助开发人员集成 Java 技术和脚本语言,以执行以下操作: 从脚本环境访问和控制基于 Java 技术的对象使用脚本语言创建 Web 内容在基于 Java 技术的应用程序...
5. **动态语言支持**:Java 7添加了JSR 292(invokedynamic指令),为支持动态语言如Groovy、JRuby等提供了基础,提升了这些语言在Java平台上的性能。 6. **字符串inswitch**:Java 7扩展了switch语句,使其可以...
JSR133是Java并发编程领域的一个里程碑,它通过增强内存模型,提高了多线程环境下的程序正确性和性能。对于希望在Java并发领域进一步提升的开发者来说,深入学习JSR133中文版是至关重要的。通过理解并应用其中的理论...
3. **JSR 371 - MongoDB Java Driver for Java EE**:提供了在Java EE环境中与MongoDB数据库交互的标准API。 4. **JSR 374 - Java API for JSON Processing (JSON-P) 1.1** 和 **JSR 375 - Java API for JSON ...
Java 7,也被称为Java SE 7(Java Platform, Standard Edition 7),是Java编程语言的一个重要版本,它在2011年发布,引入了一系列新特性、改进和优化,旨在提升开发者的效率和程序的性能。这个"java7环境合集.zip...
这两个接口与Java的StAX(Streaming API for XML)结合,使得开发者能够通过事件驱动的方式处理XML文档,这比DOM(Document Object Model)解析更为高效,因为DOM会一次性加载整个XML文档到内存中。 **StAX** API...
Java 7通过JSR 292( invokedynamic 字节码指令)增强了对动态类型语言的支持,为JVM上的脚本语言和元编程提供了基础。 通过深入研究Java 7的源代码,开发者可以更好地理解这些特性的实现原理,提高自己的编程技巧...
Java 7增加了对JSR 292的支持,允许在Java中使用“invokedynamic”字节码指令,从而为运行时绑定方法调用和动态语言提供便利。 8. **元注解**: 允许开发者定义自定义注解,这些注解可以被其他注解使用,增强了元...
《Java虚拟机规范 Java SE7》是Java开发者的重要参考资料...通过深入学习《Java虚拟机规范 Java SE7》,开发者不仅可以理解Java平台的核心机制,还能提升代码的运行效率和质量。这份规范是每个Java开发者的必备参考书。
然而,对于需要在Java程序中处理USB通信的开发者来说,JSR80提供的API是连接USB设备和Java应用的桥梁,使得开发者能够通过Java平台直接与USB设备进行通信。这在各种硬件操作,特别是设备的即插即用方面,提供了强大...
JSR133-memory_model-1_0-pfd2-spec.pdf JSR133中文版.pdf j-jtp02244-Java.theory.and.practice-Fixing.the.Java.Memory....JSR-133-Appr-The Java Memory Model.pdf 深入理解Java内存模型之系列篇 - CSDN博客.pdf
2001年,他的项目通过 Java 规范请求(Java Specification Request,JSR)过程被接受为 Java 语言的候选扩展标准。这个项目现在称为 JSR-80 并且指定了官方包 javax.usb 。同时,在 2000年 6月,Mojo Jojo 和 David ...
6. **动态类型语言支持**:Java 7引入了JSR 292,允许在Java虚拟机上运行字节码级别的动态语言,如Groovy和JRuby。 7. **改进的字符串操作**:添加了`split()`方法的限制参数,以及`join()`方法,使得字符串处理...
对于那些需要运行Java 7应用或者遇到与Java 8不兼容问题的用户,这个安装包提供了完美的解决方案。在安装Java 7后,可以确保旧版本的Java应用程序能够继续运行,同时避免了升级到更高版本可能带来的问题。在使用过程...
在Mac上,安装完成后通常需要手动配置环境变量,通过修改"~/.bash_profile"或"~/.zshrc"文件,添加类似"export JAVA_HOME=/path/to/jdk11.0.8"的语句,确保系统可以找到Java命令。 Java 11作为长期支持(LTS)版本...