Java誕生二十周年:回顧編程世界主宰的成長歷程
早在上世紀九十年代初就業(yè)已誕生的消費級電子實驗成果已經于本周迎來了其作為企業(yè)級計算領域主要解決方案的第二十個年頭。毫無疑問,Java已經成為一款占據主導地位的平臺...
早在上世紀九十年代初就業(yè)已誕生的消費級電子實驗成果已經于本周迎來了其作為企業(yè)級計算領域主要解決方案的第二十個年頭。毫無疑問,Java已經成為一款占據主導地位的平臺,可以運行在任何能夠支持Java虛擬機的環(huán)境之下,而且成功經受住了多年以來其它競爭性語言的沖擊以及不斷曝出的安全性爭議。
Java之所以能在這條主宰之路上高歌猛進,憑借的是自身多種優(yōu)勢的協同作用。Java語言在1995年最初誕生時是作為一款面向對象的編程工具推出的,隨后在Sun Microsystems公司Green團隊其中包括James Gosling、Mike Sheridan以及其他眾多卓越人才的推動下迎來了為期五年的黃金發(fā)展時代。這支技術隊伍希望將信息與編程相結合,從而令網絡瀏覽體驗更具動態(tài),同時將數字化消費級設備與計算機加以結合無論是在客戶端層面還是解決思路層面。有鑒于此,最初曾被稱為“Oak”的Java項目以客戶端Applet技術的姿態(tài)第一次受到廣泛關注。然而隨后人們發(fā)現,Java的遠期目標實際上是向服務器端發(fā)展而這應當歸功于Sun、IBM以及甲骨文三家企業(yè)為其提供的以業(yè)務為導向的鼎力支持,Forrester研究公司分析師Jeffrey Hammond回憶道。
“事實證明,‘一次編寫、隨處運行’的概念在涵蓋各類呈現出嚴重碎片化傾向的客戶端設備時會變得難于實現,但其在混亂程度較低、不過仍由各供應商通過架構研發(fā)投入而造就的服務器平臺上卻能夠帶來比較理想的實踐效果,”Hammond表示。“歷史告訴我們,Java的虛擬機系統對于大部分開發(fā)人員而言比以往編寫并移植C代碼的方式更為簡便易行,而且其同時擁有著良好的供應商支持能力。”
Java目前的生存狀態(tài)
得益于良好的早期發(fā)展態(tài)勢,Java如今每年擁有超過10億次下載量、且被安裝在97%的企業(yè)臺式機當中,甲骨文公司公布了這樣的統計數字。事實上,Java開發(fā)時至今日仍然是開發(fā)人員們最為可靠的技能儲備。它不僅養(yǎng)活著900萬Java開發(fā)者,同時也一直在Tiobe、PyPL以及RedMonk等編程語言人氣榜乃至Dice.com等求職網站上名列前茅甚至雄踞首位。
“除了C語言與C++之外,Java是惟一一款能夠在計算技術數十年的發(fā)展演變之后仍能保持活力的語言方案,”盡管其間也經歷過起起落落,Arun Gupta指出他曾經于1999年在Sun公司參與過Java語言的開發(fā)工作,而如今他的主要關注點是在紅帽公司以開發(fā)者倡導事務主管的身份打理Java中間件。“全部主要產業(yè)都會在某種程度上將Java運行在其關鍵性任務部署方案當中。除非突然出現飛躍式的技術革新,否則Java在未來仍將表現出旺盛的生命力。”
最近幾年來Java的領導工作被交到了甲骨文公司手上后者于2010年1月收購了Sun公司。早在2006年,Java就已經轉化為一套開源平臺,但并不是每個人都對Sun的決定感到滿意。作為其中一員,IBM公司希望Java能夠被Apache軟件基金會所接管。
多年以來,Java不斷經受著眾多編程領域中后起之秀們的沖擊,其中包括JavaScript、PHP、Ruby、F#、Google Go甚至是運行在JVM環(huán)境之上的各類語言例如Groovy與Scala。事實上正如很多人所言,JVM已經成為Java保持活力的關鍵所在。
“Java語言的最大成功之處在于造就了這套平臺,也就是JVM本身,”Gupta指出。“這套平臺非常穩(wěn)定而且能夠支持種類繁多的主流語言類型,包括Java、Groovy、Ruby、Scala、Clojure以及Python等等。這些語言全部可以被編譯為字節(jié)碼,進而運行在JVM之上。”
不過相較于固守輝煌的過往,Java自身也一直在不斷進化。去年發(fā)布的Java 8就引入了函數編程支持能力,而將于2016年推出的Java 9則著眼于模塊化機制。
“模塊化機制與Java 9將成為Java技術發(fā)展歷程中的一項大事件,同時也滿足了整個生態(tài)系統多年以來的期待與需要,”Eclipse基金會執(zhí)行董事Mike Milinkovich指出該基金會最初由IBM所建立,旨在提供Java相關工具。“除此之外,我認為Java正成為云基礎設施以及物聯網領域當中愈發(fā)重要的一套平臺。”
站在Java肩膀上的那些技術成果
多年以來,許多關鍵性技術以及業(yè)務都以Java為實際基礎。如果著眼于最近一段時間,那么最值得一提的肯定要數谷歌Android移動平臺。這套平臺通過Dalvik虛擬機對Java加以運用,甚至導致甲骨文方面以侵犯版權及專利為由將谷歌告上了法庭。Android的出現為擁有Java技能儲備的開發(fā)人員指明了一條道路,幫助他們在移動應用程序開發(fā)這一新興領域找到了新的突破口。
“Java對于Eclipse及其社區(qū)而言非常重要。在我們的全部270多個項目當中,絕大多數都利用Java代碼來實現,其中包括我們的大部分工具、運行時環(huán)境以及物聯網技術方案,”Eclipse基金會的Milinkovich解釋道。
其它立足于Java根基之上的技術還包括來自BEA Systems以及JBoss的應用程序服務器方案(二者分別被甲骨文與紅帽公司收購),外加JetBrains IntelliJ Idea IDE。
“IntelliJ IDE,或者更具體地講,Renamer的誕生源自其締造者們在編碼過程中的實際需求,而當時他們所使用的恰好是Java,”JetBrains開發(fā)人員倡導事務負責人Hadi Hariri指出。“在這方面,我們幾乎可以將Java作為IntelliJ IDE的誕生基石。”
開源Spring框架的成功同樣乘上了Java的東風,并開始與Java企業(yè)版展開激烈競爭。
Java經歷的考驗與磨難
Java在自身的發(fā)展道路上也曾經遭遇種種波折與坎坷。最近幾年來,與Java相關的安全漏洞可說是層出不窮,這直接導致技術業(yè)界發(fā)出對Java進行隔離的呼聲。與此同時,客戶端Java也已經開始成為一項過時的技術方案,甚至被視為黑客們的最佳拍檔。不過甲骨文公司已經斥資對相關工作進行支持,旨在控制與Java相關的安全問題。有了技術巨頭的配合,我們可以相信Java的安全態(tài)勢將在未來實現持續(xù)改觀。
不過對于甲骨文過去五年對Java的統治,也有一部分用戶表示怨念很深,這主要是因為該公司在處理Java相關問題時出現了一系列失誤、技術發(fā)展的停滯與Java安裝程序內出現的“垃圾軟件”更是遭到使用者們的一致惡評。作為Java的公認締造者,James Gosling在Sun接受收購后不久就離開了甲骨文公司,但他仍從技術層面對甲骨文所采取的Java發(fā)展策略表示贊賞。
蘋果在其廣受好評的iOS設備上絲毫沒有引入Java元素則讓包括開發(fā)人員在內的Java陣營遭遇到又一大挫折。不過歸功于Java社區(qū)的聰明才智,如今已經有不少第三方工具供應商開始為Java開發(fā)提供運用原有技能儲備為iPad及iPhone平臺開發(fā)應用程序的辦法。
有些人甚至把Java的整體定位視為移動技術領域的一塊盲區(qū)盡管事實上Android系統一直在利用Java技術,而Java微型版近年來也一直致力于將Java引入嵌入式設備當中。
“Java錯過了這場移動變革的時代發(fā)展良機,而且這塊市場目前由iOS/Swift以及Android/Dalvik所主導,”Gupta表示。“Java確實能夠通過各種方式作用于此類設備,但除非其能夠以OEM方式直接登陸這些平臺、否則廣泛普及恐怕只會是癡人說夢。”
不過Java最近幾年中所面臨的最大障礙可能還是要數JavaScript的迅速崛起。
JavaScript締造者Brendan Eich最近就JavaScript取代Java既定作用的可能性提出了自己的觀點,其替代范疇包括:各種各樣的虛擬機系統、廣泛部署的嵌入式方案、實現編碼目標以及支持多種語言等。
JavaScript甚至開始對Java的主要起效陣地服務器發(fā)起沖擊,而這要歸功于Node.js的出現。PayPal與Netflix兩家公司在面對這一關鍵性的歷史抉擇時,都已經選擇了利用Node.js來取代Java。
偉大的Java仍將長久存在
盡管一路上有坎坷亦有顛簸,但支持者們認為Java在未來很長一段時間內仍將繼續(xù)保持自身在計算核心層面的重要地位。
“Java仍將繼續(xù)在基礎設施當中扮演核心組成部分(在未來五到十年內),同時遍布企業(yè)用于運行自身業(yè)務的記錄系統,不過我認為我們在客戶端上使用Java的機率將逐步降低,特別是考慮到微軟以及谷歌都已經開始對自身瀏覽器作出調整、外加移動設備數量的激增,”Forrester公司的Hammond指出。
不過Java接下來所要面臨的最大挑戰(zhàn)很可能源自微服務以及向外擴展架構的快速崛起。
“我將高度關注Java 9的相關消息,了解核心Java庫現代化調整進程的實際效果究竟如何,”Hammond表示。“我們發(fā)現已經有很多開發(fā)人員在利用Node等規(guī)模更小的運行時環(huán)境支持自己的新型微服務架構,同時他們亦在向無狀態(tài)向外擴展型架構遷移。Java從這個角度講,.Net也面對著同樣的問題需要證明自身在這一新領域當中能夠帶來良好的表現。”
盡管Java已經相當成熟,但lambda等新特性以及對其它多種語言的支持能力仍在JVM之上不斷出現,旨在幫助該平臺始終保持與時俱進的能力,Hammond補充道。
“從技術的角度看,我認為Java將成為正確的發(fā)展方向,而且在我看來像Groovy這樣的項目能夠幫助Java技術團隊作出出色的決策,例如添加lambda表達式,”Groovy項目負責人Guillaume Laforge表示。順帶一提,Groovy早在2003年就已經擁有了lambda表達式機制。
Eclipse基金會的Milinkovich認為Java在很長一段時間內仍將保持旺盛的生命力,他指出這一周期很可能會長達五十年。
“Java以及Java平臺定義了整整一代企業(yè)級軟件開發(fā)模式,而這些系統將在很長一段歷史時期內繼續(xù)存在,”他表示。“數百萬開發(fā)人員利用Java作為自己的首選開發(fā)語言,而這些技能未來多年將一直伴我們同行。”
Milinkovich同時補充稱,Java對開源社區(qū)有著很大的虧欠。
“Java的成功源自大量來自開源社區(qū)的創(chuàng)新及支持貢獻,特別是來自Apache與Eclipse社區(qū)的協助。擁有專業(yè)級品質、但卻完全免費的Eclipse IDE已經在全球范圍內成為Java的主要配伍方案,”Milinkovich指出。“Apache的貢獻則包括Tomcat、Commons、OpenJPA以及其它保證Java在企業(yè)領域取得成功的重要項目。”
Gupta對此表示贊同,并指出Java的輝煌在很大程度上得益于圍繞其發(fā)展而成的強大技術社區(qū)。
這可能將成為未來決定Java具體壽命的關鍵性要素:即社區(qū)自身的發(fā)展態(tài)勢。
-
無相關信息