如何看待Google和Microsoft在Angular JS 2 和 TypeScript上的合作?

前兩天看到報道說ATScript和TS非常接近就有點怪怪的感覺。

現在算是宣布了:

Microsoft and Google Are Collaborating On Angular 2

Angular 2: Built on TypeScript (Angular 2:基於 TypeScript - 前端外刊評論 - 知乎專欄)

http://techcrunch.com/2015/03/05/microsoft-and-google-collaborate-on-typescript-hell-has-not-frozen-over-yet/

怎麼看這樣的合作關係呢? 各取所需?

對AngularJS和TypeScript的發展是比較好的結果嗎?


簡直就像玄德娶尚香,天作之合,劉歡孫悅啊!

前幾天還答了另外一個相關問題:如何看待 Angular 2.0 使用的 AtScript 是 TypeScript 的超集? - 徐飛的回答

在這裡面我提到,如果AtScript能跟TypeScript合併的話,將是非常好的事情,避免了語言和社區的再次分裂。

這個事情對於微軟和Google來說是一個雙贏的結局,對微軟來說,好處更多。Angular這個框架是重型Web應用的利器,而Google在這方面的業務經驗其實是大大不如微軟的,微軟跟IBM最擅長這個領域了,Google的絕大部分東西的前端部分還比較偏輕量級。

微軟這幾年的尷尬在什麼地方呢,它沒有一個自己的比較好的JavaScript框架,微軟自己的兩個東西,knockout和winjs,前者還是不錯的,但它並不是一個有很強約定的框架,我知道很多人反感Angular的這種強勢,更喜歡小庫,但在重量級的領域,人們更需要的是大一統框架。而winjs就更糟糕了,就算十年之前就出現,也談不上多少亮點。

微軟和IBM都是在企業領域深耕的,沒有適應時代的前端框架是個大問題,你看微軟自己的雲頁面代碼就明白,它的前端方面是落後於這個時代的。現在抓住Angular,可以說是一個非常重要的契機,未來它有了一個靠得住的框架,並且能藉助自己在企業應用領域的經驗,對其作一些推動,而微軟自己搞了多年的TypeScript,之前一直推廣不開,原因在於,沒有哪個主流的JavaScript框架是基於它的,用它雖然在工程較大的情況下很好,但還是有大炮打蚊子的感覺。

兩者結合之後,情況就不同了,這會是一個完善的重型Web前端解決方案,猶如呂布騎上了赤兔馬,劉備請來了諸葛亮,從此如魚得水,大殺四方。

對於Google來說,它避免了自己獨自搞一種新語言的風險,而TypeScript找到這個最佳場景之後,必將全力以赴支持Angular的研發過程,像註解之類的特性,也可以融合到TypeScript中去。

另外一個可能有的好處就是IDE。VS對TypeScript的支持很好了,再添加Angular的支持也不是難事。著名的WebStorm當前也是既支持TypeScript,又支持Angular 1.x,將來只要Angular 2.0語法穩定,很快就能獲得完整的項目支持。

還有,這兩個大流氓聯手了,對未來ES的發展也可能產生不小的影響,想到這裡,我突然很詭異地笑了一下,彷彿看到ES4又回來了……


喜大普奔.

瀏覽了一下相關評論文章, 發現很多人都感覺這是一件不大可能成真的好事, 當然, 現在成真了. TypeScript 希望在解決 JavaScript 缺乏 scalability 這一問題的同時能夠將 JavaScript 現有的繁榮生態利用起來, 可見本身對於 TypeScript 來說, 生態就是首先需要考慮的問題.

之前看到 Angular 2 使用的 AtScript 是 TypeScript 的超集, 並在計劃中有明確的 align with TypeScript 時非常感動. 現在 AtScript 與 TypeScript 合併, 只能是淚如雨下了.

為什麼 Google 會和 Microsoft 合作? 這個是個很耐人尋味的問題, 畢竟這兩家對著干也是相當有歷史了. 但是從之前展示 AtScript 時 ng 成員提到的來看, 一大好處就是 Google 和 Microsoft 的聯合能夠更有可能促成未來 ES 7, 8, etc. 的標準. 至於更多的博弈, 包括 Dart, 覺得太燒腦子了, 而且燒了腦子也不一定能得出正確的結論, 就留給大家自己 YY 吧.

