摘要:加入微軟的年里,一直致力于和的研發工作。圓桌對話由祁寧江宏以及云適配馬鐸共同參與。圓桌對話深入了解江宏大家好,我是的江宏。因為函數式語言有了里的很多特性,當然微軟也有自己的函數式語言。
導讀
上周,C#、Delphi 之父 Anders Hejlsberg 親臨帝都,就 TypeScript 做了一場技術分享,并與眾多開發者就此進行了技術探討。Anders Hejlsberg 加入微軟的 19 年里,一直致力于 C# 和 .NET 的研發工作。同時,作為 TypeScript 的核心開發者和該開源項目的重要領導人物,他這次來帝都,主要也是為 TypeScript 布道。以下是講座主要內容。
Anders Hejlsberg 簡述 TypeScript(Anders)大家下午好!首先我介紹一下這是我第一次到中國來,在這兒逗留的這一天令我非常高興,而且此前我也是非常激動的。今天在這會給大家介紹一下我一直在做的事情,包括大家都在談論的 TypeScript 以及相關的 Open Source 的一般性的工作。
我做軟件開發工具已經有 35 年的時間了,而且編寫了不同語言的編程。以前都是專有的源,是封閉式的,現在我看到它有更新的變化,有一些新的方法論。
首先我們來看一下相關的背景。RedMonk 在上個季度剛剛發出的報告,JavaScript 在 GitHub 和 StackOverflow 被提及的次數排名都很靠前,和以前比有顯著的上升。我覺得這里面有一些比較重要的原因。首先,JavaScript 是真正跨平臺的語言。以前的語言,如 Java,其實現在都不算是(跨平臺語言)了。另外,JavaScript 的性能近年來有 10~100 倍的飛速提升,它一個語言就可以在所有的層面上編程,這個是非常不一樣的地方。比如這兩年的 Node.js,還有移動端 ReactNative、NativeScript 等等,都可以用它來編寫。在不同層面使用同一個語言開發,避免了學習很多新的東西。
其次,現在 JavaScript 已經被 ECMAScript 標準化了。今年已經出到第六版的標準,看起來非常雄心勃勃,因為他們的目的是為了解決 JavaScript 的一些遺留問題,而且另外添加一些新的模塊、class 等等。現在第六版的標準我覺得有很多東西是非常有意思的,像 Mondule、Class、Arrow Function 等,JavaScript 的核心實際就是這樣的。首先它是動態的,是兩個家族系列(Dynamic 和 Static),對動態的界定是它不需要編譯,直接打印就可以了,靜態的是要求你靜態地進行編譯。我們可以分別來看一下動態和靜態之間都各有什么優點?優點大家都知道就是它非常簡化,可以讓你直接上手工作,而且可以互動不需要編程,而且非常容易。靜態的這塊更多是強調修正一些錯誤,強調性能升級還有更好的工具。實際上現實來講是說動態的和靜態的都各有所長,而且我們兩者都需要有。
大概是 5 年前我們的客戶包括自己內部的團隊就跟我們說,他們在寫大的 JavaScript 代碼時會遇到一些問題,所以我們想,怎么做才能加強 JavaScript 代碼,讓其強的更強,同時不破壞和損壞既有的價值。這就導致了我們現在所說的 TypeScript 的出現——實際上它是 JavaScript 的超級集合,把兩者(動態的、靜態的)最好的東西都集合在一起。這樣實際上帶來了兩個好處,一個是我們在這上面添加了靜態的,這樣就有更加好的工具,還有一個好處在于你可以現在獲取未來才有的一些相關的屬性,可以在任何瀏覽器、任何的托管主機和操作系統中使用,而且它整個都是開源的,這才是跨平臺的。(ECMAScript6 實際上在 5 年之后有了非常大的、多的 browser 部署才行)
……
以上是 Anders Hejlsberg 關于 TypeScript 基本的介紹。接下來是圓桌對話,是進一步的深入了解。圓桌對話由 SegmentFault CTO 祁寧、LeanCloud CEO 江宏以及云適配 CTO 馬鐸共同參與。
圓桌對話:深入了解 TypeScript江宏:大家好,我是 LeanCloud 的江宏。LeanCloud 是移動應用的后端云服務。我是很小的時候學編程時就開始使用 Anders 創造的 Turbo Pascal,直到后來的 Delphi。今天很高興有機會跟大師一起交流。剛才 Anders 介紹了 TypeScript,那么我就以一個這方面的問題開場吧。TypeScript 在 JavaScript 之上加了 class,而據我所知,很多 JavaScript 程序員,包括一些很優秀的程序員,都對在 JavaScript 里模擬 class 有強烈的反感。除了宗教原因以外,你覺得從技術上看 class 和 prototype 有優劣之分嗎?
Anders Hejlsberg:你的這個問題非常好,JavaScript 沒有 class,所以有一些習慣于 class 的開發者認為不大好用,而加上 class 也是因為有一部分的開發者是要用這樣的東西。從 TypeScript 的 compiler 來講,JavaScript 原有的 function、closure、prototype 都不受影響。對我來說,我認為它是中性的,你可以用這個也可以用那個,有兩種方法來開發。
馬鐸:我了解 Anders Hejlsberg 先生的技術有十來年,他在開發界里面名氣很大,可談論的問題是非常多,但現在我們把問題回到 TypeScript 上,我想到一個問題,TypeScript 這種語言這么靈活,那么我想提的問題是,在靈活與規范化之間,TypeScript 是如何做好平衡的,這是不是 TypeScript 設計之初做的主要的考慮?
Anders Hejlsberg:TypeScript 作為一個語言來講,技術上是非常有意思的。它有一個 GridView (77:21) Type 或者是 (77:22) Type 這樣的東西可以用,如果這樣用的話就可以查。如果不寫類型的時候,實際上就相當于 JavaScript,問題是你怎么來寫類型,傳統上來講編程的語言就是兩個,一個是靜態、一個是動態的,或者是 DodeType,所有的都是用靜態類型來寫的,所以你可以選用哪一種形式的類型。
祁寧:TypeScript 和 ECMAScript 的關系會是怎樣的?如果以后 ECMAScript 支持了越來越多的 TypeScript 里的新特性,我們還需要 TypeScript 嗎?
Anders Hejlsberg:我想就這個問題說兩件事,首先是對于剛才提到的 ECMAScript6 的標準化,我們是非常致力于這個工作的,它就是微軟的,我們也不是希望要把這個語言變成一個完全不同的東西。另外,它實際上有一些核心的東西,一個是 TypeScript 從靜態類型提供了一個更好的工具,同時在編碼的時候我們把它叫做 Downlevel,我覺得可能是更簡化的意思。另外 ECMAScript6 標準化的時候是在不斷地演變的,但我并不認為這個標準化有靜態類型的系統,之后 6 還會有新版本,而現在的 browser 是不會支持它的。
祁寧:我們知道微軟在開源社區中一直頗受微辭,它也有一些頗受詬病的傳統,那么現在的微軟真的走向開放了嗎?
Anders Hejlsberg:有關你提的問題應該更多地看一下我們的行動,你們有自己的評判。如果看一下我們所謂工作的流程還有整個的開源社區對這個工作的深度的介入,還有包括 Google 已經在寫 Angular 2,而且是在 TypeScript 上寫的,這些是事實勝于雄辯的。我們微軟也是在變的過程中,在這個過程中我們也學習了很多的東西。
江宏:程序設計語言在過去幾十年里經歷了一個演化過程。GUI 和桌面程序催生了面向對象的語言,多核處理器和對平行計算的需求讓函數式語言再次流行起來,同時也讓 Erlang、Go 等一些新的語言出現。您認為下一個新的語言是什么樣的,讓它出現的動機會是什么?
Anders Hejlsberg:有關這點其實很難說未來會出現什么新的語言的類型,但我可以說一下哪些事情或者是因素影響了現在的工作,比如說我們說的函數式的語言,這個對很多其他的東西來講都是非常能夠帶來靈感的源泉。因為函數式語言有了 C# 里的很多特性,當然微軟也有自己的函數式語言 F#。另外移動應用還有云等等都影響了現在的很多工作,他們要求系統之間可以進行網絡通訊,能夠容忍延遲,所以有了異步的編程。ECMAScript6 的標準之后會是 7,但編程的模型也是會繼續向前演進的,可是編程語言的演進是非常緩慢的,因為它不是基于硬件的演變,而更多是涉及到人方面的因素。我們也知道在過去的 30 多年里,人大腦的尺寸沒有發生太多的變化,因此編程語言方面它的演進是非常慢的。
馬鐸:我這有兩個小問題想請教一下,第一是關于 TypeScript 的開源以及微軟開源的事情,但這個問題其實可以不用問了,因為我也是一個 TypeScript 的使用者,關于開源這塊其實已經有答案了。第二個問題是 TypeScript 現在發展的一種狀況,我想聽聽 Anders Hejlsberg 先生在全球范圍內以及在中國的 TypeScript 發展的狀況是不是跟你所想象的一樣,是好還是不好?
Anders Hejlsberg:有關這個問題我認為 TypeScript 在過去一年半的時間里是經歷了非常非常快速的或者是很多輪的增長,現在我們看到了 Angular 2 還有 Google 也加入了,自從他們加入了以來又有了更大的增長。另外,從每個月有關這個下載的相關應用來講,也是超過了 5000 萬。再有,看到社區也是非常非常熱鬧的,因為他們現在在 GitHub 上工作了一年半的時間了,這里面有很多相關的問題,這說明在過去的一年半時間里肯定是有很多相關的問題和使用。我們看到了它的發展。TypeScript 在很多會議上或者是用戶集團會議上都是有很多使用的。
祁寧:我們知道這是您第一次來中國,您對中國的開發者印象如何?您能從您自己的經歷中為這些年輕人提出建議嗎?
Anders Hejlsberg:首先,我覺得這是我第一次來中國,這個經歷令我非常激動。另外和當地開發者社區有一些互動,另外我們看到了整個的開發者社區熱情也是非常大的,所以這些對我們來說都是非常震撼的,另外我們也在微軟本地的研究看了相關的項目,我發現也是特別棒的,很多東西非常務實、非常有用、非常有意思,其中很多東西我都想把它放在我們最終的產品里。
再有,其實我很難給大家一些相關的建議,對我來說編程的工作應該是大家都富有熱情的來做的,因為我在上學的時候就開始接觸這個工作,當時個人電腦都沒有,什么東西都得從頭學起,但我就是想學,誰也不能阻止我,并不是說我希望得到更高的薪酬,我完全是憑熱情。我非常幸運我的愛好和工作是結合在一起的,但不是人人都像我這么幸運,最重要的是你要找到你的熱情所在,而這個又能帶給你快樂,這就是帶來更好的工作成就,如果你面臨一個選擇,一方面是工作能多給你錢,另一方面是你很熱愛的,這樣的話才能工作得非常帶勁,你也能夠成長,同時也能學到非常多的東西。
江宏:您在微軟多半是有某些管理職責的,不管是對人還是對項目,請問您是怎么平衡對于技術工作的熱情和自己的其他職責的?我相信很多技術人都會有這個問題。比如我之前在 Google 工作的時候很多工程師遇到這個問題。后來創業,很多技術出身的創業者也遇到這個問題。
Anders Hejlsberg:這個問題相對來說比較好回答,我是自主選擇做技術方面的工作,實際上我不管人,也沒有人向我匯報,但在技術方面我負的責任是非常大的。因為對我的工作描述是我必須要創作出在全球開發者社區都非常有影響的產品,所以我是不管人的,我更愿意從事我非常擅長的技術方面的工作而不是管理人,這是我的專長所在,也是我的熱情所在。
江宏:您在職業生涯里經歷了不少編程語言和工具的生命周期。比如我以前用您主導開發的 Delphi。從技術上說 Delphi 是一個非常好的開發桌面應用的語言和開發環境,但是現在很少有人用了,似乎 Delphi 的發展沒有達到應有的高度。如果那個時候有比較多的開源社區參與,您認為事情會不一樣嗎?您覺得決定一個語言的生死和是否能流行的主要因素有哪些?
Anders Hejlsberg:這個我也是很難說的,因為當時還沒有開源,現在有了開源我認為它的影響對編程語言來講是非常非常大的,而且如果沒有開源將沒有任何的編程語言是受歡迎的,因為開發者現在已經對私有的封閉式的東西是不敢興趣的,而且我認為語言的設計 90% 的編程語言都是一樣的,那 10% 是新的東西,新的東西發展是非常非常緩慢的,因為它和硬件如何發展都沒有關系,它是和人腦和數學的發展是有關系的,所以是非常緩慢的。另外我不認為有任何的編程語言是完美無瑕的,我經常跟別人這么說,你給我看一個完美無瑕的編程語言,我馬上給你展示一個根本沒有用戶的編程語言。一旦編程語言有了用戶,它的代碼就要考慮向后的兼容性。很多技術都有很多糟糕的地方,而這個正是它們成功的表象。
以上為圓桌對話主要內容,圓桌結束后,Anders Hejlsberg 還與在場的開發者就編程方面的問題進行了交流。對于本次帝都之行,他表示非常感謝中國如此多的開發者能夠支持 TypeScript,也希望在之后越來越多的開發者能參與到 TypeScript 的工作中來。
活動現場照片查看 GitHub 該項目:Microsoft/TypeScript
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/86123.html
摘要:今天看到寫的中的和都錯了,覺得很有意思,所以也研究了一下。但既然用,就是為了用它的靜態檢查,所以要充分關注編譯錯誤提示。很遺憾,同樣的錯誤。的正式名稱是,即那么,現在來說說的結果。因此在我實際工作中遇到類似問題的概率非常低,不糾結 今天看到 @justjavac 寫的《ES6 中的 this & super:babel 和 typescript 都錯了》,覺得很有意思,所以也研究了一下...
摘要:我開始重新了解一下的現狀,沒想到已經完全走上正軌了,在上已經有大量的項目選用,投入生產于是報著嘗試的心態,開始了遷徙。 js進化,遷徙到typescript TypeScript 歷史 TypeScript是一種由微軟開發的自由和開源的編程語言 它是JavaScript的一個超集,而且本質上向這個語言添加了可選的靜態類型和基于類的面向對象編程 2012年十月份,微軟發布了首個公開版...
摘要:聯合創始人郭達峰將擔任思否區塊鏈黑客馬拉松廣州站技術顧問,為大賽項目提供技術咨詢支持。郭達峰是一位連續的成功創業者,他開發的多個應用用戶量高達,又因其在區塊鏈圈內享有盛名,被圈內人士稱為鏈圈峰哥。 近日備受關注的 EOS 投票率超過 15%,主網激活,已正式上線。EOS Asia 聯合創始人郭達峰將擔任 SegmentFault 思否區塊鏈黑客馬拉松廣州站技術顧問,為大賽項目提供技術咨...
摘要:深圳站今天順利進行了,從創業公司如何防護信息騷擾和攻擊,到后臺運維的挑戰經驗分享,再到創業技術團隊的技術升級,四位嘉賓的分享和別具一格的圓桌討論,今天這是一場屬于創業團隊技術成長路的交流分享。深圳站嘉賓分享文檔及圓桌討論 SegmentFault D-Day 2015 深圳站 今天順利進行了,從創業公司如何防護信息騷擾和攻擊,到后臺運維的挑戰經驗分享,再到創業技術團隊的技術升級,四位嘉...
閱讀 2020·2023-04-25 22:50
閱讀 2833·2021-09-29 09:35
閱讀 3390·2021-07-29 10:20
閱讀 3153·2019-08-29 13:57
閱讀 3355·2019-08-29 13:50
閱讀 3032·2019-08-26 12:10
閱讀 3530·2019-08-23 18:41
閱讀 2634·2019-08-23 18:01