時光一晃又是一年,儘管近年來 Java 一直被唱衰,但這絲毫也不妨礙它成為 2021 年十大技術熱詞之一。Java 誕生至今已經 26 年了,相較於部分起步較慢的程式語言,Java 自問世起,其「一次編寫,隨處執行」的特點便很快受到了 IBM、蘋果、甲骨文等科技巨頭的歡迎。
在 Java 被「炒作」的巔峰期,它甚至被譽為「一項會極大影響微軟未來的技術」——利用 Java,可建立能在所有作業系統上執行的桌面應用程式,即開發人員不必再為了生存只能專注編寫 Windows 程式。
在此形勢下,1996 年 9 月的某一天,微軟瀏覽器部門主管向時任微軟 CEO 的比爾·蓋茲詳細解釋了 Java 給微軟帶來的威脅,並懇切提醒道:「Java 絕不僅僅是一種語言,它是 COM 的替代者(COM 即Componet Object Model,在 Windows 中大量使用的程式設計模型)!」
從此前公佈的資料來看,比爾·蓋茲雖然第二天就看似冷靜地回覆稱應先了解 Java 對微軟作業系統的影響何在,但本週四 @TechEmails 在推特上公佈了當時的更多細節:1996 年 9 月 30 日晚上 9:36,比爾·蓋茲給當時身為微軟 CTO 的 Nathan Myhrvold 發了一個郵件,主題為「Java 執行時成為作業系統」,並表示「我真的為此失眠了」。(注:Nathan Myhrvold 曾在微軟工作 14 年,於 2000 年辭職,後與 Edward Jung 共同創辦了美國知識風險公司 Intellectual Ventures,擔任 CEO 一職。)
從郵件中可以看出,不論是之前瀏覽器部門主管的懇切提醒,還是當時 Java 盛行下開發者的熱情,都令比爾·蓋茲感到焦慮:
「我很擔心 Java/Javabean 和其執行時到底會發展成怎樣、會讓多少人興奮。我真的在這個問題上失眠了,因為隨著轉向更多基於伺服器的應用程式,似乎會讓人們易於使用我們競爭對手的作業系統。
我很想聽聽你對此的看法。你認為我們有什麼防禦措施來應對這種情況?我實在沒有想出什麼能解決這種情況的方法,這削弱了我的創造力。」
第二天,即 10 月 1 號,Nathan Myhrvold 就回復了一封超長郵件,開頭明確表達了他的看法:「我承認這是一個進退兩難的問題,但它還沒有嚴重到會讓你失眠的程度。」當時 Java 尚在起步階段,而 Nathan Myhrvold 認為,從「商業」角度看來,人們對其有些「過度炒作」了。
誠然,Java 的出現為人們提供了許多新鮮感:可以用它做出很棒的網頁、程式設計師有新東西可以學、推動相關書籍的售賣、給軟體工具公司提供一種釋出新開發工具的方式…在這之中,肯定會有人獲得成功,從而吸引越來越多人加入 Java 生態,跨平臺的訴求會愈發高漲,最終對微軟造成極大的壓力與困境——但 Nathan Myhrvold 指出:「新技術的確會殺死舊業務,可這不會發生得那麼快,在此之前我們還有很多機會來挽回局面。」
因此,Nathan Myhrvold 在郵件中向比爾·蓋茲寬慰道:「在這場戰鬥中,作為被挑戰方自然會有不舒服的感覺,但我們絕不能驚慌,因為焦慮情緒對實際業務和收入問題無甚裨益,我們不能讓感性問題過多地影響我們的思考。」
不過 Nathan Myhrvold 補充道:「這並不是說 Java 不重要,相反 Java 是非常重要的,只是我認為你把重點錯放在了還未成型的威脅上。我們正面臨失去一個新市場的危險,而這個市場將快速增長。」所以與其將時間浪費在無謂的情緒上,立刻做出改變並行動起來是最好的解決方法。
結合當時局勢及微軟自身情況,Nathan Myhrvold 列出了三點必做事項:
1、用微軟自己的方式來顯著改善網頁,包括繼續「擁抱和擴充套件」以及創造一些激進的新方法來改進網頁或構建 Web 應用程式。
其中,「擁抱和擴充套件」指的是新 Java 工具((如 J++,微軟實現 Java 的開發套件和執行時環境的統稱)層面,但 Nathan Myhrvold 認為將雞蛋完全放在這一點也並非明智之舉,這可能會引導微軟放棄其真正的優勢,因此在這過程中,微軟需想出其他新方法來提升自我。
2、開拓其他途徑來參與新市場,想出一些能振興網際網路的創意。
這個「創意」並不一定需要什麼複雜技術,更多是依靠創造力尋求新機遇的一種方式。在郵件中,Nathan Myhrvold 舉了兩個例子,分別是「虛擬世界」和「做伺服器應用或網路事務的新方法」——在此不得不感慨 Nathan Myhrvold 極具前瞻性的眼光:1996 年認為會振興網際網路的「虛擬世界」正預言了當前「元宇宙」、「AR/VR」爆火的趨勢。
3、繼續投資微軟的核心業務資產,尤其是 Windows 執行時(WinRT)。
Nathan Myhrvold 對這一點的解釋為:假設 Java 真的成功且完全跨平臺,那人們為什麼要選擇 Windows 而不是其他系統呢?這必將取決於系統的其他方面,即非 Web 維度對使用者選擇系統也十分重要,這也是微軟的優勢所在,需加大投入保持領先地位,不要因為 Java 可能帶來的衝擊就自亂陣腳。
在這點上,Nathan Myhrvold 同樣給出了一些具體措施:
必須成為多媒體領域的領導者。如比 SGI 和 Mac 更好的圖形/視訊/音訊最佳創作平臺、比 Ultra64 和 Playstation 更好的最佳遊戲平臺等。
進一步保證產品易用性。例如須確保 PC 即時啟動、具有自我設定、自我診斷等功能。這注定會帶來許多額外的工作,但同時微軟也會收穫意外的獎勵。
利用 Web 給舊應用提供新功能。如「我的工作空間」這一概念,可以完全抽象網路上的儲存,這對使用者來說將是一個巨大的轉變——因為儲存抽象是當時 PC 中最難用的東西之一。Nathan Myhrvold 指出:「如果我們基於 STORAGE(即檔案系統 API)執行此操作,則可以縮短向基於其他 API 或協定的分發的長期遷移過程。」
在郵件最後,提出以上長篇建議的 Nathan Myhrvold 調侃道:「我也不知道這樣是讓你少擔心了還是更擔心了。」但他始終認為,即使 Java 盛行可能會給微軟帶來嚴重影響,但「我們遠比想象中有更多的選擇,且有實力創造一些任何人都難以匹敵的終端使用者價值」。
此後,微軟與 Java 開發方 Sun 公司可謂是「糾纏多年」:一會 Sun 公司以「歧視使用 Java 軟體」為由起訴微軟,一會微軟又在 Windows XP 中故意不安裝 Java 軟體。但到最後,微軟還是逃不過「真香定理」:2018 年微軟旗下 IDE Visual Studio 開始支援 Java 開發;2019 年微軟宣佈加入 OpenJDK,擁抱 Java 技術。
在 @TechEmails 公佈以上比爾·蓋茲的提問及 Nathan Myhrvold 的回覆截圖後,除了對當年微軟應對 Java 的細節有更深刻了解外,許多網友也對 Nathan Myhrvold 的技術洞察力感到欽佩:
「哇,所以 Nathan 在1996 年就預測了 metaverse(「虛擬世界」)和雲(網路上的「儲存抽象」)。」
「這是一次很棒的交流。你可以看到蓋茲對獲勝的‘不健康’看法,而 Nathan 則旨在將蓋茲重定向到產品價值層面,同時他對技術的發展也很有洞察力。」
也有人感慨非常「理解」比爾·蓋茲的感受:「放心,人們至今還在為 Java 失眠呢。」
參考連結:https://twitter.com/techemails/status/1478785899009875968?s=21