写点什么

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

评论

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

COPT4.0新增凸QP、QCP和QCQP求解能力

杉数科技

求解器 优化求解器 凸QP 凸QCP

云服务器ECS选购指南及省钱法宝(强烈建议收藏)

阿里云弹性计算

玩转ECS 选购指南

极速生成缩略图,Serverless 支撑赛事转播锁定冬奥亮点

Serverless Devs

斯图飞腾Stratifyd入选「2022爱分析·营销科技厂商全景报告」

Geek_2d6073

为什么国企要加快推进数字化转型?

用友BIP

数字化转型 用友 用友iuap 用友YonBIP 国企

异步请求积压可视化|如何 1 分钟内快速定位函数计算积压问题

Serverless Devs

计算IIS

杉数科技

求解器 优化求解器 计算IIS 混合整数规划 杉数科技

【场景化集成方案】如何让企业快速集成钉钉各种能力

钉钉开发者

钉钉能力中心 钉钉官网 场景化能力包 场景化解决方案 应用集成方案

浅析企业云服务之SaaS、PaaS、IaaS对比分析

郑州埃文科技

IaaS PaaS SaaS

StarRocks 元数据管理及 FE 高可用机制

邸星星

BerkeleyDB-JE bdbje StarRocks元数据管理

万字通俗讲解何为复杂度

华为云开发者联盟

数据结构 时间复杂度 复杂度 空间复杂度 复杂度分许

第十五节:SpringBoot使用JPA访问数据库

入门小站

spring-boot

阿里云资深专家李国强:云原生的一些趋势和新方向

Serverless Devs

生态扩大进行中!Apache APISIX 集成 Splunk HTTP Event Collector

API7.ai 技术团队

API网关 Apache APISIX

JWT Token在线编码生成

入门小站

工具

企业级 APIs 安全实践指南 (建议初中级工程师收藏)

领创集团Advance Intelligence Group

API

Apache APISIX 集成 HashiCorp Vault,生态系统再添一员

API7.ai 技术团队

开源 安全 后端 API网关 APISIX

生态扩大进行中!Apache APISIX 支持 Azure Functions 集成

API7.ai 技术团队

microsoft azure API网关 Apache APISIX

APP热更新技术最优解,不只是支持热更新...

Speedoooo

小程序 APP开发 容器安全 热更新 小程序容器

使用goofys挂载S3 bucket为文件系统

阿呆

文件系统 goofys aws s3

2022写作计划2月文章排行榜

TGO鲲鹏会

TGO鲲鹏会 写作计划

Window下Redis的安装和部署详细教程

明金同学

redis

如何使用 Apache APISIX CSRF 安全插件拦截跨站点伪造攻击

API7.ai 技术团队

CSRF API网关 Apache APISIX

新插件上线,public API 处理能力更进一步

API7.ai 技术团队

HTTP APISIX APISIX 网关

Nacos 在 Apache APISIX API 网关中的服务发现实践

API7.ai 技术团队

nacos 注册中心 服务发现 API网关 APISIX

Apache APISIX 新技能,代理 gRPC-Web 请求

API7.ai 技术团队

gRPC HTTP 网关 APISIX

Apache APISIX 集成 Open Policy Agent

API7.ai 技术团队

开源 后端 API网关 OPA Apache APISIX

如何在设计时保证RPA机器人的稳定运行?

金小K

常青藤开源科技加入,龙蜥社区再迎 HPC 和开源领域新伙伴

OpenAnolis小助手

Linux 开源 高性能计算

学生外包管理系统架构设计文档

孙强

#架构实战营

你知道钓鱼网站的形成步骤吗?一次网络钓鱼演练带你了解(增强安全意识)

H

网络安全 钓鱼网站

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