写点什么

与 Josh Bloch 探讨 Java 未来

  • 2010-05-05
  • 本文字数:2929 字

    阅读完需:约 10 分钟

Josh Bloch 在 Sun 公司多年为 Java 平台作出了杰出贡献(如果你用过 Java Collections 框架就会了解这一点),现在 Google 就职,是获奖图书《Effective Java》及《 Effective Java 第二版》的作者。最近他在基于 Web 的 Red Hat 中间件 2020 大会上做了一场演讲,其主旨是对 Oracle 所管理的 Java 平台的未来表示出审慎乐观和忧虑。InfoQ 采访了 Josh 以了解其在这方面的更多想法。因为有许多不同的、现实的观点交织在一起,这次讨论(尤其考虑到 Sun 人才从 Oralce 流失日益加剧以及为 Oracle 如何管理社区和 Java 智力资产而担忧)是最近以来最热烈的一次。我们很高兴能与 Bloch 一起讨论这些问题。

InfoQ:你最关切的是什么?

这不是个单选题,过去几年有很多因素纠缠在一起,导致了 Java 风向发生了变化。

InfoQ:为什么你会觉得 Java 的发展步伐慢下来了?

  1. Sun/Apache 纠纷以及 TCK 许可权之争都严重干扰了 JCP 过程运作。
  2. Sun 支持力、领导力和透明度的缺乏使得 Java 7 发展缓慢。我不知道在过去几年里 Sun 分配给 Java SE 的资源到底有多少,但结果是非常明显的:JavaOne 年年都在办,但 Java 7 却还遥不可及。Java 支持者间的许多争端也着实让人讨厌。前期,Sun 所扮演的乐善好施的角色还是有助于减少内部矛盾的。
  3. OpenJDK 使用 GPLv2 许可阻碍了人们采用 OpenJDK,即便是那些不太关心 TCK 问题的人。“copyleft”吓跑了很多潜在的公司使用者。结果,为了同时发展 Harmony 和 OpenJDK,资源被一劈两半。由不同 JCP 成员针对不同标准的不同组件所使用的不同许可实在是混乱不堪,结果实际上给 Java 平台的发展带来了负面影响。

InfoQ:对于 Sun 所不能及,Oracle 有更好的解决方案吗?

Oracle 有支持 JCP 改革以终结争端的历史。而且他们在经济上也比 Sun 更有实力,所以他们能够承担起复兴这一平台的重任,而且他们也公开宣传要这么做。最终,由于这次易主,一些历史遗留问题将就此终结。对于 Sun 来说不可接受的一些变化,Oracle 或许会从全新角度去看待——“为什么不变呢?”

InfoQ:是否所有症结都归结为许可问题?

不,许可问题只是其中的主要问题,但还有其他问题。正如我以前提到的,对于资源、领导力、焦点的缺乏也都是问题。

InfoQ:Apache Harmony 项目(被作为 Android 类库的基础)的境况可接受吗?(在 Google 采用 Harmony 作为 Android 类库基础之前,Harmony 与 Sun 就 TCK 许可问题斗争得很激烈。Google 决定使用 Harmony 而非 OpenJDK 对 Harmony 的 TCK 许可争端影响并不大,却对 Sun 决定其 OpenJDK 使用 GPLv2 许可影响很大。如果没有更宽松的许可协议,Google 的合作伙伴不会同意使用。Apache 组织一度被授予了一个受限的 TCK 许可,但其仍被拒绝,因为使用领域的限制对 Apache 和 JCP EC 来说都是不可接受的,他们认为这一限制违反了 JCP 协定。)

不能接受。正如以前我所提到的,它阻碍了平台的健康成长。而且它给众多公司带来了巨大的工作压力,造成在 Harmony 和 OpenJDK 之间不必要的资源拆分。

InfoQ:你希望 Oracle 对 Harmony 这类东西做出何种反应?

我希望他们能履行在 2007 年 12 月 12 日 JCP EC 会议上所提出的决议: > 决议 1 (Oracle 提议,BEA 附议)

