Delphi、C#之父Anders Hejlsberg近日首次訪華,並在10月24日和27日參加了兩場見面會,分享了他目前領導開發的TypeScript項目,並與國內前端開發者近距離交流。InfoQ記者全程參與了兩場見面會以及會後的採訪,本文就爲讀者描述一下近距離接觸大師的印象,以及Anders對TypeScript的設計理念和想法。前端
Anders Hejlsberg(安德斯·海爾斯伯格)於1960年出生于丹麥,在Borland公司開發出Turbo Pascal和Delphi以後加入微軟,主持微軟下一代開發工具的研發。他爲微軟開發和設計出Visual J++、.NET平臺以及C#語言,能夠說他開發出的軟件和語言影響全世界整整一代程序員。目前,他是C#語言的首席架構師和TypeScript的核心開發者與TypeScript開源項目的重要領導人。程序員
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的分享裏,他總結微軟如今的開源戰略:
新開發項目首選開源開源+開放開發,使用並依賴Github跨平臺開發工具,典型的如Visual Studio Code
Anders認爲開源是軟件開發的趨勢,如今若是你的軟件不是開源的,開發者可能更願意選擇別的開源的解決方案。
語言大師
Anders在語言設計、開發工具、編譯器等諸多領域都有很是深厚的功底,這爲他設計出C#語言打下了基礎,C#語言被公認爲設計很是優秀的語言,做爲它的創造者,Anders毫無疑問是一位語言設計的大師。在現場他分享了一些對編程語言的見解:
極簡:Anders喜歡簡單(simplicity),除非必要,不然不添加語言特性,一個好的語言特性是它必須的最小集。困難即美味:記者問到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自己,有如此大牛帶領,相信這門語言正走在正確的道路上,它的將來不可限量。