写点什么

与 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:075641
用户头像

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

关注

评论

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

更快内存、更大缓存,第五代英特尔至强可扩展处理器为多元工作负载提供出色性能

E科讯

NFTScan | 12.11~12.17 NFT 市场热点汇总

NFT Research

NFT NFT\ NFTScan nft工具

万界星空科技线束行业MES系统

万界星空科技

数字化转型 工业互联网 mes 线束行业 线束mes

灯具照明行业智能制造MES系统解决方案

万界星空科技

数字化转型 工业互联网 mes 智能照明 灯具mes

Amazon CodeWhisperer 在 vscode 的应用

亚马逊云科技 (Amazon Web Services)

人工智能 云上探索实验室 Amazon CodeWhisperer

你的JoinHint为什么不生效

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 华为云GaussDB(DWS)

米哈游宣布启动鸿蒙原生应用开发

新消费日报

Word LTSC 2021中文激活版+许可密钥

mac大玩家j

word office办公软件 Mac软件 Word 2021 许可证

未来LED全彩显示屏的发展趋势研究

Dylan

屏幕亮度 LED LED显示屏 户外LED显示屏

Amazon CodeWhisperer 体验

亚马逊云科技 (Amazon Web Services)

人工智能 云上探索实验室 Amazon CodeWhisperer

Shopee解析商品详情SKU方法丨ShopeeAPI接口封装指南

tbapi

Shopee 虾皮商品详情接口 shopee商品数据接口 shopee商品详情数据接口 shopee API

5个免费、跨平台的SQLite数据库可视化工具

不在线第一只蜗牛

sqlite sql 开源 数据可视化

Flutter Web 和 H5

A __Sun A0 .

flutter HTML5, CSS3 flutter for web

极限科技(INFINI labs)荣获中国信通院大数据“星河”标杆案例

极限实验室

中国信通院 极限科技 “星河”标杆案例

本周六下午【 TiDB 社区交流活动 上海站】 数据库运维有话聊,谈谈你了解的灾备实践,参会即可获得社区周边 3 件套

TiDB 社区干货传送门

#数据库

集成开发环境(IDE)的用途?

小魏写代码

社招邀请|阿里云热招岗位简历投递中!

阿里云CloudImagine

云计算

万界星空MES安灯管理:优化生产监控的重要工具

万界星空科技

数字化转型 mes 安灯系统 mes安灯管理 生产管理

finally中的代码一定会执行吗?

王磊

Java 面试题

mac强大的音视频转换器:Permute 3激活中文最新版

胖墩儿不胖y

Mac软件 音视频转换器 音视频格式转换

虾皮Shopee商品详情API:电商实时数据获取的关键

Noah

天猫商品详情接口json 格式返回介绍

tbapi

天猫商品详情数据接口 天猫商品API接口 天猫API接口

微店商品API:电商的实时数据利器

Noah

在CentOS上搭建NFS服务器

麦兜

什么是 DDoS ?如何识别和应对DDOS攻击

德迅云安全杨德俊

Web 安全 DDoS

《实现领域驱动设计》笔记——架构

EquatorCoco

架构 DDD 技术架构

火山引擎DataLeap:助你实现从数据研发1.0到数据研发3.0的跨越

字节跳动数据平台

大数据 数据中台

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