AI 年度盘点与2025发展趋势展望,50+案例解析亮相AICon 了解详情
写点什么

争论: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:411493

评论

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

Facebook缓存技术演进:从单集群到多区域

伴鱼技术团队

架构 系统架构 分布式系统 缓存穿透 cache

架构师必备技能(灵魂拷问篇)

鲁米

架构师

谈反应式编程在服务端中的应用,数据库操作优化,从20秒到0.5秒

newbe36524

C# Reactive netcore

c# 之linq——小白入门级

moonlucy

食堂就餐卡系统设计

鲁米

架构设计

提高 TCP 性能的方法,你知多少?

小林coding

TCP 性能优化 高并发 网络

架构师训练营第1周作业——食堂就餐卡系统设计

在野

极客大学架构师训练营

架构师训练营-开营

zcj

极客大学架构师训练营

食堂打卡系统架构设计文档

Frank Zeng

FPGA

Kevin Z

架构师训练营第一周总结

hifly

软件架构 架构师 极客大学架构师训练营 #总结#

系统梳理主流定时器算法实现的差异以及应用

奈学教育

定时器

架构师训练营-第1课总结-202006-架构设计

👑👑merlan

架构设计 UML #总结#

作业1 餐卡系统设计

Geek_2e7dd7

微服务架构中分布式事务实现方案怎样何取舍【转发】

古月木易

微服务

产品经理越来越不值钱了吗?

Neco.W

产品 产品经理

系统梳理主流定时器算法实现的差异以及应用

古月木易

定时器

架构师训练营-第一周学习总结

zcj

极客大学架构师训练营

架构师训练营第一周课堂学习总结

Frank Zeng

架构师训练营第一周学习总结

jiangnanage

架构设计

译-面向前端开发人员的Docker入门指南

费马

Docker Linux 容器 运维 大前端

架构师训练营-第一周作业

zcj

极客大学架构师训练营

TOGAF认证自学宝典

涛哥 数字产品和业务架构

架构 企业架构

区块链如何打通征信行业的“任督二脉”?

CECBC

CECBC 区块链技术 征信 数据共享

数据结构与算法之基础入门

shirley

数据结构 算法

【架构师训练营】第一个周课程总结

Mr.hou

极客大学架构师训练营

二叉树视频|留美六年毅然归国,85 后技术 VP 金超:我想把工业智能做好

二叉树视频

写作平台 二叉树 年少有为

架构师训练营-第一周-学习总结

Anrika

极客大学架构师训练营 架构总结

作为一个架构师,我是不是应该有很多职责?

架构师修行之路

程序员 架构 架构师

架构师训练营 - 食堂就餐卡系统设计

Pontus

极客大学架构师训练营

第一周架构师总结

不在调上

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