這是 Jeff Whelpley 和 Patrick Stapleton 發布的博客,他們並不是全職的 Angular 團隊成員,是 Angular 社區值得稱讚的貢獻者。本文是對所有用戶都想知道的,關於 Angular 的一些總結。
幾周前,Patrick 和 Jeff 就開始了一份對 AngularJS 開發者的調查,主要是關於他們計劃如何使用 Angular 2。此次調查總共收到了 2100 份回復,還有其他類型的反饋。所有的結果都已經整理成了下面的圖表和分析。
一開始只是想調查小型開發者團隊,已經花費了大量時間在 Angular 2 上面的團隊。但是,很快,收到越來越多的反饋。Angular 2 還只是 Alpha 階段,還不能構建產品應用。也就可以大膽假設大部分開發者只是剛剛開始學習 Angular 2.0。也因此,此次調查的結果顯示的是他們未來會如何使用 Angular 2,而不是現在所做的這些。
當使用 AngularJS 2 的時候會選擇哪種方式? (單選)
TypeScript | 45.0% | 950 |
Babel | 33.2% | 700 |
Not sure | 11.3% | 238 |
ES5 | 9.0% | 190 |
Other | 1.6% | 33 |
前 1000 份結果中,TypeScript 和 Babel 不分勝負,但是之後就開始慢慢拉開距離。這也不奇怪為什麼 Angular 核心團隊偏愛 TypeScript 了。這裡有個關於 TypeScript vs Babel on Angular Air 的討論。
即使繼續使用 ES5 並不是一個好的長期策略,但是一部分開發者使用 ES5 來從 Angular 1 轉換到 Angular 2。如果你覺得你繼續使用 ES5 是因為不喜歡 transpilers,可以再給一次機會,Transpilers 在過去幾年裡也有了很大的改進。
有一部分用戶說他們會同時使用 TypeScript 和 Babel,雖然看起來有些奇怪,但是也不是沒有可能,未來也許就可以一起使用。其他的一半是反饋使用 Dart,一個 Closure Compiler。同時,有 7 個使用 CoffeeScript,大概是 Ruby/Python 用戶。
你會使用哪個模板綁定語法?(單選)
bind-prop="val" | 56.7% | 1192 |
[prop]="val" | 43.3% | 912 |
這是最令人吃驚的一個結果,也非常的有意義。即使 Angular 核心團隊更喜歡第二個選項 (i.e. [prop]=val which is the canonical syntax),第一個選項 (i.e. bind-prop="val") 看起來像 Angular 1.x 模板代碼。
AngularJS 團隊建議大家嘗試不同的變量,不要僅僅因為陌生而規避規範化的語法。
你會選擇在哪裡放置你的模板?(單選)
Both | 47.6% | 1008 |
External file | 46.5% | 986 |
Inline | 3.4% | 73 |
Not sure | 1.8% | 39 |
Other | 0.6% | 13 |
我們更偏愛內聯模板,但是有一定數量的用例需要放置在單獨的模板文件。
內聯模板的優勢:
給定組件的代碼都在一個文件
鼓勵開發者控制模板的大小,太大的時候可以重構
獨立模板文件的優勢:
Angular 1 開發者熟悉這種方式
容易與設計師或者其他非開發人員分享
今天的編輯器會提供更好的智能支持
大型模板會比較自然,不能被分離成更小的部分(比如表單和布局)
等下一年開發者越來越熟悉 AngularJS 2,提供更多的智能支持之後,會有更多人選擇內聯模板。就與設計師共享模板而言,值得注意的是,在 React 中,已經在設計師修改內聯模板上取得了一定的成功。
你會選擇哪種路由機制?(單選)
Component Router | 36.7% | 776 |
UI Router | 33.0% | 698 |
Not sure | 28.1% | 594 |
Custom | 1.7% | 35 |
Other | 0.4% | 9 |
查看這些結果的時候需要注意:
這裡有大量炒作的新路由器,而核心團隊支持的就很自然獲勝了
目前為止,在 Angular 2 上有些可能有功能缺失或者其他,所以沒有壓倒性勝利
UI Router 還沒有獲得任意的 Angular 2 支持,但是大量的開發者已經在 Angular 1 應用中使用,也期望有這個路由
這不是理想狀態,也只是暫時的狀態。開發者很快會解決這些路由的一些問題,Angular 2 也計劃在不久的將來集成 UI Router。所以,當 AngularJS 2 發布的時候,開發者會提供兩個強大的路由選項。
選擇以下你會在 AngularJS 2 項目中重點使用的任意與數據相關的庫(多選)
其他的一些庫::
Angular 2 Data
Relay/GraphQL
Breeze.js
如果 AngularJS 2 提供伺服器渲染特性,你會用嗎?(單選)
Yes | 27.2% | 566 |
Sometimes | 25.9% | 539 |
No | 25.7% | 534 |
Not sure | 21.2% | 442 |
這個問題單獨從 Angular 2 特性中分離出來是因為 Jeff Whelpley 和 Patrick Stapleton 參與了伺服器渲染的開發,有 53.1% 的開發者會選擇使用伺服器渲染功能。
當使用 AngularJS 2 的時候你會最經常使用哪個編輯器?(多選)
Webstorm | 43.0% | 907 |
Sublime | 39.0% | 822 |
VS Code | 30.1% | 634 |
Atom | 25.0% | 528 |
Other | 11.2% | 237 |
VIM | 10.7% | 226 |
Emacs | 1.6% | 33 |
功能最齊全的 Webstrom 獲勝,大量的「企業」開發者使用 Angular 的同時使用 Java 或者 .NET,然後會使用非常大型的開發工具。
VIM 超出想像,有開發者說 VIM 跟 Angular 和 TypeScript 更配。
Angular 核心團隊大部分已經開始使用 Visual Studio Code,可以試一試,Visual Studio Code 提供 Sublime 般的感覺,而且對 TypeScript 非常友好。
Webstorm 和 Visual Studio Code 非常大,如果你使用他們的姐妹產品會變得更大 (ex. IntelliJ and RubyMine with Webstorm and VS.NET with Visual Studio Code)。
大半的開發者都強烈推薦 Brackets。
當使用 Angular 2 的時候會選擇使用哪款構建工具?(多選)
很明顯,Gulp是最受歡迎的,讓人驚訝的是很多開發者會選擇 Webpack,之後是 JSPM 和 SystemJS。
其他有很多是使用 npm 腳本,還有就是其他的 5 種構建工具: Gradle, Meteor's build system, RequireJS 和 Bower。
現在除了 Angular 1.x 之外你還使用哪些框架?(多選)
我喜歡憧憬 Web 的未來,但事實上每位開發者都需要支持舊版瀏覽器,這個沒有哪個框架能比得上 jQuery。另一個比較有趣的是四分之一的 Angular 開發者同時也使用 React。
這個問題設計的不是很完美,以下的 4 個框架沒有在選項中,是被調查的開發者反饋的:
你最期待 Angular 2 的哪個特性?(多選)
Change Detection | 65.0% | 1298 |
Web Components | 57.9% | 1157 |
Zone.js | 53.1% | 1060 |
Component Router | 42.3% | 845 |
DI updates | 39.4% | 788 |
Server Rendering | 37.1% | 742 |
i18n | 29.2% | 583 |
Animation updates | 25.7% | 513 |
Other | 3.6% | 72 |
上一年作者發表了一篇文章,大多數開發者對 Angular 是又愛又恨。那篇文章寫道:
反對 Angular 的通常會吐槽抱怨:
低於標準的特性(比如路由,模型層)
缺失特性(比如伺服器渲染,異步加載)
繁雜或者混亂的 APIs(比如注入數組,服務/工廠/提供者,指令)
基礎設計決策 (ex. working off the DOM, dirty checking vs KVO vs Virtual DOM, mutable data vs immutable data).
比較上面 Angular 1 的問題,我們來看看令人興奮的 AngularJS 2 的新特性:
1. 修改檢測 2. Web 組件3. Zone.js4. Component Router5. 依賴注入6. 伺服器渲染
還有其他值得關注的特性:
你的 Angular 1.x 經驗級別是?(單選)
Novice / beginner | 13.9% | 292 |
Experienced (simple apps) | 27.6% | 581 |
Advanced (1+ large prod app) | 37.2% | 784 |
Expert | 21.3% | 448 |
此次調查最開始是傾向於更多的高級 Angular 開發者,所以很高興主要的被調查者都是深度用戶 (58.7%) 。但是,當從 「開發者在使用」到 「開發者將會使用」轉變,這也能充分體現剛接觸 Angular 開發者的意願。最後,對於整個 Angular 社區來說這次調查也比較真實,充分體現了社區開發者的想法。
經過此次調查,收集了很多用戶對 Angular 的一些看法和期望,希望 AngularJS 2.0 不負眾望,成為大家喜愛的 HTML 的 Web 框架。
via angularjs.blogspot.jp