AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

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

关注

评论

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

2022年最受工程师欢迎的10款抓包工具有哪些?不止Wireshark和Tcpdump哦!

wljslmz

Wireshark fiddler 网络技术 网络抓包 9月月更

FinClip 8 月例行汇报,这个月干了啥

FinClip

阿里灵杰融合智能算力,全栈AI服务为探索者铺路

阿里云大数据AI技术

人工智能 大数据 企业号九月金秋榜

分布式团队的高效站立会说明书 | Liga译文

LigaAI

高效工作 敏捷开发 开发团队 每日站会 企业号九月金秋榜

软件测试 | 测试开发 | 测试开发基础 mvn test | 利用 Maven Surefire Plugin 做测试用例基础执行管理

测吧(北京)科技有限公司

maven

游戏技术加速数实融合,网易伏羲挖掘机器人首次曝光

网易伏羲

人工智能 机器学习 工程实践

零基础学习java培训是否适合参加

小谷哥

从云计算到函数计算

Serverless Devs

云计算 阿里云 AWS

软件测试 | 测试开发 | 构建测试平台与对应的组织架构需要哪些能力?

测吧(北京)科技有限公司

测试

跟我学Python图像处理丨何为图像的灰度非线性变换

华为云开发者联盟

Python 人工智能 图片处理 企业号九月金秋榜

利用GCC插件实现代码分析和安全审计

科技怪咖

零基础如何参加大数据培训

小谷哥

从零教你使用MindStudio进行Pytorch离线推理全流程

华为云开发者联盟

Python 人工智能 企业号九月金秋榜

解锁云原生新场景 | 云原生加速云边端一体化发展

York

容器 云原生 边缘计算 边云协同 边缘云原生

千锋锋友学盟分享会:程序员百万年薪进阶指

千锋IT教育

谈谈我对云原生与软件供应链安全的思考

阿里巴巴中间件

阿里云 云原生 容器服务

公链开发功能详细分析

开发微hkkf5566

学员参加前端培训哪里比较靠谱?

小谷哥

二本4年Java经验,五面阿里(定薪45K)

退休的汤姆

Java 程序员 阿里 面经 秋招

音视频开发进阶|第六讲:色彩和色彩空间·上篇

ZEGO即构

音视频开发 色彩 色彩空间

Dubbo 3 StateRouter:下一代微服务高效流量路由

阿里巴巴中间件

阿里云 开源 微服务 dubbo 中间件

Substrate技术及生态8月大事记 | 波卡发布新版本,XCM协议更新

One Block Community

区块链 技术 开发者 Substrate 更新

Apache DolphinScheduler PMC:开源不一定也要九死一生

白鲸开源

海豚调度 开源社区 Apache DolphinScheduler 开源文化 #开源

一文带你认识AscendCL

华为云开发者联盟

人工智能 昇腾 企业号九月金秋榜

在线数据迁移,数字化时代的必修课 —— 京东云数据迁移实践

京东科技开发者

数据 数据迁移 上云 redis'

DevOps 团队如何防御 API 攻击

SEAL安全

DevOps DevSecOps 软件供应链安全

首次公开到知乎爆火!基于SpringCloud+SpringBoot+Vue电子版项目实战教程,附完整源码

退休的汤姆

Java spring 程序员 面试题 阿里

大数据培训前景怎么样

小谷哥

在java培训中心怎样才能快速学习?

小谷哥

基于阿里云Serverless函数计算开发的疫情数据统计推送机器人

Serverless Devs

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