Delphi/C#之父首次訪華:55歲了每天都寫程式碼

佚名發表於2015-11-05

Delphi、C#之父Anders Hejlsberg 近日首次訪華,並在10月24日和27日參加了兩場見面會,分享了他目前領導開發的TypeScript專案,並與國內前端開發者近距離交流。本文就為讀者描述一下近距離接觸大師的印象,以及Anders對TypeScript的設計理念和想法。

Anders Hejlsberg(安德斯·海爾斯伯格)於1960年出生于丹麥,在Borland公司開發出Turbo Pascal和Delphi之後加入微軟,主持微軟下一代開發工具的研發。

他為微軟開發和設計出Visual J++、.NET平臺以及C#語言,可以說他開發出的軟體和語言影響全世界整整一代程式設計師。

目前,他是C#語言的首席架構師和TypeScript的核心開發者與TypeScript開源專案的重要領導人。

Delphi/C#之父首次訪華:55歲了 每天都寫程式碼

Anders印象

Anders現年55歲,在軟體開發的道路上已經走過30餘年,但仍然對工作充滿熱情。他性格和善而風趣,同時,還是個純粹的程式設計師,每天仍然有很多時間花在程式設計上。

雖然相處時間不長,但大家紛紛圍著他捨不得分開,這是一位讓人願意親近的長者、前輩和大師。

筆者將他的印象總結為三點:終身程式設計、開源信徒、語言大師。

終身程式設計

Anders現在每天仍然花大量的時間實際寫程式碼,並且未來會一直寫下去。他很清醒的知道自己長處:“相比起管理,我還是更擅長於程式設計。”

事實上,Anders的成名之作Turbo Pascal透過出售軟體授權就讓他獲得了大量財富,之後微軟高薪聘請更讓他衣食無憂,Anders不僅僅是可以轉管理——只要他開口,微軟有很多的職位在等著他——他甚至可以什麼都不用做,但他仍然堅持程式設計,因為這是他的興趣和激情所在。

對於他如何能達到現在的成就,他表示,10000小時定律和興趣是很重要的因素,程式設計是一項需要時間來掌握的技能。

Anders說,他回憶一下,的確是花了這麼長時間才真正掌握程式設計,而另一方面,興趣也是非常重要的,如果有兩個工作,一個給的多些,另一個給的少些,但是是你感興趣的事業,Anders建議選感興趣的那個。

國內有不少資深程式設計師在工作一段時間之後都轉了管理,但仍對程式設計難以忘懷,瞭解Anders的生平和想法,想必會有所啟發。

開源信徒

Anders對開源精神的認同和身體力行讓人驚訝,他現在在Github上每天要提交十多次程式碼。很難想象他來自微軟,當然,微軟現在其實也在擁抱開源,並且這其中也有Anders的努力。

微軟自Satya Nadella(薩提亞·納德拉)擔任CEO後,開始融入社群,向開發者示好,其中的重要舉措就是開源,Anders是其背後的推動力量之一。

不僅他之前參與的.NET核心引擎CoreCLR開源,現在的TypeScript也徹底是由社群主導的開源專案,微軟並不干涉TypeScript的發展方向,所有決策都由社群得出。

在Anders的分享裡,他總結微軟現在的開源戰略:

• 新開發專案首選開源

• 創立.NET基金會管理開源專案

• 開源+開放開發,使用並依賴Github

• 跨平臺開發工具,典型的如Visual Studio Code

Anders認為開源是軟體開發的趨勢,現在如果你的軟體不是開源的,開發者可能更願意選擇別的開源的解決方案。

語言大師

Anders在語言設計、開發工具、編譯器等諸多領域都有非常深厚的功底,這為他設計出C#語言打下了基礎,C#語言被公認為設計非常優秀的語言,作為它的創造者,Anders毫無疑問是一位語言設計的大師。在現場他分享了一些對程式語言的看法:

• 極簡:Anders喜歡簡單(simplicity),除非必要,否則不新增語言特性,一個好的語言特性是它必須的最小集。

• 設計存活時間更長的語言:有些程式語言隨著時間流逝不再流行,但有些語言如C語言,幾十年過去了仍然被很多人使用,語言與趨勢(如移動網際網路、物聯網)無關,語言設計者的目標是設計存活更長時間的語言。

• 困難即美味:記者問到Anders對JavaScript語言的看法,他認為JavaScript在設計上有諸多問題,但仍然有其優點,更重要的是,使用者很多,並且難以被替代。至於Anders為何會選擇修補JavaScript,他認為這對他是一項挑戰,以前沒有人做過,解決這一問題對他就像美味一般。

TypeScript:大JS生態圈的一環

TypeScript最近釋出了1.6版本,它在社群裡的接受度也越來越高,比如有人從CoffeeScript遷移到TypeScript,也有人認為它比Facebook的Flow更好。這一切都要歸功於Anders為TypeScript帶來的優秀設計。

Anders分享道,其實TypeScript做的並不多。它的兩大特性,第一個給JavaScript加上可選的型別系統,Anders表示,很多事情是隻有靜態型別才能做的,給JavaScript加上靜態型別後,就能將除錯從執行期提前到編碼期,諸如型別檢查、越界檢查這樣的功能才能真正發揮作用。在Anders現場的演示可以看到,TypeScript的開發體驗的確遠遠超過以往純JavaScript的開發體驗,無需執行程式即可修復潛在bug。

另一個特性是支援未來的ES 6甚至ES 7,最近的更新都與此有關。在TypeScript中,你可以直接使用ES 6的最新特性,在編譯時它會自動編譯到ES 3或ES 5,這個功能和最近流行的Babel類似,事實上,Anders認為TypeScript的競爭對手並非Dart、CoffeeScript這類語言,而是Babel,不過TypeScript的型別系統是Babel無法做到的,Babel也僅是一個編譯工具,無法提供更好的開發體驗。

在問到對TypeScript將來的規劃時,Anders顯得很剋制。TypeScript不追求替代JavaScript,沒有計劃直接執行在瀏覽器、系統裡,它僅僅關注在編譯到JavaScript之前的事情,編譯之後的事情,諸如JavaScript效能調優等等,並不關心。

Anders表示,TypeScript最大的目的是讓程式設計師更具創造性,提高生產力,它將極大的增強JavaScript編寫應用的開發和除錯環節,讓JavaScript能夠方便用於編寫大型應用,進行多人協作。

這種定位讓TypeScript能更輕鬆的被JS程式設計師所接受,除了上面提到社群的反應,最知名的還要數Google採用TypeScript來開發其Angular 2框架,Google和微軟甚至為此第一次聯合召開釋出會。在國內,也有HTML5遊戲引擎Egret使用TypeScript進行開發。由此可見,TypeScript已經足夠可用,甚至進入大公司的生產環境。

當然,最後讓人推薦TypeScript的原因,還有Anders本身,有如此大牛帶領,相信這門語言正走在正確的道路上,它的未來不可限量。

相關文章