本著自許是一個無怨無悔無可奈何的 GWT programmer,反正唬爛不要錢(也應該不犯法),就來無病呻吟一下 GWT 的未來。
先來講講「GWT 是不是沒有繼續維護開發,逐漸凋零邁向死亡?」,我想只要看一下 GWT 的 Google Code,答案就很明顯了。寫這篇文章時,Activity 是 High、這兩天的 Updates 有 3x 筆紀錄(雖然都是 issue)。最近的一次 source code 修改是 2012.01.05 的 r10825,理論上就是 Ray Cromwell 在 Google+ 的這篇文章——一個打算「後伊去」的 project 幹麼在乎這種又不是 bug 的 performance 問題?
〈GWT 與 Dart〉文末提到的「Google 裡重要的 project 每天都依賴著 GWT 來開發」,Ray Cromwell 也在 Google+ 做了列表(然後那個憤怒鳥也算進 Google 產品是怎樣... [炸]),其中 AdSense、AdWords 在 Google 的地位就不用說了,Blogger、Google Groups、以及已經卡進 Chrome 的 Chrome Webstore 雖然(還)不是金母雞,但(即使在台灣)也是有名有號有知名度的 project。
當然,以 Google 的財力(雖然 App Engine 開始瘋狂搶錢)、技術能力
如果撇開「庸才跟笨蛋才喜歡用 Java」之類的論點,完全跳過 Java,純看 GWT 提供的功能,基礎的 DOM 操作、AJAX、cross-browser 自然不是問題,進階一點的 CSS image sprites、CSS 與 JS 的最佳化、code split / dynamic load 也都有。已經有支援部份 HTML5(client storage、canvas、AV)、對付大量資料呈現也有 Cell Widget 解決效能問題、可以用 xml 描述 UI layout、有接近 WYSIWYG 的 UI editor、還有某些 SASS/LESS 才能享用的 CSS 撰寫方式...... (想看有圖有真相的介紹,可以參考〈GWT is Smarter Than You〉這份投影片)
說真的,要問我期不期待 GWT 2.5 還是 GWT 3.0,當然期待。但原因並不是希望下一個版本解決了什麼(已知)問題,而是靠它來知道「原來網頁開發還有這些問題可以解決」(謎之聲:果然是技術程度落後的傢伙)。所以 2.5 好像沒啥動靜,也沒那麼奇怪——一般人(請容許我這個庸才自稱一般人)想得到的大概都有了,並不需要急著推出新功能
來說說 Dart 吧!
我可以理解為甚麼 Google 推出 or 主導 Dart 之後,很多人看淡 GWT 的前途。Dart 的確可能會拉走不少 GWT 的支持者——尤其是本來就不喜歡 Java 的人。問題是,等到 Dart 的 spec 發展成熟、對應的 compiler(browser 以及 JS)也最佳化完畢、語言的 utility 也備齊,或許才需要開始考慮 GWT 是不是會受 Dart 擠壓、以至於死亡吧?
但更根本的問題是「設計 Dart / GWT 的出發點為何?」Dart 的出發點是取代 browser 上的 JS; GWT 的出發點是讓 Java programmer 不用切換語言跟思維就可以通包網頁開發所需技術。以這個論點為基礎,那 GWT 跟 Dart 根本不是「你死我活」的互斥關係
GWT 與其擔心 Dart 亂飛,還不如擔心 Oracle 神經病發。同理,Dart 在長大的同時,JS(ECMAScript)難道就呆呆的等著被取代?你想要 JS 去跟 IE6 作伴,M$、Firefox...... 可不一定會同意。
總結就是:我認為 GWT 的未來會一直來,反正就算 Google 不愛 GWT 了,大不了自己去維護 GWT 的 source code...... [核爆]
報告完畢!