InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

与Josh Bloch探讨Java未来

作者 Josh Long 译者 宋玮 发布于 2010年5月5日

领域
过程 & 实践,
语言 & 开发
主题
JCP标准 ,
JCP ,
Java ME ,
Java SE ,
Java ,
Google ,
语言 ,
领导能力 ,
Android ,
社区 ,
编程 ,
敏捷 ,
操作系统 ,
移动

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 CollectionsGuice、你前面所提到的JVM语言、以及Android。有了Oracle方快速、果断的行动,加上Java社区的广泛合作,我觉得Java平台的前景非常光明。

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

译者 宋玮 有多年软件开发经验,长期担任技术管理和项目管理工作,一直关心开源软件的发展动态以及软件过程和敏捷开发的实践探索。

Great! 发表人 Hao Eric 发表于
Re: Great! 发表人 lee steeven 发表于
可叹 发表人 Great Way 发表于
呼啦啦似大厦倾 发表人 Ma Karl 发表于
可悲 发表人 jiang rosen 发表于
  1. 返回顶部

    Great!

    发表人 Hao Eric

    It will be better!

  2. 返回顶部

    可叹

    发表人 Great Way

    生于Sun,败于Sun

  3. 返回顶部

    呼啦啦似大厦倾

    发表人 Ma Karl

    RT

  4. 返回顶部

    可悲

    发表人 jiang rosen

    对未来,一点也不看好。

  5. 返回顶部

    Re: Great!

    发表人 lee steeven

    抄作业都不会抄~赶快点!