這一次的聯合又有什麼好處呢? 首先我們這群早就涉足 TypeScript 的人賺了, 以後寫簡歷的時候總是能比別人多出一兩年的 TypeScript 經驗. 當然這個是玩笑話. 最重要的我認為還是對生態的正面影響, 而對生態的影響又提現在對工具鏈的影響以及對相關類庫豐富程度的影響.

過去總是擔心, 萬一以後能帶一個團隊, 總不能逼他們都用我宇宙第一的大 VS 寫 TS 吧? 現在不用愁了, 有了 Google 的支持, TS 很快能在編輯器/IDE中成為一等公民. 我覺得確實微軟在這方面的號召力是不及 Google 的.

所以, 好好好! 大家快來寫 TypeScript!


簡單回答四個字:

極大利好。


其實想糅雜狗粉與軟粉這兩個敵對的社區是非常難的,加之本來願意用二次編譯語言的人就非常少,

目測ng2的用戶群會大肆下降.只有十分開明的人士才會選用它.

TypeScript是非常NB的東西,正如他的生父那樣NB.成為ng2的構建語言,只是讓它更加火紅.

ng2是使用Object.observe來代替臟檢測,目前IE11還不支持,除非微軟大發慈悲,要不國內又要悲劇了!

ng2的成品還沒有出來, 其好用度及與我們前端人士習慣是否相吻合也是一個待考察點.

假如說jquery的歡迎度是100, 那麼 backbone是3, ng是1. 可見ng市場還有大大上升的餘地.

jquery培養出來的前端群體以小白居多,設計師居多,不願意記這麼多複雜概念,因此ng1沒有從jquery那裡搶走多少用戶.

TypeScript引入了類型,這是後端的東西,因此TypeScript的用戶群體是後端過來的.

ng2能有多火,就要看它能從後端搬來多少粉絲了.要讓小白們再使用工具進來編譯,這個比較困難.

但不管怎麼說,ng2的性能會比原來大為改進.

首先它只運行在非常新的瀏覽器上,DOM已經優化得非常好;

其次模塊引用系統使用es6的原生import;

數據監聽是原生的Object.observe……

性能的改進,意味著他的使用場合更廣。如果有配套IDE與插件出來,繼續ng1的輝煌不是夢!


AngularJS輕度使用,覺得太"邪惡",不敢重用;

TypeScript重度使用,離不開,當然最近一直在關注這個話題,沒使用vs開發的人根本不知道TS的強大。


說明兩個企業級 JavaScript 技術匯合了,因為日子都不好過嘛。但是誰需要企業級技術?都互聯網時代這麼久了。

類型系統是好東西,不過 flow那樣的可選方案更好。畢竟 JS 社區是多樣化的。Angular 則是一個惱人的技術…


說個一定被摺疊的事情。從我作為軟狗的個人歷史經驗來看,Google說要跟Microsoft合作,一般是為了把這件事搞黃,希望這次不是(逃


我倒是覺得並不是所有人都喜歡typescript,angular在官網上連教程都用typescript會導致一定程度的反感……


強類型和註解對語言本身有很大增益,對使用者需要分群體對待,部分前端工程師會憎惡之,部分後端工程師會很開心不用再陷入js的作用域和語法泥潭,剩下的大多數只能長嘆一聲:媽蛋又要學一門「新語言」!ps:ng這群人心很大,但是個人認為他們對前端的理解有點不在正路子上。


Typescript是Javascript的未來,連Python也考慮type hint了。有了Type hint,可以更容易在編譯時期發現錯誤,同時不影響語言的dynamic特性。


沒有永遠的敵人…


Javascript 演變到今天,它的靈活性,所有腳本的優點也是它的硬傷。
TypeScript 的冒出,給了我們可擴展性,可規劃性,等等編譯語言的優點,還是走上了類似JVM這種可編譯語言的路。
可是JS 和 TS 的轉換,從一個後端Java開發的角度來說,還是比較好上手。
國內很多還是停留在 Angular 1.x,Angular 1.x的話用 TS參考確實很少,而且寫起來雞肋。
到了Angular 2.x 以上 用TS 就合理多了。

有了TS 在複雜的大型項目,確實好處多得多了,而且如果注釋寫得好,直接當 Javadoc用,文檔都省了。完全符合 MVC 層與層之間實現透明化的理念, 就只管調用已有的方法,不關心它怎麼實現。也可以有效避免功能重複,代碼凌亂,做個普通修改/ 維護還要一個個打開人家代碼來讀的無謂勞動。


推薦閱讀:

TAG:前端開發 | JavaScript | TypeScript | AngularJS |