屹立於技術之巔的 4 門語言創造者 — Anders Hejlsberg

aryu發表於2022-03-13
視訊版本推薦同步觀看,喜歡請一鍵三連~

https://www.bilibili.com/vide...

有史以來,程式語言幾千種,流行至今也不過數十;縱覽軟體業,語言開發者更是鳳毛麟角;貴為一門語言之父,已被神一般地膜拜; 而在眾神之中,他,跨越40年,在程式語言領域創造了 Turbo Pascal、Delphi、C#、和 TypeScript 四項成就;在微軟象徵著技術之巔的22位 Technical Fellow 中,他佔有一席之地。他,就是 Anders Hejlsberg。

江湖俠客般的 Borland —— Turbo Pascal 與 Delphi

早期的 Anders 已被視為 IT 界的超級英雄。1960年出生於哥本哈根,從進入丹麥科技大學(DTU)電氣工程專業學習開始到36歲,他就創造了 Turbo Pascal 和 Delphi 兩個熱門作品。而作為 Turbo Pascal 繼承者的 Delphi,至今仍是排名前二十的程式語言。

從大一開始,Anders 就為基於 Z80 CPU 的單板計算機套件 Nascom-2 寫藍標 Pascal 編譯器,用來取代 CPU 上的微軟 Basic 語言。據說,這個 Pascal 編譯器的開發,很大程度上受到了圖靈獎獲得者、瑞士電腦科學家 Niklaus Wirth 的《演算法與資料結構》一書中 “ Tiny Pascal” 編譯器的啟發。

不久之後,Anders 又為微型計算機作業系統 CP/M 和 DOS 重寫了 Pascal,並以 PolyPascal 這個品牌投放市場。 1983年,他又將 PolyPascal 特許給 Borland 公司,並被 Borland 整合進一個 IDE,重新命名為 Turbo Pascal。Turbo Pascal 使 Borland 聲名鵲起,並奠定了 Borland 成為全球知名軟體公司的基礎。

從把 PolyPascal 特許給 Borland 、到1996年離開,在 Borland 的13年間,作為首席工程師、 和 Turbo Pascal 及 Delphi 的創始人,Anders 一共交付了7個 Turbo Pascal 版本,和3個 Delphi 版本。Anders 對於 Borland 的影響力,至今仍存在於上世紀90年代老程式設計師們的記憶中,他們時常會懷念那個時期意氣風發江湖俠客般的 Borland,和充滿靈氣的開發工具。

Borland 的輝煌達至頂峰時,它也成為了微軟在程式語言編譯器和程式設計開發工具方面的競爭者。針對微軟在 PC 機上的強勢地位,90年代被稱為三大計算機公司之一的 Borland, 也曾與 Sun 和蓮花公司一起公開批評微軟。

不過,和微軟抗衡的 Borland,在1994年出現了經營虧損、要靠出售資產紓困,並有了大幅裁員的傳聞。

新的征程 —— 加入微軟

Borland 的日漸式微,給了微軟招賢納士的時機。從1995底開始,陸續有員工離開 Borland 加入微軟,這當中就有 1996年10月加入微軟的 Anders。

內外交困的 Borland,在1997年5月起訴了微軟,聲稱在30個月的時間裡、微軟許以數百萬美元的簽約獎金和其它獎勵,挖走了 Borland 34名關鍵員工。訴訟掀起強大的社會輿論,媒體紛紛以 “不公平競爭”、“人才流失”、和 “搶奪人才”等標題進行報導。社會上也繪聲繪色地流傳著微軟挖角的各種劇情。

那麼,微軟為何甘冒外界的負評,務必要簽下 Anders 這樣的專家?Anders 的加入,為微軟擺脫計算機巨頭 Sun 的鉗制又發揮了什麼作用呢?

上世紀90年代中,Sun 開發了劃時代的程式語言 Java。因具有 “write once run anywhere” 的能力,Java 變得十分流行。當時已經佔據了 90% 市場的網景瀏覽器,決定與 Sun 合作,直接在瀏覽器中執行 Java 小程式,甚至考慮直接將 Java 作為指令碼語言嵌入網頁。

作為瀏覽器的競爭者,微軟也不能落後。於是,微軟獲得了 Sun 對 Java 的授權,宣佈在 IE3 中也執行 Java 小程式。為了支援在 Windows 上執行 Java,微軟需要經驗豐富的開發者和專家,而 Borland 正是人才的大本營。

程式設計師們的寵兒 —— C

加入微軟的 Anders,首先主持開發了 Visual J++,對微軟的第一個跨平臺應用開發框架 .NET 的開發也發揮了重要的影響力。不過,當1997年10月,Sun 以 IE4 違反了 Java 授權條款為由起訴微軟後,正是 Anders ,幫助微軟擺脫了 Sun 的限制。當年參與挖角,時任微軟伺服器部門副總裁、後來擔任 Snowflake CEO 的 Bob Moglia 後來回憶說,“在世界上,只有極小部分人有開發語言和開發環境的能力。在這方面,Anders 就是金字塔尖的人。他用創造了 Turbo Pascal 和 Delphi 的才華,又創造了 C#。

