编者按:早在上世纪90年代,各种关于Java已死的断言就已经开始出现。十多年之后的今年,这样的言论依然不绝于耳。以关键词"java is dead"在Google中搜索,得到大约199,000条结果,由此可见不少人写过或评论过Java的死亡。针对这门已死十多年的语言,作者在文中概述了当今Java的地位及其发展趋势,有力地回击了这些传言。全文如下:
很多Java已死的言论者是因为不喜欢Java的某些特性(如当初Java所没有的闭包),而且考虑向后兼容性,所以他们对新特性的效力和是否适合表示了质疑,有时候他们也认为Java变得过于复杂。当然这些言论者在打诳语的同时,也会提议另一种语言也就是他们所喜欢的语言。我敢说,他们对Java提出多少批评,我就可以对他们提议的语言提出更多的批评。只是我们完全没必要。
讽刺的是,作为一门已死的语言来说,Java做得真是不错:它仍是Tiobe Programming Community Index编程语言排行榜上的第一位,而且已经占据此位置十年之久(只是在2000年中期的时候位于C语言之后排第二)。从招聘网站来看,Java程序员也依旧有着旺盛的需求。
所以,Java已死的言论真的很无稽,而且至少在接下来的这几年里会依然无稽。原因有很多:首先,许多计算机科学的程序和其他领域的程序是以Java为首要语言来编写的;第二,Java有一个巨大的稳定的代码库;第三,有大量的厂商投资、工具、培训和其他产品,使得无论是供应商还是他们的客户都依赖着Java。第四,Java拥有最大的开发者人群和开源生态系统,当涉及到选择何种工具、供应商和开发者来作为未来的开发方向时,Java仍是首选。显然,Java一点都没死。
退一万步来说,就算Java真的到了暮年或者即将老去,参照其他已接近死亡的语言,它的未来也并不暗淡。比如许多开发者谈论C++正在死去,而它最近却在复苏,因为Google Go语言的发布重新激起了C和C++的生命力。而且鉴于C++的历史沉淀和基础,能完全取代它的语言目前恐怕只有Java。而即使Java想在自己的优势领域(如GUI和数据库开发)完全取代C++,也面临着很大的障碍即:将C++应用搬迁到Java的巨大成本。尽管JNI、CORBA、web服务和相似的技术领域已经将两种语言混合,但它们有各自的复杂性和问题。所以一门不甚景气的编程语言完全死去也要经历很长的时间,况且Java还远没到不景气那一步。
当然,Java面临的最大的威胁是快速发展的JVM-hosted语言如Groovy, Scala, JRuby和 Clojure。由于这些语言运行在JVM上,它们与Java语言的集成比Java自身更便捷、更简单。而Java正面临着一个巨大的影响:Oracle对Sun的收购。但结果是好或坏,我们只能等待交易最终的完成(或者取消)。
因此,尽管Java有了臃肿之处和岁月的痕迹,但当把所有的因素都考虑在内(Java庞大的生态系统和产品、现有的代码和投资),很难看出在不久的将来有一门语言会比Java更成功。Java远没有死亡,根本不应该列入将死亡的语言行列。(译/王玉磊)
原文链接:http://www.dzone.com/links/i_use_dead_programming_languages_java.html(需要翻墙)