Fold All / Expand All

2016年7月6日 星期三

Sencha Ext JS 與 Angular 2 比較

其實沒有寫過最新的 Ext JS 6,而 Angular 2 也還只是在學習階段,寫比較實在是沒什麼說服力,不過還是得寫,就先依目前看到的東西聊一聊吧。

Top 8 Reasons Why Enterprises Prefer Sencha Ext JS over Angular
https://www.sencha.com/blog/top-8-reasons-why-enterprises-prefer-sencha-ext-js-over-angular/

Sencha 本身應該一直被問這個問題,現在 AngularJS, ReactJS 這麼紅,為什麼要選擇 Ext JS 呢?

這裡列出了八項

  1. Rich UI Components
  2. Ext JS since 2007
  3. Robust framework to build apps
  4. Browser Compatibility
  5. Integrated Tools
  6. No need to learn TypeScript or other tools
  7. Design Tools
  8. Support and Training
第7、第8是 Sencha 有提供工具以及服務,不過目前也都沒用到,所以跳過。

第一,Rich UI Components,這點目前為止,應該是沒有其他 JS Framework 可以比得上 Ext JS,不過前提是網頁的設計需求可以由這些 component 滿足,而不需要自已刻一個 component 出來,這就看應用類型了,傳統的 form/grid,使用 Ext JS 應該大多的需求都可以滿足,但今天如果有特殊的設計,這個優勢就沒了。

第二,從 2007 年以來,持續成長的 framework,相較於 Angular 2 在2016年7月初的此時,還在 RC階段,而且和 Angular 1 不相容。不過 Ext JS 自己在 3.x 到 4.x 換 class system 也是完全不相容,雖然有所謂的 upgrade tool,但大家都知道換完要手工的東西還是不少,這裡可以說明的只有 Ext JS 歷史較悠久,理論上對於各式奇怪問題,應該處理經驗較豐富,考慮較多,不過 Angular JS 的社群也相當龐大,在使用人口更多的情形下,歷史長不見得就比較厲害。

第三,已經準備好可以寫 app,而不是用於建立另一個自己的 framework,這的確是沒錯,不過就看用途,如果本來就需要客製成自己的 framework,似乎也不是優勢囉。

第四,明確的瀏覽器相容性,這裡說 Ext JS 6 從 IE 8 開始支援,但精確地說明,是 classic toolkit 從 IE 8 開始,如果是 modern toolkit 的話,則是 IE 11 開始。

而 Angular 2 日前宣佈目標是從 IE 9 開始支援
在 GitHub readme 頁面會看到支援狀態,有時候會有些變紅,算暫時 broken?

不過瀏覽器支援,還包括的 UI component,所以自己寫的,要自己維護瀏覽器相容性啊

第五,Integrated Tools,其實這應該反而是 Ext JS 的弱點,雖然自行包了很多的工具,但代表必須綁在這些開發環境上,Angular 2 在現在當下 tool 支援並不完整,包括 Syntax Highlight,但是 tool 會是越來越好的,只要 Angular 2 使用的人口夠多。

第六,No need to learn TypeScript or other tools,這個微妙啊,以前人們都說 Ext JS 學習曲線高,最近在看 Angular 2,覺得更是複雜啊,不過倒不是說要寫 TypeScript 不好,就學到目前的經驗,我是贊成採用 TypeScript,也包括了 ES6 語法,會複雜的原因是,看到一個之前沒用過的寫法,會不知道是 Angular 2 還是 TypeScript 還是 RxJS...,也就是新概念的東西一口氣太多了,導致學習曲線驚人。

隨手亂寫一些,還有想到一些在 Sencha 原本文章沒提到的幾點。

UI performance,這應該是蠻多人會提到的問題,Ext JS 用它的 UI component,為了做到許多功能,以及瀏覽器相容性、可客製 style,本身的效能可能會比自己刻的差,當然前提是自己要刻好啦XD,而瀏覽器相容性,也是有人提到 classic/modern toolkit 的差異其中一環,layout 用 JS 做還是 CSS 做,如果要舊 IE 可以 layout 正常,不用 JS 做很難啊,但是效能就當然比不上用 CSS 做的;客製 style 這邊,不知道 Ext JS 6 的表現如何,舊的,就是 Ext JS 3 啦,一個 button 要畫9宮格,讓 dom 暴增的問題,在 Ext JS 4 就改掉了,但是還有像 grid 啦,或是其他 component,這都是會影響效能的部份。

然後是那個 accessibility 啊,自己刻 UI component 的話,就要自己做好,在 Ext JS 可是已經刻好囉。

好吧,想到先寫這樣,如果 Angular 2 繼續學下去沒有爆炸的話,再來做其他比較。

沒有留言: