近日,Java之父James Gosling宣布退出甲骨文公司。几年以前,当笔者关于Java是否已过了发展高峰这个问题求证于Sun公司某高层时,这位高层就曾充满信心地表示:“James Gosling还在Sun公司,有了它,Sun会不断做出创新,以应对Java发展过程中出现的新问题。”然而,现在James Gosling真地另立门户了,Java还能红火多长时间呢?
在TIOBE 4月编程语言排行版中,时隔4年多,C语言重回编程榜榜首。作为编程语言之林的常青树,C语言的市场份额10年来长期保持在15%至20%之间。业内专家普遍认为,此次C语言抢到榜首,并不意味着C语言份额的大幅上涨,而是源于其竞争对手Java的衰落。
在不少业界专家看来,影响Java发展的因素并不在于James Gosling是否在,而来自于技术和专利纠纷。Google首席工程师Josh Bloch近日对此直言:“近些年来Java一直处于群龙无首的状态,技术和专利纠纷在过去几年内对Java的发展造成了极大的伤害,它们消耗了社区太多的资源,而且影响恶劣。”
事实上,Java的归属是一个非常复杂的问题。表面上,Sun控制着Java,但实际上Java的很多项技术进步来自于IBM等厂商。所以,Sun只是Java表面的王者。
与Java不同,.Net却完全由微软公司控制着。配合上.Net工具软件中完善的技术文档和帮助系统,再加上微软充分大的市场占有率,才使得.Net有能力与Java相抗衡。而Java在过去两年能在与.Net的对抗中占得上风,与Spring、Hibernet等工源工具被引入Java领域有极大的关系。但这些工具的引入,确实会使得Java在专利问题上存在隐患。
从血统上分析,Java的前身Oak是在C++的基础上开发的,而C++是在C的基础上开发的。因此,Java和C、C++具有许多相似之处,它继承了C、C++的优点,增加了一些实用的功能,并让Java 语言更加精炼。同时,Java 语言摒弃了C、C++的缺点,去掉了C、C++的指针运算、结构体定义、手工释放内存等容易引起错误的功能和特征,增强了Java的安全性,也让Java更容易被接受和学习。
在Java发展初期,“一次编写,到处运行”的跨平台特性,让Java几乎横扫了所以的对手。从登月的太空船,到我们身边的管理软件,都可能有Java的身影。这使得Java在使用的广度上远胜其他开发语言。
但是,目前比Java更老的C语言已焕发青春,PHP语言经过了几年的积累也正迎头赶上。如Ruby这样的新兴的开发语言,也在靠着自己在某方面的长项,也正在试图冲击Java的王者地位。考虑到这些因素,Java语言的没落并非没有可能。
甲骨文公司收购Sun公司,不会希望得到一个没落了的Java语言,因此一定会投入更多力量发展Java语言,再加上Java语言已有的优势,所以Java既使没落,也会有一个过程。现在需要关注的问题,是在这个过程中,谁有能力使得Java语言避免踏上没落之路。
关于这一点,Josh Bloch直言:“在企业市场Java将继续保持主导平台的地位,但是如果不从现在开始进行变革,那么它迟早会没落。”
Java之父James Gosling则表述了这样的观点:“Java离死还远着呢,它的确正变得复杂,但仍充满活力;我还会参与Java的发展,但还不明确以怎样的方式。”
就象众多大师与他们所发明的IT技术一样,可能在相当长的时期内,他们是主导者,但当这些技术被业界更多采用以后,主导因素就不仅是大师本身的力量了。James Gosling走了,Java能否接着红火,取决的因素太多了。