1991 年,James Gosling 帶領(lǐng)著名為“Green Team”的團(tuán)隊(duì)著手研發(fā)一種新的語言以及專為下一代數(shù)字設(shè)備和計(jì)算機(jī)使用的網(wǎng)絡(luò)系統(tǒng)。歷時 4 年辛勤工作后,該項(xiàng)目終修成正果并取名為 Java。
Java 有著類似于C的語法并有“一次編譯,隨處運(yùn)行”的靈便性。透過虛擬機(jī)機(jī)制,可以使代碼在底層平臺進(jìn)行運(yùn)行時編譯。回首 Java 過去的 20 年,首先是經(jīng)歷了微機(jī)時代的興與衰,然后進(jìn)入服務(wù)器領(lǐng)域及智能電話領(lǐng)域,繼而在 DHS(美國土安全部)的“不安全”定義下艱難前行,后投入甲骨文(Oracle)懷抱現(xiàn)正蓄勢迸發(fā)第二春。難道還有別的語言有如此跌宕起伏的情節(jié)嗎?
Java 推出后,Sun 發(fā)現(xiàn)市場上存在著一個問題—計(jì)算機(jī)領(lǐng)域與非計(jì)算機(jī)領(lǐng)域彼此是隔斷的。Sun 認(rèn)為這是一個機(jī)遇,如果能把兩者連接起來將會帶來一場計(jì)算機(jī)革命。“統(tǒng)一的主題是網(wǎng)絡(luò)。”Gosling 說,
“放眼當(dāng)時的市場,兩個領(lǐng)域的廠家各自為政,沒有形成統(tǒng)一的網(wǎng)絡(luò)。因此很多時候不得不重復(fù)大量的實(shí)驗(yàn),但這些其實(shí)早在 30 年前的計(jì)算機(jī)科學(xué)中已得到解決。”
問題的所在是電子消費(fèi)品制造者沒有考慮使用網(wǎng)絡(luò),例如跨平臺的公共 APIs 或者代碼復(fù)用,
“你幾乎找不到任何的軟件復(fù)用。所有軟件都只能不斷地被重復(fù)創(chuàng)建。我們提出的模塊概念終將改變這一局面。”
▋成功非坦途
Java 面世的頭五年,成為當(dāng)之無愧的編譯器高性能代言人。而過后五年,所有人都把重心轉(zhuǎn)向了企業(yè)應(yīng)用。Gosling 說,
“回首 Java EE 統(tǒng)治世界的場景至今仍歷歷在目。我們的失誤是把全部精力都集中于此,所有資源都被優(yōu)先調(diào)配到 EE,導(dǎo)致無法投入更多的精力去開拓桌面的世界。”
Oracle Java 平臺開發(fā)副總裁 Saab 是這樣說的,
“在 90 年代,大多數(shù)開發(fā)者都把精力投入到桌面應(yīng)用的編寫之上。到了 2000 年,Pet.com 的成功吸引了大批的跟風(fēng)者。業(yè)界又把焦點(diǎn)從桌面轉(zhuǎn)移到了 HTML 應(yīng)用。隨著智能電話和平板的到來,基于觸摸屏的移動應(yīng)用又站在了風(fēng)口。所以對于下一個流行趨勢是很難把握的,這涉及到天時、地利、人和。”
Java 2 Micro Edition (J2ME)在 1998 年引入并把 Java 劃分了三個平臺:Java 2 Standard Edition(J2SE)、J2ME 以及 Java 2 Enterprise Edition(J2EE)。ME 的意思是小型設(shè)備和嵌入系統(tǒng)。ME 在翻蓋手機(jī)上得到推廣,成為當(dāng)時的標(biāo)配。Gosling 說,
“ME 已經(jīng)做得足夠好了,在當(dāng)時是強(qiáng)大的智能電話開發(fā)平臺。不過現(xiàn)在漸漸被遺忘,因?yàn)?Android 太耀眼了。”
作為一個獨(dú)立平臺,Java ME 被邊緣化了。Oracle 開發(fā)部高級副總裁 Cameron Purdy 說在下一個版本 Java 9 中會把所有平臺統(tǒng)一起來,
“對比 SE、ME 被獨(dú)立出來但發(fā)展緩慢。Java 9 的模塊化特性會使得 Java ME 的可復(fù)用性得到增強(qiáng),這將是反擊 Android 和 iOS 的有力武器。”
▋陷入低谷
隨著 Sun 在近 10 年的低迷,Java 也不能幸免地經(jīng)歷著蹉跎歲月。IBM 報價 65 億美元,Sun 沒答應(yīng),74 億美元,Oracle 得到了 Sun。
在 Oracle 管理下,頭幾年 Java 表現(xiàn)良好,以 0 重大失誤成為安全的代名詞。不過在 2013 年 1 月情況開始變壞,美國土安全部(DHS)建議人們盡量不要使用 Java。作為面向企業(yè)的軟件公司,打補(bǔ)丁修復(fù) Bug 的速度是 Oracle 的短板,根本無法與面向大眾消費(fèi)者的微軟或 Adobe 相比。別人是以小時或天來計(jì),而 Oracle 是以月為基本單位。
Purdy 認(rèn)為 Oracle 已經(jīng)盡了大的努力去修補(bǔ)并清楚這個短板的重要性。問題的關(guān)鍵是如何打造一支在失去 Gosling 等干將后仍能獨(dú)當(dāng)一面的團(tuán)隊(duì)。他說,
“我們聽到了不少質(zhì)疑之聲,但其實(shí)我們一直都在不斷加入投入的力度并努力尋求解決的方案。”
▋浴火重生
DHS 的公開聲明不啻是壓垮 Java 的后一根稻草,很多人都預(yù)言 Java 將風(fēng)光不再。然而事情慢慢得到轉(zhuǎn)機(jī),不少 Java 粉絲開始出來捍衛(wèi) Java 的名聲。Dr. Dobb’s Journal 編輯 Andrew Binstock 曾發(fā)表一篇社論,其題目是:《即使面臨死亡,Java 看上去還是相當(dāng)健康的》。
對于 Oracle 的接管,Gosling 表達(dá)了自己的喜悅之情,
“得知這個消息后,我感到非常驚喜。Oracle 是個非常的監(jiān)護(hù)人并大大超出了我的期望。一開始我還擔(dān)心它會不會成為第二個 Solaris,現(xiàn)在看來我是多慮了。”
接管 Java 的頭五年,Oracle 不得不重新打造一支 Java 團(tuán)隊(duì)。
“我們花了大量時間來審視整個過程以確定如何進(jìn)行 Bug 修復(fù),從輸入到發(fā)布機(jī)制,我們回顧了大量的代碼。后列出了一個長長的錯誤修復(fù)表。”
Purdy 回憶說。
安全曾讓 Java 蒙羞,安全也讓 Java 重獲新生。在 2014 Pwn20wn 黑客大會上,Java 成為沒有被攻破的平臺。而在 2015 的會議中,Pwn20wn 甚至沒有把 Java 列在攻擊名單上。
▋現(xiàn)在和未來
Java 9 將是自被 Oracle 收購后發(fā)布的首個重大版本。Java 9 的主要目標(biāo)是大限度實(shí)現(xiàn)模塊化以幫助人們實(shí)現(xiàn)積木式的應(yīng)用編寫。
“我們的目的是幫助人們從 JAR 的束縛中解脫出來。”
Saab 說,
“你將很輕松地處理在過去相當(dāng)復(fù)雜的事情,例如打包。你可以只用到需要的模塊,而把其它忽略。”
Purdy 補(bǔ)充道,
“這開創(chuàng)了 Java 平臺的先河。該特性將貫穿整個 Java 庫,并以單依賴圖的方式重新整理依賴。”
談及 Java 的未來,Eclipse 基金會執(zhí)行董事 Mike Milinkovich 的看法是,
“我認(rèn)為 Java 的未來在于物聯(lián)網(wǎng)。我十分樂意看到 Oracle 及其合作伙伴能把精力放在完全點(diǎn)對點(diǎn)的 Java 存儲方案上,透過網(wǎng)關(guān)實(shí)現(xiàn)設(shè)備到企業(yè)后臺的連接。如果成功將能使 Java 在往后 20 年發(fā)展得更好走得更遠(yuǎn)。雖然這還有一段路要走,但我相信 Java 能夠做到。”
Gosling 的看法是,
“VM 是它本身的生態(tài),所有部分彼此相通。IT 世界的未來是要實(shí)現(xiàn)互聯(lián)互通。把邊緣和核心有效地統(tǒng)一起來,可以省卻內(nèi)外分開管理的麻煩,從而得到更加強(qiáng)大的平臺。”
▋遍地開花
雖然很多人都曾預(yù)言 Java 將一蹶不振,但是現(xiàn)今在不少的重要項(xiàng)目中,Java 仍扮演著極其重要的角色。
Purdy 指出,沒有 Java,甚至不會有大數(shù)據(jù)的大發(fā)展,
“Hadoop 本身就是用 Java 編寫的。當(dāng)你需要在運(yùn)行 MapReduce 的服務(wù)器集群上發(fā)布新功能時,你需要進(jìn)行動態(tài)的部署,而這正是 Java 所擅長的。”
另一 Java 受惠者是 Twitter。一開始 Twitter 是用 Ruby on Rails 編寫的,但是隨著用戶數(shù)的增長 RoR 逐漸顯得力不從心。Fail Whale(失敗鯨)的宕機(jī)畫面預(yù)示著瓶頸問題亟需解決。在 2012 年,Twitter 從 RoR 轉(zhuǎn)向了 Java 和 Scala,而失敗鯨從此滅絕了
本站文章版權(quán)歸原作者及原出處所有 。內(nèi)容為作者個人觀點(diǎn), 并不代表本站贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé),本站只提供參考并不構(gòu)成任何投資及應(yīng)用建議。本站是一個個人學(xué)習(xí)交流的平臺,網(wǎng)站上部分文章為轉(zhuǎn)載,并不用于任何商業(yè)目的,我們已經(jīng)盡可能的對作者和來源進(jìn)行了通告,但是能力有限或疏忽,造成漏登,請及時聯(lián)系我們,我們將根據(jù)著作權(quán)人的要求,立即更正或者刪除有關(guān)內(nèi)容。本站擁有對此聲明的最終解釋權(quán)。