至於 Anders 為何離開 Borland 加入微軟?流傳的故事都與物質無關。在 Borland 期間,Anders 已經從 Turbo Pascal 和 Delphi 的銷售中取得了可觀的許可權收入。在幾次採訪中,Anders 也都表示,加入微軟,是因為,我需要在13年後去嘗試不同的東西。

1998年底開始開發的 C# ,正是微軟力圖擺脫 Sun 控制的新舉措。在 C# 1.0 釋出後不幾天,Java 創始人、時任 Sun 公司副總裁的 James Gosling 就表示,“這些天,雖然微軟這個軟體大鱷竭盡全力用與 Java 相似的語言去遏制 Java 的影響力,但是,我不會為微軟失眠的。” 不過,Gosling 承認,他和公司的其他人,在剛聽說 C# 這個新語言時,還是感到了恐慌。

作為 C# 的總架構師,Anders 領導了 C# 的開發。C# 是基於 .NET框架、物件導向的高階程式語言。在繼承 C 和 C++ 強大功能的同時,C# 去掉了一些它們的複雜特性,使其成為 C 語言家族中的一種高效強大的程式語言。C# 以 .NET 框架類庫作為基礎,擁有類似 Visual Basic 的快速開發能力。

因為具有多功能性和易於閱讀的語法,C# 受到了數百萬人的青睞,成為 Web 和移動應用程式、遊戲開發、業務應用程式等領域的首選。釋出二十年後,作為廣泛使用的程式語言之一,C# 始終位居十大最流行語言之列。 2021年底,語言排行榜權威釋出機構 Tiobe 公司 CEO 表示,由於 C# 這個曾經的寵兒在2021年再獲新的追捧,C# 最有可能當選本年“年度語言”。

C# 的流行,很大程度上也在於它傾向於快速接受新特性。在程式語言演進的各個版本中,Anders 以自己的經驗和技術,為 C# 新增了許多開發體驗友好的 killer features,例如,在3.0 中釋出的語言整合查詢 LINQ;在 4.0 中釋出的可選引數; 在6.0 中釋出的只讀自動屬性、表示式體函式、 Null 條件運算子;和在 8.0 中釋出的 Switch 表示式、 Null 合併賦值等。正如現任 C# Lead Designer、 Mads Torgersen 所說,正是這種具有前瞻性的設計,讓 C# 在 20 年的時間裡積累了如此龐大的使用者群。

C# 建立的基礎和前瞻性,也使微軟打造了 Blazor 這個前沿專案。經過了3年時間的開發,2020年5月19日在年度技術大會 Build 上,微軟正式釋出了 “Build client web apps with C#” 的 Blazor。通過 WebAssembly 技術,藉助 Blazor,現在可以不用 JavaScript ,而使用 C# 構建互動式 Web UI。使 C# 成為了既可在伺服器上執行,也可在瀏覽器中執行的語言。

2001年,由於在 Turbo Pascal, Delphi, C# 和微軟 .NET 框架開發上的貢獻,Anders 獲得了著名的 Dr. Dobb 傑出程式設計獎。

2007年,Anders 和他的團隊獲得了微軟技術表彰獎。同年,他成為了微軟22位超級大腦、最頂端技術頭銜 Technical Fellow 之一。

52 歲披掛再上陣 —— Typescript

在 C# 1.0 釋出10年後的2012年,Anders 已經52歲。此時的技術界,對他仍充滿關注和期待。ZDNet 連發了兩篇文章,《微軟 C# 之父的下一個大招會是什麼?》、 《C# 之父能將我們從 Javascript 的束縛中解救出來嗎?》,文章中揣測的大招,就是即將於2012年10月首次釋出的 TypeScript 0.8 版本。

再次披掛上陣的 Anders,這次又將給開發者和微軟帶來什麼影響呢?

2010年底,Anders 開始開發 TypeScript 。當時,Web 世界正在發生一系列完美風暴:從 Windows 主導的清一色的桌面端,到多種多樣硬體和作業系統的出現,使跨平臺成為一種必要;與此同時,Google 的 V8 引擎,使 Javascript 獲得了10倍以上的改進。而隨著 HTML5 即將就位,在瀏覽器裡寫應用程式,不僅必要,更成為可能。

不過,就在開發者們準備大顯身手時,卻受到 JavaScript 一些缺陷的限制。由於 JavaScript 沒有類,沒有模組,特別是沒有型別系統,這限制了大型應用的開發。因為瀏覽器只支援 JavaScript, 而 JavaScript 又沒有替代品,因此,如何解決這個問題,成了當時的難題。

