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