Josh Bloch在Sun公司多年为Java平台作出了杰出贡献(如果你用过Java Collections框架就会了解这一点),现在Google就职,是获奖图书《Effective Java》及《Effective Java 第二版》的作者。最近他在基于Web的RedHat中间件2020大会上做了一场演讲,其主旨是对Oracle所管理的Java平台的未来表示出审慎乐观和忧虑。InfoQ采访了Josh以了解其在这方面的更多想法。因为有许多不同的、现实的观点交织在一起,这次讨论(尤其考虑到Sun人才从Oralce流失日益加剧以及为Oracle如何管理社区和Java智力资产而担忧)是最近以来最热烈的一次。我们很高兴能与Bloch一起讨论这些问题。 InfoQ:你最关切的是什么? 这不是个单选题,过去几年有很多因素纠缠在一起,导致了Java风向发生了变化。 InfoQ:为什么你会觉得Java的发展步伐慢下来了?
InfoQ:对于Sun所不能及,Oracle有更好的解决方案吗? Oracle有支持JCP改革以终结争端的历史。而且他们在经济上也比Sun更有实力,所以他们能够承担起复兴这一平台的重任,而且他们也公开宣传要这么做。最终,由于这次易主,一些历史遗留问题将就此终结。对于Sun来说不可接受的一些变化,Oracle或许会从全新角度去看待——“为什么不变呢?” InfoQ:是否所有症结都归结为许可问题? 不,许可问题只是其中的主要问题,但还有其他问题。正如我以前提到的,对于资源、领导力、焦点的缺乏也都是问题。 InfoQ:ApacheHarmony项目(被作为Android类库的基础)的境况可接受吗?(在Google采用Harmony作为Android类库基础之前,Harmony与Sun就TCK许可问题斗争得很激烈。Google决定使用Harmony而非OpenJDK对Harmony的TCK许可争端影响并不大,却对Sun决定其OpenJDK使用GPLv2许可影响很大。如果没有更宽松的许可协议,Google的合作伙伴不会同意使用。Apache组织一度被授予了一个受限的TCK许可,但其仍被拒绝,因为使用领域的限制对Apache和JCPEC来说都是不可接受的,他们认为这一限制违反了JCP协定。) 不能接受。正如以前我所提到的,它阻碍了平台的健康成长。而且它给众多公司带来了巨大的工作压力,造成在Harmony和OpenJDK之间不必要的资源拆分。 InfoQ:你希望Oracle对Harmony这类东西做出何种反应? 我希望他们能履行在2007年12月12日JCP EC会议上所提出的决议: 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 |
|