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過時論地宣揚還為時過早。