Java过时了吗?听起来有些人会感到惊讶和不屑,但是网上关于Java过时争论却一直没有停止过,是谁在高谈Java过时论,难道Java真的走到了生命的结点了吗?
RoR挑战Java Web领域
Java过时论的传言由来以久,随便在Google上一搜就能搜到191,000条数据,这些数据足可以说明很多人在关心Java技术的过时与否,在众帖子最显眼的便是崇尚敏捷WEB开发的Ribbin大师,Ribbin曾经说过“四年以前,当我开始鼓吹Hibernate,抨击EJB的时候,遭到的是群起而攻之的场面,但是不到一年之后,Hibernate已然得到了普及和大多数Java开发人员的认可;
在三年以前,当我开始赞誉Spring的时候,Spring还面临着EJB3的阴影,以及EJB2对其不登大雅之堂的指责,然而不到一年的时间,Spring已经成为绝大多数Java开发人员的首选;
在两年以前,我极力希望宣传WebWebWork,唱衰JSF,时至今日,WebWebWork以Struts2.0的身份容登大雅之堂,而JSF还在靠厂商死挺着;而当一年之前我开始采用RoR开发JavaEye的时候,RoR的置疑之声还甚嚣尘上,但当我在今年初预言07年下半年RoR在国内会被广泛接受的时候,很多人已经笑不出来了;”
Ribbin多年来一直是Java的企业咨询专家,后期投入到RoR的开发中,做为大师我想他的这些预言有绝对的权威性,RoR在WEB领域的表现是勿庸置疑的,而Java在Web领域这么多年,开源框架的混乱,学习的曲线坡度增加,吓退了很多开发者,转而投向其它开发语言,Ruby号称目前主流的WEB开发技术当中开发速度最快的开发工具,可以达到j2ee框架开发速度的5-10倍,单从这数字上可以看出,RoR在Web领域进步开始超越Java等其它众多开发语言。
数字终归是数字,我们还要具体情况具体分析,就目前的情况来说,Ruby还挑战不了Java王者的地位,从可以预见将来Ruby也不会取代Java的地位。这是因为: 促成Java成为当今天主流开发平台,是有很多因素综合作用导致的,而且也有一个历史机遇的问题。当应用软件开发方式从C/S转向B/S的时候,Java抓住了历史机遇,造就了目前全球多数应用软件厂商都基于Java开发软件的事实,Java在整个全球的商业价值。并且从从Java自身的语法角度来说,也非常适合目前软件外包产业的大规模分工协作。此外Java并没有固步自封,在开源社区和商业厂商双重强力推动下,Java自身仍然在快速的进步,生命力很顽强。
Ruby目前只是在Web开发领域对比Java有很强的开发效率优势,但并没有Java那么齐全的产品线,从基础软件到Web应用软件,从桌面到嵌入式开发,Java无处不在。
Java是主流的工业级别的编程语言这是一个即定的事实,就单个程序员个体的编程效率来说,远不如Ruby,但是很多软件公司,特别是软件外包往往是几十人,上百人大规模团队协作开发,在这种情况下,个体的编程效率并不重要,重要的是团队之间协作和模块独立分割以及组合,Java能够很好的满足这种软件开发模式。但是Ruby显然不适合这种软件开发模式,Ruby更适合小规模团队的开发(一般少于10人),采用敏捷开发方式,高效率的开发软件。
所以各位对Java有兴趣的开发人员用不着恐慌,语言的多元化发展给我们程序员提供了更多的开发选择,Java多年来的基础还在,到目前为止还没有一种超越Java的开发语言出现,Java过时的说法只是一种推测,一种想法而已。
Ajax走出PC时代Java移动领域受冲击
Java过时论源于WEB领域的受到冲击,但是Java在移动领域多年“太平天国”的局面也被打破,2007年月初诺基亚论坛副总裁Lee Epting证实,世界上最大的手机生产商正在研究“移动AJAX”技术,该技术为诺基亚论坛的130万开发者开发出更丰富的手机应用提供支持。
并且提出Java ME现在在业务模型方面已经曝露出严重的缺陷, AJAXWorld 2006大会的发言人Ajit Jaokar表示,xHTML也将走向它生命的结点,因为Ajax提供了超级用户界面,末来将成为移动应用平台的最佳选择。
诺基亚走向AJAX的另一个原因可能是来自于微软的.NET Compact Framework的压力,诺基亚对此并不直接支持,而不得不坚持用Java ME、Symbian OS,以及最近的C++。
业内分析家认为,AJAX与C++和Java相比,不是一个高效的技术;因为它需要更多的处理能力和内存来达到同样的效果,但是他的确可以迅速的进行内容的开发,而对于移动互联网来说,对于高质量的内容有很大的需求,因此诺基亚选择了Ajax。
AJAX也能为下一代SIM芯片上的内容提供理想的平台,这一点有的开发者已经进行了成功的部署。
2007年6月29日, Apple在美国的旧金山,发布了跨越时代的手机iphone,Ajax真正走出PC时代,从而实现了灰姑娘到白雪公主的转变,Ajax的在移动领域成功,给Java在移动领域构成的威胁是显而易见的。
Iphone的推出是否会在业界产生连锁反应,我们无法判断,但是诺基亚的掉头转向ajax,将会使Java在移动领域方面面临一次大的滑坡,也为高调宣传Java过时论者提供了有力的证据。但是Sun公司不会眼看多年打下的江山就此崩盘,jphone的推出也许是对iphone最有力回击,说明Java fx开始绝地反击,群雄争霸的乱象不可避免。
唱衰Java论者的高调宣言
在Web领域和移动领域,如果Java受到的冲击还只是零星碎片的话,形成不了集团优势,那么来自微软的全方位进攻,绝对是泰上压顶,.NET是未来开发领域的趋势,是.NET狂热者们的高调宣言。
虽然donet是抄Java的,但是却抄的很讨巧,能够让大众接受,微软把它集成技术方面的优势发挥的淋漓尽致,易用,快速成为donet的王牌招式,反观Java,就令人失望得多,Java虽然创造了软件开发的神话,却没有持续辉煌的神话。
即使Java在诸多方面存在着不足,但是我们不能否定它存在的价植,据Sun公司2006年评估数据显示,Java拥用全球450万开发者,与去年相比增加12%,25亿兼容Java的设备,自2004年6月以来增长42%, 10亿Java Card,自2004年6月以来增长67%; •截止至2005年6月,支持Java的手机数量已达到7.08亿部,于2004年6月相比,增长了23%,7亿台PC计算机,自2004年6月以来增长8%,除此之外,还有上百万台机顶盒、医疗设备、彩票终端机、打印机、网络摄像头、停车付费系统等。这些光环的背后在告诉我们Java过时之路还很远。
即使.Net获得成功了,Java也不会退出舞台,因为Java的跨平台性决定了Java必须留下来,他会随着Unix走向何方?这还是一个未知数。现在Sun公司已经由盛转衰是一个不争的事实,但是对java过时论地宣扬还为时过早。