与 Josh Bloch 探讨 Java 未来
作者 Josh Long 译者 宋玮 发布于 2010年5月5日 下午9时7分
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的发展步伐慢下来了?
- Sun/Apache纠纷以及TCK许可权之争都严重干扰了JCP过程运作。
- Sun支持力、领导力和透明度的缺乏使得Java 7发展缓慢。我不知道在过去几年里Sun分配给Java SE的资源到底有多少,但结果是非常明显的:JavaOne年年都在办,但Java 7却还遥不可及。Java支持者间的许多争端也着实让人讨厌。前期,Sun所扮演的乐善好施的角色还是有助于减少内部矛盾的。
- 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应该成为一个开放的、独立的、厂商中立的标准化组织,在这里所有成员参与的公平竞争场所具有以下特点:
- 成员为开发提供资金并管理开支
- 一个合法的实体、理事机构、会员资格等等。
- 一个新的、简化的知识产权政策,允许最广大的实现。
- 规章需要有兼容性
- 致力于促进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
转自:http://www.infoq.com/cn/news/2010/05/bloch_java_future