阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

争论:JCP 在 Java 的未来中将扮演什么角色?

  • 2007-12-18
  • 本文字数:2667 字

    阅读完需:约 9 分钟

最近, Alex Blewitt 称 Java Community Process(JCP)已经死了,将之喻为无头鸡:“自己还没有意识到,仍在四处奔跑,但实际已死了”。由此引发一场关于 JCP 作用,及其在 Java 的未来中将扮演什么角色的争论。

Alex Blewitt 在博文中指出了关于 Java 和 JCP 的几个利害关系:

  • JCP 导致了更大的 JVM,几乎没有移除什么,反倒是加入了不少东西
  • 现在,VM 要求所有东西都要出现,没有什么东西可以被移除—— Consumer JRE 是一个好的开端,但它只是将 jar 的下载延迟到需要的时候,而不是一开始就把它们全部下载——整个 JRE 仍然需要下载
  • Java 需要一个新的模块系统,它允许动态的、按需的组件下载,这样不用下载那些从不使用的内容
  • 尽管一些模块系统在现今 Java 上存在并发挥作用,但是一些正在为 Java 7 创建的新内容可能比现有解决办法更加臃肿且功能更少,而且可能会被大多数实现者(类似 java.util.logging 和 XML 解析器)所取代
  • 对 Java 的演变管理工作几乎没什么帮助(无论是减少还是增加)
  • 微软正在语言前线打击 Java —— .Net 有好些正被大量开发者日常使用的语言,Java 实际上只有 Java 语言,其它的还是“小鱼苗”——Java 在一些语言特性(如范型、延续(continuation)和函数即数值(functions as values))上还正在扮演追随者。
  • 尽管对于象 Scala 这样的跨 VM(cross-VM)语言有一些适当的机遇,但是最有可能的未来之路是 Google 的 GWT 和 Android 的方式——复用 Java 语言,但瞄准 Java API 的一个子集,并发展 JCP 之外的产品以避免不这样而招致的额外包袱
  • J2ME 是个灾难 —— 各种设备存在着严重的分裂,而且 J2ME 无法处理像蓝牙、USB 或拨号器这样有用的东西
  • JSRs 是个重负,只是让一个已经臃肿的平台更加臃肿——JCP 阻碍了轻量级、模块化方式和在此之外的真正创新

Blewitt 还指出:

JCP 不关乎于社区,它关乎于控制。通读任一 JSRs,有一节是“为什么不用现有系统来解决”。通读它们是一个市场营销的练习;这儿总是没有真正的理由,而只是说‘我们可以做的更好 / 不同的 / 较小的 / 更快的’。在这种情况下,实际发生的是该规范的领导们没有丝毫兴趣在现有基础上进行构建;他们想要得到他们自己版本的代码库(不论是真实的或被提议的),而且理由基本上都是‘因为我们没有编写它’。那些所谓的‘专家小组’只不过是对开发者(通常就是 JSR 的提交者)进行同行评审,对实际代码开发毫无影响。(一般情况下,JSR 的提交者将只给代码开发者提供资助,而不是寻求专家小组的帮助,这样他们能拥有过程的所有知识产权)。换句话说,你想做的任何事都要得到他们的支持同意

其他人评论说: Google 应该领导 Java 的发展, 或 Java 将会很快被一个真正的并行语言取而代之. 然而一些人担心模块化会引起这个平台的分裂

就在上帖发布的同一天, JRS 275(计量和单位)的联合带头人 Jean-Marie Dautelle 为 JCP 征求来自社区的反馈意见和问题:

  • Alexander Hristov 要求公开辩论,开放邮件列表并公开会议
  • Robert Cooper 指出: C 字母在 JCP 中代表着社区,但委员会和公司利益似乎比社区利益更重要
  • Terrence Barr 要求更多个人和小公司的参与,更多开放源代码的兼容性(如减少 NDAs 和私有组件),以及 JRS 专家组成员能更公开接近并接受公众意见
  • Brendon McLean 认为 JSR 296 ( Hans Muller 领导的) 是 JSR 正确做事的一个很好例子:建议 JSR 始终包含一个领域专家,开放源代码解决方案始终得到认真的考虑,所有 JSRs 在公开化和社区参与性方面都参照 296 的领导方式
  • Patrick Wright 补充说:来自个人和小团体的输入与公司的输入一样重要,而且 JCP 应承认如 Spring 和 Apache Commons 这样事实上的标准

