2012年12月9日 星期日

2012 年 GWT 調查報告中文摘要

原始報告請到 https://vaadin.com/gwt/report-2012 下載。雖然 Vaadin 有收集 EMail 之嫌 [炸],但不可否認這份報告實在做的非常有愛,值得給他 EMail 帳號以資鼓勵。另,本篇摘要翻的很隨性,只保證數據沒有打錯,其他就...... [毆飛]


GWT 在 2012 年有許多令人興奮的內容、也改變了未來發展 GWT 的方式。 在產品與社群前所未有地茁壯的同時,大家想問:「阿下一步咧?」

Google 在六月的時候把 GWT 變得更開放。 為了未來的發展,成立了 GWT 指導委員會, 裡頭有 Vaadin、Google、Sencha、RedHat 等等。 我們開始設法收集大家拿 GWT 作啥、想許什麼願望。

這個 GWT 研究是由 Vaadin 以及一堆人努力而成, 在這份報告裡頭也會看到他們的意見。

在回收的一千三百多份問卷當中,都回答了超過三十個以上的問題, 我們相信這會是最完整的調查報告。

Section 1:誰在用、怎麼用?

開發什麼系統?

  • 80%:商業程式
  • 11%:content-rich 網站
  • 1.5%:Portlet
  • 1%:遊戲
  • 7%:其他

給誰用?

  • 35%:內部自己用
  • 19%:免費的網站
  • 46%:付錢的網站

總結:大家對這個結果(如此健康、而且一堆是拿來賺錢)感到驚訝...... Orz

成員組成

一個 GWT Team 平均 12 個人,組成成份大概是(單位:人):

  • 3.7:後端工程師
  • 2.9:前端工程師
  • 2.5:測試人員
  • 1.3:PM(Project 或是 Product 都可以)
  • 0.9:設計師
  • 1:死星上(?)的其他人

地區分佈

  • 54%:歐洲
  • 29%:北美
  • 9%:亞洲
  • 5%:南美
  • 2%:澳洲
  • 1%:非洲

GWT 不是從歐洲來的,不過那兒的社群的確比較活躍。

程式有多大?

沒有壓縮、obfuscate 的情況下的 JavaScript 檔大小:

  • 10%:少於 100K
  • 12%:100K~300K
  • 12%:300K~500K
  • 16%:500K~1M
  • 16%:1M~2M
  • 22%:2M~10M
  • 12%:大於 10M

總結:想要開發又大又能維護的系統? 找 GWT 就對了

support device

  • 98.1%:Desktop
  • 36.1%:Tablet
  • 25.7%:Phone
  • 2.1%:其他

在美國有 46% 的 app 支援 tablet,在歐洲只有 34%。

用什麼在 mobile 上開發?

  • 42%:mGWT
  • 55%:PhoneGap(可包含 GWT-phonegap)
  • 30%:其他

用哪種方法建立 UI

  • 58.62%:UiBinder
  • 14.39%:GWT Designer
  • 73.61%:純手工 Java 派

怎麼套 MVP

  • 27%:用 GWT 2.4
  • 27%:自己作
  • 19%:沒有!
  • 10%:GWT-Platform
  • 5%:GWT-MVP
  • 7%:其他

怎麼測試 UI?

  • 48%:手動測試
  • 19%:Selenium
  • 13%:GWTTestCase
  • 10%:沒有這種事
  • 8%:其他

總結:三分之二的人不測 or 不自動化測試,只有三分之一的人進行自動化測試。嗯... GWT 可能針對這個努力一下。

譯註:這邊有個 typo,「Jucikito」應該是「Jukito」

用什麼 Extension?

  • 42%:UI 功能(像 GWT-dnd、GWT-fx)
  • 35%:系統架構(像 gin、GWT-presenter)
  • 26%:data access(像 GWT-rpc、GWT-dispatch)
  • 23%:Access to service(像 Google API、GWT-bootstrap)
  • 15%:系統功能(像 GWT-platform)
  • 6%:資料處理(像 gilead)
  • 13%:其他
  • 19%:我們很純的,沒有用!

有用 JavaScript 嗎?

  • 43.58%:JavaScript?謝謝再聯絡...
  • 25.21%:jQuery
  • 16.34%:Rich Text Editor
  • 25.60:其他

跟後端通訊方式

  • 59.28%:GWT RPC
  • 10.25%:RequestBuilder / REST
  • 10.25%:RequestFactory
  • 7.63%:自訂
  • 12%:其他

Ray:GWT RPC 第一名不意外,很容易就可以在既有 Java 當中用,科科。

Daniel:用 phonegap 的話,RPC 就不太妙;用 RequestFactory / AutoBeans 會比較好。

Section 2:GWT 優缺點

用起來很給力嗎?

  • 16.13%:超好的你都不知道
  • 44.26%:很好很強大
  • 31.13%:OK 的啦
  • 6.75%:不怎麼樣
  • 1.73%:完全不給力量,再也不要用了

總結:超過六成的人覺得 GWT 很給力