“执行委员会认为 JCP 应该成为一个开放的、独立的、厂商中立的标准化组织,在这里所有成员参与的公平竞争场所具有以下特点:

  1. 成员为开发提供资金并管理开支
  2. 一个合法的实体、理事机构、会员资格等等。
  3. 一个新的、简化的知识产权政策,允许最广大的实现。
  4. 规章需要有兼容性
  5. 致力于促进 Java 编程模型

此外,如果这一变革实际对 Java 社区影响较小,EC 应该尽快为此制定计划。”

至于说“新的、简化的知识产权政策”,如果所有 Java 规范的所有组件都采纳像 Apache 或 BSD 这样被广泛接受的宽松的开源许可,我认为这将非常有利于整个社区发展。

InfoQ:你怎么看 Oracle 的角色?

我很乐见他们能够纠正 Sun 领导力不足及 Java 平台发展缓慢的问题。当然现在的情况有点不同了,世界已经改变了。其他组织将贡献更多的资源并享有更大的控制权。

InfoQ:你认为像 Dalvik 这样的东西能适应新的 Oracle Java 环境吗?

在崭新的开源世界里,有多个相关平台是既定事实。有许多类 Unix 操作系统及许多 Linux 变种(为多种用途做了优化)。我认为 Dalvik 作为 VM,有着截然不同的设计目标,并且受到 HotSpot 或 JRockit 的制约。

InfoQ:另外,你怎么看 Java ME 的发展?彻底被取代了?Sun 会“祝福”Android 成为下一代 Java ME 吗?在 Android/iPhone 当道的今天,Jave ME 如何与之竞争?

我认为我不适合就此作出推测,但是需要指出的是,在开发界“功能手机——featrue phones”(相对于“智能手机——smart phones”)仍有一席之地,而 Java ME 正是为功能手机而设计的。

InfoQ:最近, Tiobe 语言排行不止一次显示出 Java 使用率下降的趋势。你怎么看?

其显示 Java 使用率轻微下降,相应的 C 使用率却在上升。我不确定这是真实情况的还是某种统计异常,但是看到一个已存在 35 年之久的“通用汇编语言”排在了第一位还蛮有趣的。当然,我承认 C 在我心里是一软肋。

InfoQ:这一点或许可以证明,但是你觉得是本身 JVM 使用率下降了,还是由于 Ruby/Scala/Jython/Groovy 的增长导致了 Java 份额的下降?

实际上你提到的这几门语言都没有排在前 20。这并不意味着他们不重要或没有价值。但他们还不是主流。不过,近些年语言研究和设计发展的数量让我感到震惊,涌现出许多好的思想,更不可思议的是人们正在探索这些语言。

InfoQ:你认为 Java 在衰退吗?我们应该为此而感到担忧吗?

我认为,公平地说 Java 正处在困难期。但是我不认为该平台或语言在衰退。我觉得其有衰退的危险,但是我希望 Oracle 和 Java 社区能够防止这一情况出现。没错,我觉得它让大家感到担忧。我认为一个强大的 Java 对编程大众是有益的:包括公司、高等教育、K-12、开源社区。

InfoQ: 依你之见,谁有希望替代它(而且不在 JVM 上)?

除过 CLR(其实际上仅是 Windows 上的平台)之外,还没有哪一个能与 JVM 处在同一水平线上。实际上,还没有谁能真正替代 Java 编程语言。是有许多很好的编程语言,但是没有一个有同样的“设计中心”。语言是工具,我们应该针对不同工作使用正确的工具。没有包治百病的药。

InfoQ:有无发放 JRE 许可的商业案例?

或许有一些高深莫测的变相案例。但是我认为保持 JRE 被广泛使用符合 Oracle 的利益,这和在 Sun 的时候一样。

InfoQ:接着上一个问题,当然也是单独一点:关于在 JRockit JVM、Sun JVM 及其他各色 VM 技术之间进行协调的观点,你怎么看?

理论上,我认为把各个 JVM 的优点抽取出来组合成一个更好的东西是一件非常好的事情。但是请记住 Sun 甚至从未成功将客户端和服务器端的不同 HotSpot 加以整合。整合多个系统是非常难的,可以实现但绝不容易。一旦失败成本将非常高昂。

InfoQ:还有什么要补充的吗?

