技術趣味史-Java語言的身世

Wizey發表於2018-11-23

Java

時間回到 1990 年 12 月,一個叫做 帕特里克·諾頓 的大佬被他公司 Sun 開發的 C++ 和 C語言編譯器搞得頭大,主要是因為當時 C語言 對一些硬體和系統的支援性並不好,導致一些 API (函式) 特別難用。在這之後,他又和公司另外幾位大佬開展一個名為 Green 的計劃(之前被稱為 Stealth 計劃),其中一位大佬就是被稱為 “Java 之父” 的 詹姆斯·高斯林。幾個大佬高瞻遠矚,覺得未來是智慧電器時代,所以決定開展用於電器領域的技術研究。

經過一番研究,大佬們發現 C++ 太複雜也不利於在不同的硬體上移植,並且由於 C++ 缺少垃圾回收,就是大佬他們用 C++ 寫程式都容易出錯(小編似乎找到了學不好 C++ 的理由了~),這樣下去可不行。最初他們是想在 C++ 基礎上開發一種新的物件導向的環境,**高斯林 **嘗試修改和擴充套件 C++ 的功能,如能不能去掉難懂的指標,但是後來還是放棄了。不破不立,**高斯林 **決定創造一門全新的語言,並以辦公室外的橡樹(英文是 “Oak”)命名(小編不得不感嘆大佬造輪子的能力~)。

經過大佬們 3 年(此時是 1993 年)沒日沒夜的開發,搞出來了 Green 作業系統、Oak 語言、相關的類庫和硬體(這下軟硬體都齊活了)。但遺憾的是,由於他們在和其他公司競爭電視行業的產品時都失敗了,Sun 公司叫停了 Green 計劃(好綠的計劃)。

但大佬們肯定是對失敗不甘心的(此時是1994 年),他們決定為 Oak 語言尋找新的出路,所以在幾位大佬幾天的激勵討(che)論(dan)之後(歷史上很多協議和方案其實都是大佬們扯淡之後制定出來的,而我們普通人扯淡啥都出不來,可能這就是大佬吧,嗯~),最後試著讓 Oak 語言搭上全球資訊網的快車,將技術應用到瀏覽器中,為此 諾頓 大佬就擼了個瀏覽器(羨慕大佬真是想擼啥就擼啥,不像小編我,只會擼**)。後來他們準備在自己公司召開的 SunWorld 大會(此時是 1995 年)上向大家公佈 Oak 語言和配套的瀏覽器,但是卻發現 Oak 這個名字早就被一家顯示卡公司註冊了,所以為了避免法律糾紛,就將語言改名為了 Java。

至於為啥改名為 Java,也存在爭議,一種說法是大佬們程式設計時愛喝咖啡(也就喝咖啡這點我和大佬們一個水平,txtx),而 Java(爪哇) 島上產的咖啡豆磨成咖啡特別好喝,所以 Java 語言的圖示也是一杯熱騰騰的咖啡。還有一種說法是 Java 原始檔在編譯後生成的 class(位元組碼)檔案,前四個位元組用十六進位制表示是 “CA FE BA BE”,拼成單詞就是咖啡寶貝的意思(看來這門語言和咖啡還真有緣),並用幾位大佬名字的首字母縮寫命名這門語言,最終得出了 **Java **這個名字(詹姆斯·高斯林,名字首字母是 J,在這門語言的誕生中起到了關鍵作用,被我們叫做 Java 之父)。下圖為 Java 語言的吉祥物 Duke。

Duke

但是由於當時還是 網景公司(Netscape,主要貢獻有 JavaScript 語言,一些 Web 技術(如 Cookie),瀏覽器引擎 Gecko)和 微軟公司(M$ 公司(這裡字母沒打錯),這個就不多介紹了) 的瀏覽器使用人數最多,所以大佬們就推出了能夠支援其他瀏覽器的 Java 外掛,這樣其他瀏覽器也可以愉快的跑 Java 寫的程式啦!(當時瀏覽器也就能顯示 HTML,而 Java 程式能夠執行在瀏覽器中做出一些動畫著實讓當時的人驚訝),這些Java程式被叫做 Applet。

直到 1995 年 5 月 23 日,Java 語言才算是正式誕生。為了滿足你們喜歡看人家爆照的心理,我這裡就給你們發一張 Java 之父 詹姆斯·高斯林的照片,這下你們該滿足了吧,嘿嘿~。

(圖為 2005 年夏天高斯林在 JavaOne 大會,老爺子現在還健在呢)

Java 之父-詹姆斯·高斯林

在這之後,由於 Java 語言的跨平臺性和垃圾回收等優點,Java 很快便流行了起來。但將 Java 用在瀏覽器上做些小程式,這可滿足不了 Java 大佬們的野心。所以在 1999 年,經過大佬們的一波討論和開發,Sun 公司釋出了三個版本的 Java,JavaSE 版本進軍桌面軟體領域,JavaEE 版本進軍伺服器開發領域,JavaME 版本進軍微型裝置開發領域(如手機)。當時 Java 在伺服器端和手持裝置上混的風生水起,很多網站使用 JSP 和其他 Java 技術開發。同時期也正是網際網路發展的第一波,Java 自然也得到了廣泛的傳播。

之後 Sun 公司又不斷髮布了新版本的 Java(直到 Java6)。2009 年 Sun 公司被 Oracle 收購,在這十幾年間,由於 Java 的開源和社群,Java 被很多公司使用,如微軟、Oracle、IBM等。但微軟偷偷修改 Java 程式碼,想在自己系統中捆綁 Java 平臺賺錢,不過這樣會使得 Java 變得不可移植。微軟的行為自然是眾多 Java 開發者不能容忍的,後來微軟退出了 Java 領域,開發了自家的 C# 語言(一些說法是 C# 是在 Java 語言的基礎上設計出來的)來替代 Java。IBM 開發了 Java 的 IDE Eclipse,因為軟體開源免費,很快就俘獲一批 Java 開發者的心,直到現在也被廣泛用在 Java 開發中。Eclipse 翻譯過來有 **日食,吞噬太陽(sun) **的意思,但其實 IBM 當時想吞噬的公司並不是 Sun,而是微軟。但 Eclipse 這個命名被 Sun 公司認為是 IBM 蓄謀已久,想要消滅他們。當年想收購 Sun 公司的不止 Oracle 一家,這個命名的小插曲也導致最後 Sun 不接受 IBM 的收購,而給了 Oracle 公司(小編不禁感嘆,要想過得好,還是要名字起得好啊!)。如果當時 Google 收購了 Sun,估計今天的 Google 更牛逼,也不用和 Oracle 公司因為 Android 撕逼了。

至於 Java 後面的歷史就更精彩了,但由於篇幅,今天就不再繼續介紹了。如果你對 Java 歷史感興趣的話,可以繼續關注《技術趣味史》版塊,我將在下週五繼續為你帶來 Java 相關的趣味史哦。

偷偷說一下:如果覺得寫的還不錯,你的贊一點,小編就更開心了啦。

本文轉自我的微信公眾號《程式設計心路》。

相關文章