文件怎麼樣?

  • 59.71%:線上文件很好阿...
  • 33.74%:不行,文件要加強
  • 6.55%:有很多書可以看

想詰譙什麼?

  • 49%:compile 時間
  • 34%:Widget 不夠好
  • 27%:Dev-mode 的 refresh 時間
  • 18%:application 外觀問題
  • 13%:開使用 GWT 是困難的
  • 9%:extensions 不夠好
  • 8%:殺 bug 的速度不夠快
  • 8%:程式碼大小
  • 6%:相關的開發工具
  • 5%:執行時候的速度不佳
  • 5%:模組化設計

專案大小與 compile 時間的關係

還好我們有順便問一些跟 compile 有關的問題。 以沒有壓縮、obfuscate 的 JavaScript 檔案大小來分類,統計 compile 時間的分佈。 百分比依序為:

  • 3 分鐘以內
  • 3~10 分鐘
  • 10~30 分鐘
  • 超過 30 分鐘

結果如下:

  • 少於 100K(7%):63%、29%、6%、2%
  • 100K~300K(12%):46%、42%、10%、3%
  • 300K~500K(12%):36%、52%、9%、1%
  • 500K~1M(16%):36%、52%、9%、1%
  • 1M~2M(16%):26%、51%、20%、4%
  • 2M~10M(22%):19%、51%、24%、6%
  • 大於 10M(12%):13%、41%、33%、13%

Ray:GWT compiler 有三個步驟,在 Google 會用 cluster 跑第二個步驟。 我們正在讓下一版的 GWT compile 速度變快。

譯註:「少於 100K」的數據跟 p.8 不一樣... 不過 p.8 加起來才會 100%

用 Dev-mode 還是 Super Dev-mode?

  • 80.21%:Dev Mode
  • 3.92%:Super Dev-Mode
  • 7.01%:兩個都用
  • 4.30%:兩個都沒用
  • 4.52%:孟獲孟獲孟獲(不懂問題是啥)

總結:好 SuperDevMode 不用嗎?

GWT 哪裡好?

  • 60%:跨 browser(不用搞 JavaScript)
  • 25%:執行起來很快
  • 21%:模組化
  • 19%:相關開發工具
  • 15%:殺 bug 效率很好
  • 9%:可靠
  • 8%:好用
  • 8%:Widget 很夠用
  • 8%:學 GWT 很容易
  • 7%:ExtDev-mode refresh time(譯註:看不懂)
  • 4%:程式碼大小

用哪個版本的 GWT?

  • 1.13%:2.0 以前
  • 1.36%:2.0
  • 1.66%:2.1
  • 2.41%:2.2
  • 7.61%:2.3
  • 59.34%:2.4
  • 25%:2.5

有回報過 GWT 的 bug 嗎?

  • 66.29%:沒有(包含沒遇到)
  • 20.17%:有,但是沒有修 or 很久之後才修
  • 7.31%:有些修了,通常蠻快的
  • 6.24%:有,而且都修了

Section 3:GWT 接下來要?

下個 project 會用 GWT 嗎?

  • 88.48%:會
  • 11.52%:不會

Bhaskar:Google 有一卡車 GWT 的 application,其中有些是上百萬行的程式碼,都還在開發中。 我們很衷心的希望 GWT 保持健康。身為指導委員會的一員,我們計畫持續地改善 GWT。

Joonas:Vaadin 已經 12 歲了,後五年改用 GWT,並且將 GWT 直接整合進 Vaadin 7 當中。

不用 GWT 那要用啥?

  • 38%:JavaScript + REST
  • 29%:ExtGWT / GXT
  • 28%:Spring MVC
  • 26%:Vaadin
  • 19%:Dart
  • 17%:SmartGWT
  • 16%:JSF
  • 16%:Play!
  • 16%:其他會 compile 成 JavaScript 的語言
  • 8%:Errai
  • 4%:ZK

Joonas:Vaadin、GXT、SmartGWT 跟 Errai 應該也算 GWT 的範圍。

指導委員會主導 GWT 後會發生啥事?

  • 50%:講這些都還太早啦
  • 38%:GWT 還會活好一陣子(如果你寫了 10 萬行程式碼,不會說變就變)
  • 36%:GWT 會變更好
  • 18%:新的管家讓 GWT 更蓬勃發展(譯註:不懂跟上一個有啥差別?)
  • 12%:跟之前一樣
  • 8%:Dart 起飛之後 GWT 就掰掰了
  • 4%:GWT 早就死了

總結:我們是希望像脫離 IBM 的 Eclipse 啦...

關於受訪者

受訪者職位

  • 45.13%:開發人員
  • 21.56%:小隊長
  • 8.42%:Project/Product Manager 或 Scrum Master
  • 21.56%:軟體架構師
  • 0.62%:設計師
  • 3.25%:其他

GWT 經驗

  • 13.09%:不到一年
  • 47.96%:1 到 3 年
  • 38.95%:3 年以上

沒有留言:

張貼留言