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