剛過完自己 69 歲生日的兩個月後,Java 之父 James Gosling(詹姆斯·高斯林)在領英上官宣了自己退休的消息。他表示,“我終于退休了。在做了這麼多年軟體工程師之後,是時候讓我好好玩玩了。盡管受到了 COVID-19 和工業環境的影響,但在亞馬遜的過去 7 年還是非常美好的。”
然而,從他的言辭中,我們不禁想起了 2019 年 10 月 Python 之父 Guido van Rossum 信誓旦旦的說要退休,結果僅時隔一年之後稱退休生活太無聊而加入了微軟團隊。如今高斯林在退休宣言的最後也留下一句,「我有一長串的副業要做,會很有趣的」,他能否真正做到「退休成功」,也給大家留下了懸念。
來源:維基百科
學生期間開發出編輯器、視窗系統
畢竟高斯林一直以來,似乎就沒閑過。
1955 年 5 月 19 日出生于加拿大的高斯林,從小就喜歡技術,愛搗鼓一些電子産品。
12 歲時,高斯林已能設計電子遊戲機,幫鄰居修理收割機。
14 歲時,中學組織到附近大學參觀,也就是在這個時候,高斯林首次接觸到了程式設計,并萌發了興趣。
據悉,一年後,他曾參觀的卡爾加裡大學招他當了一名臨時程式設計員(兼職),他也成功編寫了一些 ISIS II 衛星遙測的地面分析的軟體。在雙向成就之下,高斯林也進入卡爾加裡大學并在 1977 年獲得了計算機科學學士學位。
1983 年,高斯林獲得了美國卡内基梅隆大學計算機科學博士學位,博士論文的題目是:“The Algebraic Manipulation of Constraints”。攻讀博士學位期間,高斯林還開發了一款 Gosling Emacs 編輯器,這也是第一個在 Unix 上運作的類似 Emacs 的編輯器,它是用 C 語言編寫的,并使用 Mocklisp 作為擴充語言,這是一種具有 Lisp 類似文法的語言。
除此之外,在卡内基梅隆大學(CMU)期間,他的一項重要工作是将 UCSD Pascal p-code 從 PERQ 工作站移植到 DEC VAX 計算機系統上,為此他編寫了一個 VAX 仿真器。在後來參與 Sun Java 項目時,高斯林将這段早期工作作為靈感,提出了 Java 虛拟機的概念,這種虛拟機允許代碼一次編寫即可在多個平台上運作,使程式員始終針對同一個虛拟機編寫代碼。這當然都是後面發生的事情了。
回到當時,高斯林正式畢業之後,便加入 IBM 工作,設計并實作了 Andrew 視窗系統(第一個分布式視窗系統)和 Andrew 使用者界面工具包(第一個基于文檔的面向對象工具包)。此後,也為 IBM 的 PC/RT 産品提供咨詢。
不過,有消息稱,這一階段的高斯林所做的工作并未得到公司上司層的重視,對于這段經曆,高斯林也在他的領英上還有些遺憾地寫道,“要是 IBM 聽了我的意見就好了!!”
是以畢業在 IBM 幹了不到兩年後,高斯林跳槽到了雖說是初創公司,但已經成立十年的 Sun Microsystems,開啟了 Java 的輝煌時代。
研發出 Java 而一戰成名的 James Gosling
屬于 Java 的故事始于高斯林加入 Sun 公司的 5 個月後即 1991 年 6 月展開。
當時 Sun Microsystems 的一小隊工程師在高斯林的帶領下啟動了一個名為 Green(綠色計劃)的項目。這個項目的目标是開發一種用于消費電子裝置(如智能電視、機頂盒和手持控制器)的程式設計語言。這些裝置需要一種簡單、強大、可移植且安全的語言,因為它們的記憶體和處理能力有限,并且必須通過不同的網絡互相通信。
起初,該團隊将該語言命名為 Greentalk,檔案擴充名為 .gt。後來,他們将其重新命名為 Oak,以紀念高斯林辦公室外的一棵橡樹。Oak 受到了其他幾種語言的影響,例如 C、C++、Smalltalk、Lisp 和 Ada。
然而,Oak 并非為 Web 設計的,當時 Web 正成為一種分布式計算和資訊共享的新平台。
1993 年,Green 團隊向時代華納(Time Warner,當時最大的媒體與娛樂公司)展示了他們的技術,時代華納對将其用于互動電視很感興趣。然而,有線電視行業尚未準備好接受如此先進的系統,最終交易未能達成。于是,團隊将注意力轉向了 Web 時代,認為這為他們的語言提供了更有前景的機會。
團隊意識到,Oak 可以用于建立動态和互動的網頁,這些網頁可以在支援 JVM 的任何浏覽器上運作。他們建立了一個名為 WebRunner 的原型浏覽器,後來更名為 HotJava,它可以執行嵌入在 HTML 頁面中的 Oak applet(小程式)。由于已經有另一種語言名為 Oak,他們決定将 Oak 更名為 Java。
選擇 Java 這個名字是因為它簡單、獨特、有趣,而且讓人聯想到咖啡,團隊在長時間工作中消耗了大量的咖啡。
1994 年底,高斯林在矽谷召開的“技術、教育和設計大會”上首次展示了 Java 程式。
同年,Netscape Communications 同意在其流行的 Netscape Navigator 浏覽器中加入對 Java 的支援。這大大提升了 Java 的知名度和曝光率,因為數百萬的網絡使用者可以在他們的浏覽器上通路 Java applet。
當時,時代雜志将 Java 評為 1995 年十大最佳産品之一。
自 1995 年首次釋出以來,Java 經曆了許多變化和改進。Sun Microsystems 于 1998 年成立了 Java 社群程序 (JCP),以允許其他公司群組織參與 Java 的開發和标準化。JCP 負責監督 Java 規範的建立和修訂,這些規範定義了該語言的文法和語義以及其庫和 API(應用程式程式設計接口)。
如今 Java 曆經近 30 年的疊代,成為開發者最常用的程式設計語言之一。而高斯林作為 Java 程式設計語言的共同創始人之一,也被公認為“Java 之父”。
高斯林與 Oracle 的愛恨糾葛
不過,和 Java 的發展趨勢形成鮮明對比的是,其背後的 Sun 公司從 2007 年開始,因經營不善開始出現收入下滑,管理層甚至在 2008 年初以 10 億美元的高價收購了 MySQL,企圖通過一擲千金來力挽狂瀾,然而已無事于補。
2008 年底,IBM 被曝出開始與 Sun 接洽,讨論合并的可能性,但是随即二者之間的談判陷入僵局。
直至 2009 年 4 月 20 日,Sun 官宣已經和甲骨文(Oracle)達成最終協定,甲骨文将以每股 9.50 美元的現金收購 Sun。扣除 Sun 的現金和債務後,甲骨文的報價為 56 億美元。
Sun 的股東于 2009 年 7 月 16 日投票準許了該提議,盡管該交易仍需獲得監管部門的準許。包括歐盟和美國聯邦政府在内的多方勢力都擔心着 Sun 被收購會引起更大的風暴,就這樣拖延了将近一年,最終在 2010 年 1 月 27 日,甲骨文宣布完成收購,Sun 公司就此結束長達 27 年的公司曆史。
彼時在收購時,高斯林等核心工程師也随即加入了 Oracle。可是沒過多久,2010 年 4 月,高斯林毅然選擇從甲骨文公司離職。
之是以離職,高斯林曾在接受外媒 eWEEK 獨家采訪時透露過緣由。
他表示,“實際上,有很多原因促使我離開 Oracle。例如,我的薪資報價。在收到他們的報價後,我試圖計算一下我的 W-2 表上(一年度裡,你從雇主那裡獲得的收入、從你的薪水中預扣的稅款、提供的福利以及當年的其他資訊的重要稅務表格)的收入,結果發現備受打擊。他們複制了我在 Sun 的基本工資。”
高斯林透露,當時在 Sun 公司時,任何副總裁及以上的高管都會根據公司的業績獲得相當于加薪或獎金的待遇。“在業績平平的一年,你的收入還可以,但在業績好的一年,你的收入會非常高。”
“為了獲得在 Oracle 工作的特權,他們希望我大幅減薪”,高斯林說。
不過,這本身并不是一個決定性的因素。實際上,在這種限制下,高斯林還是繼續在這家資料庫巨頭工作。然而,根據高斯林的說法,另一件令人煩惱的事情是,Oracle 沒有進階工程師的概念,或者至少沒有一個相當于高斯林在 Sun 的職級,在 Sun 公司,他是研究員。“在我的工作報價中,他們把我的職級降得相當低,”高斯林曾在采訪中說道。
但即使這也不是他決定離開公司的最終因素。或許壓垮駱駝的最後一根稻草是 Oracle 試圖控制他的行為。畢竟在收購 Sun 公司之後,Oracle 擁有 Sun 和 Java,是以也擁有了其創始人及其知識産權,是以 Oracle 可以決定高斯林或其他人關于 Java 的言論。
“我在 Oracle 幾乎沒有任何決策權,”高斯林說。“Oracle 是一個極度微觀管理的公司。是以我和我的 Java 領域的同僚都沒有權決定任何事情。我們的所有決策權都消失了。”
最終讓高斯林決定徹底放棄這份工作的是,“我的工作似乎就是上台為 Oracle 的 Java 做公開展示。我完全不适合這種工作”。
就這樣,高斯林和營運 Java 的公司就此分道揚镳。
從 Google 到海洋機器人研究的創業公司再到 AWS,高斯林的程式設計人生
2011 年 3 月,高斯林加入了 Google,但同年 8 月就離開了。對于這段經曆,高斯林也沒有太多想談的,而且不像在其他公司任職時詳述自己主要負責哪些事情。針對這段經曆,他隻在領英上留下了三個詞,翻譯過來就是——“随時随地脾氣暴躁的人”。
此後,高斯林開啟了不一樣的探索之旅,他轉而加盟一家從事海洋機器人研究的創業公司 Liquid Robotics,擔任首席軟體架構師,這一幹就是 5 年。在此期間,他花費了大量時間去編寫自主海洋機器人控制軟體,甚至“波乘波浪滑翔機潛水,然後調試制導算法。”
2017 年 5 月,已經 62 歲的 Gosling 宣布加盟亞馬遜 AWS,繼續他的工程師生涯,主要從事物聯網項目,發起并推出 AWS Greengrass(https://aws.amazon.com/greengrass/)這款産品。
回顧過往經曆,2015 年,高斯林被授予 IEEE 約翰·馮·諾依曼獎章。2018 年,高斯林因為設計并創造了 Java 語言被收錄進計算機曆史博物館榮譽牆。
退休快樂,高斯林!
聽聞大佬隐退,不少受益于 Java 的工程師也為高斯林送上了祝福:
- 作為一名軟體工程師,我們為你感到驕傲。你對程式設計世界的貢獻将被銘記為程式設計的黃金時代。你的語言 Java 改變了程式設計世界。它可能是有史以來世界上使用最廣泛的語言。退休快樂
- 享受退休生活吧,詹姆斯!幾年前能親自見到你是我的榮幸。我第一次接觸 Java 是在 1997 年,當時我參加了伯克利計算機科學課程,建立了一個漢諾塔程式。誰知道今天世界仍在使用 Java。我仍然有那個 1.1 SDK。也許有一天我需要在我的 Sparc 20 上運作它。
- Java 對我的啟發和職業生涯的塑造産生了深遠的影響。Java 推出時,我在 Sun 工作真是太棒了 - 從來沒有一種程式設計語言/平台受到如此多的關注!
最後,恭喜 James Gosling 退休,也期待還會有驚喜的項目面世。
來源:
https://www.linkedin.com/feed/update/urn:li:activity:7213740307538956289/#
https://romanglushach.medium.com/the-evolution-of-java-a-historical-perspective-e15c3d7e5f85
https://www.eweek.com/development/java-creator-james-gosling-why-i-quit-oracle/
https://en.wikipedia.org/wiki/James_Gosling#cite_note-oral-4