Dautelle 的问题也引起了 JSR 310 (日期和时间 API)联合带头人 Stephen Colebourne 长篇大论。Colebourne 问道:

这个问题引出了更广泛的 Java 监管问题。Java 现在是开源的,但我们现在还没有真正清楚这是如何运作或影响 JCP 的。特别是,谁是监查 Java 发展和其未来方向的‘建筑师’?是 Sun 公司中某人?一个隐藏的神奇过程?或者就是撞大运?

Colebourne 想知道谁决定了哪些语言变化加入到 Java 7,核心库的变化是如何发生的,以及为什么 JSR 277 模块管理系统要像这样处理 —— 他还提出了几个问题:

  1. Sun无视它签署的 JCP 法律协定(例如:Apache Harmony)。这摧毁了全部的信任。
  2. JCP 依然存在,以照章批准大公司成员提出的建议。基本上,一个公司提交他们已有的代码,‘专家组’的存在实际上是对其做同行评审。
  3. JCP 或 Sun 在 Java 的方向上都没有任何感觉。 在对 Java 走向何方以及它最终成为什么的问题上应该有明确认识 —— 一个五到十年的远景。
  4. JCP 并不消除重复的 JSRs (看看 OSGi)。更糟的是,它让更坏的选择得以成功。
  5. 个人拥有太小的发言权。他们倾向于通过提供创新和分裂来让大公司保持正直。

Colebourne 也提出了几种解决方案,例如一个将公布 Java 五到十年远景的架构组,一个规模更大、更自主的 JCP 执行委员会,给 JSR 成员付工资,以及一个针对 Apache Harmony 正确的 TCK 技术兼容包。另一种选择是淘汰 JCP,并将 Java 重新定义为建立在一个内核之上基于 OSGi 的模块化 VM——厂商可以随意混合匹配,市场将决定谁是赢家。Patrick Wright不赞同这些观点,他指出在Apache-Sun Harmony 的争论中,只有Apache 公布了他们的一面之辞。Wright 还质疑一个五到十年的远景到底能对语言发展的高速步伐提供多大的价值。

Peter Kriens 在辩论中进行了权衡,他同意Colebourne 的分析,但不同意其解决方案。Kriens 还提出了一个新的问题——什么更切合实际,是实现还是规范?Kriens 指出规范允许有多个针对不同需求的实现,它允许通过平衡众多组织的需求而保持中立。缓慢的标准化进程考虑到了思考解决方案的实际时间,知识产权的问题也将更容易处理。 Dalibor 主题回应说 JCP 和 OSGi 都被大公司过多控制,而且规范被私有组件所拖累——尽管他们都值得拥有。Kriens 回应道,大公司的支持对规范的成功是重要的,OSGi 的所有成员均被同等相待,尽管 Sun 对 JCP 有相当大的控制权。

你有什么想法呢?

查看英文原文: Debate: What role will the JCP play in Java’s future? - - - - - -

译者简介:王军,长期从事软件开发工作,实际项目偏重于 JBOSS 平台上构建网管软件。对于性能测试工具有较多的关注,关心软件技术和相关工具的动态,将其中相对成熟的技术和工具应用到实际的项目之中。长期担任技术管理和项目管理工作,一直关心开源软件的发展动态以及软件过程和敏捷开发的实践探索。参与 InfoQ 中文站内容建设,请邮件至 china-editorial@infoq.com

2007-12-18 18:411385

评论

发布
暂无评论
发现更多内容

pnpm才是前端工程化项目的未来

互联网工科生

前端 npm 工程化