在 TypeScript 出現之前,微軟打算用一款名為 Script# 的工具來解決這一問題。當問到 Anders 時,他提出了不同的意見。他認為,不能通過使用另一種語言來體驗 JavaScript 的最佳實踐。而是應該基於 JavaScript 來解決它自身的缺陷。解決的關鍵,既要向 JavaScript 新增型別系統,又不能影響它所特有的靈活、簡單、和動態的特性。

TypeScript 是為開發大型應用而設計的,並且 TypeScript 可轉譯成 JavaScript。由於 TypeScript 是 JavaScript 的超集,任何現有的 JavaScript 程式都是合法的TypeScript 程式。經過兩年的內部開發,微軟於2012年10月首次釋出了 TypeScript 0.8 版本。

如今,TypeScript 已成為構建瀏覽器中大型應用十分常用的程式語言。釋出至今,也越來越受到開發者的喜愛。在2021年 Stack Overflow 的調查中,TypeScript 位居第三。且仍處於上升期。
TypeScript 的成功,也可從另一角度得以印證。在 TypeScript 開發的同期,Facebook 也提出了 Flow 這個解決方案。不過,時至今日,二者的走勢已是大相徑庭。TypeScript 在 GitHub 上的 star 已逐年上升至6萬多,而 Flow 仍徘徊在2萬;此外,過去一年的日下載量也是天差地別。Flow 基本每天在幾十萬的水平,而 TypeScript 都在2000-3000萬之間。

解決 JavaScript 大型應用開發的難題還不是 TypeScript 的終極使命,是它,幫助微軟克服了對開源的恐懼。

篤信開源 —— 撬動 Javascript 社群

眾所周知,如今的微軟已是開源最大玩家。然而,微軟對開源的恐懼也有著眾所周知的歷史。當 TypeScript 開始開發時,時任微軟 CEO 的 Steve Ballmer ,曾在 2001 年稱開源的作業系統 Linux 為“惡性腫瘤”,因為 Linux 附著在與智慧財產權有關的一切事物上。雖然十五年後,Ballmer 宣佈熱愛開源、且微軟加入 Linux 基金會,但在TypeScript 開始開發時,微軟高層對開源仍心存恐懼。

Anders 篤信開源,並有獨到的開源信仰和哲學,這也是 TypeScript 從開發的第 0 天就以開源示人的道理。Anders 認為,把程式碼放在一個公開的地方供人複製、間中處理一些 Issues ,只是技術性開源,並沒有體現“開放式開發”這個開源的精髓。開放式開發,意味著你要把開發的全過程公開化。

同時,開放式開發對 TypeScript 也是十分必要的。Anders 說,最初構建的 TypeScript 只是一個想法、一些原型,非常需要獲得 JavaScript 社群的反饋,從而提升 JavaScript 的實踐。而吸引 JavaScript 社群的唯一方法就是開源。

2014 年,TypeScript 又將程式碼遷移到了 GitHub 上,實現了徹底的“開放式開發”。對於 TypeScript 團隊來說,GitHub 就是他們的工作場所。在那裡,他們和使用者之間近在咫尺,使用者能即時看到團隊寫的程式碼,他們之間沒有資訊失真,與使用者的交流也更加快速。

不過,當初 Anders 提出 TypeScript 的開源動議時,微軟高層並不是十分情願的,Andrers 和團隊做了大量的說服工作。同時,隨著 Azure 進入微軟的產業鏈,2012年後微軟也軟化了對待開源的態度。因此,TypeScript 幫助微軟內部克服了對開源的恐懼,推動了微軟的開源文化,已成為業內的共識。

不久前採訪了 Anders 的技術媒體 TheNewStack,以老牌唱片公司 Motown 來比喻今日的微軟。如果說,鼎盛時期的摩城唱片有 Stevie, Smokey, Marvin 和 Michael Jackson這些傳奇歌手,那麼,在 CEO Nadella 治下走向復興的微軟背後,也有一位大熱作品創作大師 ,他的名字就是 Anders Hejlsberg。

Anders 令人敬仰,不僅在於在四十年的時間跨度裡,在同一主題上持續突破;也因為,雖已年屆六十,仍沉醉於研發第一線,這給無數人帶來溫度、激勵和啟發。在今天知識和產品快速迭代的業態之下,從業者是否應該駐足思考,時間沉澱出的經驗和見解,如同歷史長河中的許多經驗和智慧一樣,必將跨越年齡的界限,帶來價值。

2019年,四位年齡介於55至60歲的語言大師聚首於 CS4All 的籌款活動上。他們創造的語言至今仍高居榜首,他們本人仍然是活躍的意見代表和實踐者。作為他們的同齡人,檢視自己如今的高腦力學習活動,不禁高山仰止、內心油然而生敬佩之情。

相關文章