我只想提醒一下大家,许多近期的 Java 成功案例都被淹没在前途暗淡的声音之下了。这些案例中包括 Google Collections Guice 、你前面所提到的 JVM 语言、以及 Android。有了 Oracle 方快速、果断的行动,加上 Java 社区的广泛合作,我觉得 Java 平台的前景非常光明。

查看英文原文: A Discussion with Josh Bloch on the Future of Java

2010-05-05 21:075688
用户头像

发布了 150 篇内容, 共 48.1 次阅读, 收获喜欢 10 次。

关注

评论

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

开源应用中心|这款漂亮的国产开源论坛系统,放着不用太可惜!

开源软件

【得物技术】直播服务监控告警归因实践

得物技术

稳定性 服务 直播 告警 问题排查

PhxSQL设计与实现

OpenIM

Java + opencv 实现性别识别

张音乐

Java OpenCV 9月日更 性别识别

Erda 系列 Meetup「成都站」携手SOFAStack 和你聊聊云原生基础设施建设那点事儿

尔达Erda

开发者 云原生 活动 技术人

云小课|细数那些VMware虚拟机的恢复招式

华为云开发者联盟

vmware 云小课 云备份 VMware恢复 恢复数据

再启动!零代码第四期训练营报名开放中

明道云

波场链DAPP智能合约系统搭建|波场链DAPP开发

Geek_23f0c3

DAPP智能合约交易系统开发 波场DAPP 波场链DAPP开发

如何使用 Redis 实现后台房间的数据管理?

ZEGO即构

redis 架构 音视频

BaikalDB在大规模数据场景的挑战和实践

百度开发者中心

最佳实践 方法论 存储系统

拥抱开源,云智慧发布AIOps社区

BeeWorks

阅读

学习笔记20210903(python测试类,贝叶斯定理)

姬翔

9月日更

直播回顾 | 做一个有格局的工程师

鉴释

创业 工程师 CEO

什么是低代码?低代码开发对企业有哪些特殊作用和优势?

优秀

低代码开发

爱奇艺本地实时Cache方案

爱奇艺技术产品团队

分布式 高并发 cache

中移“校企行”专项行动即将开赛,你准备好了吗?

创业邦

OpenSSL国密爆出8.1分高危漏洞CVE-2021-3711

腾讯安全云鼎实验室

漏洞分析 openssl

国资云横空出世,云上安全监管再加码

行云管家

云计算 数据安全 企业上云 国资云

fil矿机组装教程是什么?fil矿机算力单位有哪些?fil矿机冗余是什么?

fil矿机组装教程是什么 fil矿机算力单位有哪些 fil矿机冗余是什么

第一波场DAPP系统搭建,DAPP介绍

合肥艾数199四②43⑧797

Dogfooding-爱奇艺移动端后台灰度环境优化实践

爱奇艺技术产品团队

测试 开发 灰度发布

一周信创舆情观察(8.23~8.29)

统小信uos

Python代码阅读(第23篇):将变量名称转换为短横线连接式命名风格

Felix

Python 编程 Code Programing 阅读代码

携手伙伴,共赴星海-百度飞桨应急行业AI私享会成功举办

百度大脑

人工智能 飞桨

敏捷团队的最佳测试实践:自动化金字塔

禅道项目管理

测试 自动化测试

投资filecoin的最佳选择是?Filecoin挖矿的是如何月入上万的?

区块链 分布式存储 IPFS filecoin挖矿 投资filecoin

filecoin今日价格行情?fil币能涨到1万一枚吗?

区块链 分布式存储 fil币价格预测? filecoin挖矿 filecoin价格行情

高可用 | Xenon 实现 MySQL 高可用架构 常用操作篇

RadonDB

MySQL 数据库 RadonDB

值钱的数据放在云上安全吗?怎样才能保障其安全性?

行云管家

网络安全 信息安全 数据安全 企业上云

服务器运维是什么意思?日常工作包含哪些?

行云管家

运维 服务器 IT运维 服务器运维

Android ABI

Changing Lin

9月日更

与Josh Bloch探讨Java未来_Java_Josh Long_InfoQ精选文章