尽管在11月Tiboe编程语言排行榜上,Java语言还在18.373%的份额占据着第一的位置。但它的拥有者显然已经应该感到压力了,因为排在第二位的C语言仅以17.315%的微弱劣势排在Java语言之后。而且不要忘了,排在第三位的PHP语言正以10.176%的份额大步赶上。
Java的对手
Drew Conway和John Myles White正在做一件非常有意思的事情。他们采用新的方法为程序语言排名:根据社区规模和项目数量。社区规模是根据问答网站StackOverflow上相关语言的提问量,项目数量计算的是Github上的项目。Drew Conway和John Myles White认为,两个因子有高关联性,但也存在不少偏差,比如Delphi的相关提问很多,而很多使用到JavaScript的项目不属于JavaScript语言项目。因此,他们认为综合采用这两种方法可能使得结果更可靠。
在Drew Conway和John Myles White的排名中,Java语言与C#、PHP、Objective C同时被列为第一类语言。换言之,Java的竞争对手似乎并不只是C和PHP。
ASF的出走
在四面楚歌之下,Java语言所做的却并不是创新突破,而是接连失去几个以往的密友。Apache软件基金会(ASF)近日正式宣布退出JCP执行委员会。ASF不满甲骨文限制第三方使用技术兼容包(TCK)演示Java实现与标准的兼容性,以获得必要的专利许可授权。它呼吁JCP成员投甲骨文所制定Java SE 7规格的反对票,但除了谷歌和Tim Peierls外无人响应。Java SE 7和Java SE 8的投票结果都是12票赞同,3票反对。
这一结果貌似是甲骨文占了上风,但我们也可以为这个结果做另一个解读:Java的控制权早已就四分五裂,以往Sun还因为靠近开源而得到开源组织的拥戴,但当Java的所有权落入甲骨文之手后,甲骨文的竞争对手更乐于看到Java被削弱。
而事实上,甲骨文的态度证明了我们的猜测。甲骨文已经请求Apache软件基金会(ASF)重新考虑退出Java SE/EE执行委员会的决定,承认ASF对Java的未来至关重要。在官方博客上,甲骨文的某位高管向Apache伸出了橄榄枝。然而至少目前看来,ASF并无热情重新加入执行委员会。ASF主席Jim Jagielski在Twitter上回应说,给个理由先。他认为,Java社区的批准流程已经死亡,留下的只是僵尸,行走在Java生态系统的街道上,寻找失去的大脑。
这样,ASF的出走已成定局。
Java的损失
Java语言从诞生之日起,就被下了一个定义:一次编写,到处运行。Java 原本属于 Sun 公司。Sun 一直是一个在商业和开源之间走着平衡的公司。虽然,Sun 开发了大部分的 Java 平台代码,但任何公司的平台,如果想要运行 Java 程序,仍就必须购买 Java 虚拟机的使用权,这涉及到安全和技术支持问题。
但规律之外总有特殊,Apache 基金会的 Harmony 计划就是这个规律之外的特殊,原因就在于Harmony 计划的目的在于使得Java 平台脱离 Sun 的控制,获得充分的自由。对此 Sun 自然不会很高兴,一是商业原因,二是可能产生的平台分裂。因此,Sun 虽然没有起诉 Apache 基金会,却一直没有给 Harmony 提供兼容测试,同时 Sun 在 Java 平台的使用上有限制,因此 Harmony 的代码是不能使用到手机上的。
Android 的 Dalvik 虚拟机运行的不是 Java 程序,但谷歌为了吸引 Java 程序员,允许 程序员使用 Android 的SDK 将 Java 代码转换成 Dalvik 可以运行的代码。谷歌之所以能够达到目的,就是利用了Harmony中的开源 Java 库来实现 Java 程序的转换,避开了授权费用。这意味着开发者可以使用 Java 语言为非 Java 平台开发程序,Android 的火爆发展不能给 Sun 带来商业利益,而且可能造成平台分裂。
ASF的此次出走,极可能使得Java变成由Oracle控制的专有语言,而破坏其开放性。这样,危局之下,Java语言却不得不提前经历自己的急速衰落期。