Apache IoTDB 荣获国家网信办 2022 年中国开源创新大赛决赛一等奖,三位核心研发荣获表彰!

Apache IoTDB

开源数据库 IoTDB

2023“科创中国”大湾区青年百人会论坛即将召开

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨

基于k6和python进行自动化性能测试

华为云开发者联盟

前端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

华为云联合万木健康打造医疗医学科普和患者教育数字人引擎

华为云开发者联盟

人工智能 华为云 数字人 华为云开发者联盟 企业号 6 月 PK 榜

共建智慧工厂物联网平台方案 | 6.10 IoTDB X EMQ 主题 Meetup 回顾

Apache IoTDB

物联网 emq IoTDB

助力智能制造数字化转型 | 5.31 IoTDB & 中航机载制造行业客户分享会回顾

Apache IoTDB

智能制造 IoTDB 中国航天

理解 G1 GC 日志

摸鱼编程

JVM G1GC 可视化分析

社区新手小伙伴测评 | 使用 ChatGPT 可以帮助完成 IoTDB 部署吗?

Apache IoTDB

IoTDB ChatGPT

LED显示屏的种类和技术

Dylan

技术 LED显示屏 户外LED显示屏

构建高可用性的 SQL Server:Docker 容器下的主从同步实现

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

突破边界:高性能计算引领LLM驶向通用人工智能AGI的创新纪元

蓝海大脑GPU

谁与争锋!手机直播源码知识分享之主播PK功能

山东布谷科技

软件开发 源码搭建 手机直播源码 手机直播

陶哲轩甩出调教GPT-4聊天记录,点击领取大佬的研究助理

Openlab_cosmoplat

开源社区 GPT

突破界限,共创未来!MIAOYUN“一云多芯”全栈信创解决方案获认可!

MIAOYUN

信创 一云多芯解决方案 信创云 信创生态 一云多芯

2023年6月墨天轮中国图数据库排行榜:TGS 开新局,创邻和字节多点突破露锋芒

墨天轮

数据库 图数据库 国产数据库 NoSQL 数据库

2023年,中小企业的发展新风向

互联网工科生

低代码 企业 数字化

AI时代风暴:低代码开发平台引领未来革命

不在线第一只蜗牛

人工智能 AI 低代码 数字化

国内首发|性能飙升100% 焱融全闪存储成功适配 InfiniBand 400Gbps 网络

焱融科技

#分布式文件存储 #文件存储 #全闪存储 #高性能存储

两行CSS帮助页面提升了近7倍渲染性能!

高端章鱼哥

CSS 前端

惊叹!如何在魔幻般的VPS上亲手部署Spring Boot Demo

不在线第一只蜗牛

Docker Kubernetes Spring Boot CLI

【领域驱动设计专题】一文带领你透视DDD领域驱动模型的本质和设计原理分析指南(构建领域知识)

洛神灬殇

领域驱动设计 DDD 领域驱动设计DDD 领域驱动模型

免费体验,有奖评测!低代码开发平台魔笔发布评测令

移动研发平台EMAS

开发者 低代码开发 有奖评测 快速开发全端应用

自我管理型团队:企业组织力提升利器

敏捷开发

项目管理 敏捷开发 高效协作 自我管理型团队

低代码可视化拖拽编辑器实现方案

这我可不懂

前端 低代码 可视化 JNPF

垂域LLM应用实践

csunny

大模型 GPT LLM

当 MQTT 遇上 ChatGPT:探索可自然交互的物联网智能应用

EMQ映云科技

物联网 mqtt ChatGPT

中航机载系统共性技术有限公司*IoTDB | 端边云架构预计节省百万存储成本,实现基于工业物联网的复杂机载制造系统协同

Apache IoTDB

物联网 端边云协同架构 IoTDB 中国航天

MySQL 如何快速插入大量测试数据

hungxy

MySQL 后端

争论:JCP在Java的未来中将扮演什么角色?_Java_Ryan Slobojan_InfoQ精选文章