為何我們選用 Meteor JS?
較早前有一位 HKUSPACE 的同學在 Facebook 問了我一個問題,他說他在看 Node.js,問我是否值得學習。當時我非常激動,在 Messenger 上一口氣回覆了幾十個 message,說了很多學習 JavaScript 的好處,舉了很多現在我們生活上運用到 JavaScript 的地方,也解釋了為何當時我向 HKUSPACE 的 Mobile and Web Applications Development 課程提議放棄教授 PHP 和 MySQL,改為教授 JavaScript 和相關的 Framework(結果如何不在此詳述)。
近年我們也在主要的 application 開發轉用全 JavaScript 編程,近年有很多JavaScript Framework,而當中我們選用了 Meteor,她有以下的好處。
1. 開發時間短
Meteor 是一個 Full Stack Development 的 Framework,意思是你可以同時處理前端、後端和數據,Developer 只要將精力放在開發目標便可,Meteor 會將 client 的 JS, server 的 Node.js 和 MongoDB 的接駁處理好,基本上一個 MVP 可以在三四週內完成,正如當時我們開發 LightMatch.io 的 prototype 也只花了十數小時。
2. 只用一種語言編程
在沒有 Node.js 之前,基本上是前端和後端開發要用不同的編程語語,例如前端是 JavaScript,後端是 PHP/Ruby/Java,再要用 SQL 處理 Database。Meteor 卻只用 JavaScript, 只要學習一種語言便可以進行開發。亦因為這樣,可以隨時選用如 AngluarJS 或 ReactJS 作前端開發(個人推薦 ReactJS)。
3. 容易學習
因為 JavaScript 就是容易學,若是本身對 JavaScript 有認識的 developer, 初學者可能花 15 分鐘已可做出簡單的 Meteor app。
4. 實時 (Real-time) 開發
Meteor 是一套 reactive programming 的 Framework,當你在 app 的 database 更改 data 的時候,你會發覺它的前端會即時跟著改變,而且不同用戶的前端也會同時改變。這是近年大型應用如 Facebook, Twitter 等用到的技巧。因為是實時更新,尤其合適多人同時使用的工具、遊戲和平台。
5. 大量 Packages
有沒有想過加一個 package 就可以完成整個 user system?多加一個 package 更可以完成 Facebook login?用Meteor 便可以,甚至乎加一個 package 可以為應用多加一個 blog system。因為是 Node.js, 不單可以加入 Meteor 的 package,亦可隨時用 NPM 的 package。
6. Web, iOS, Android App
因為是全 JavaScript, Meteor 已為 developer 準備好 Cordova 的接駁,而且有著 native device 的 API,只要簡單的 settings, 可以直接將 web app 轉為 iOS 或 Android 的 app。
7. 很大的 Community
只要 Google 一下 Meteor,你會找到很多相關的討論和教學文章,而且在 GitHub 上 Meteor 已是最多 Star 的 application framework
8. 未來的開發方式
市場對 Full Stack Development 的需求越來越大,而且未來的 applications 基本上都會是多用戶實時共建的平台,Meteor 確是不二之選。Creativeworks 將運用 Meteor 開發更多應用程式,也會不時發放更多有關 Meteor 的討論和教學。
另外,我們為令香港將來有更多 full-stack 專才,正在招聘 Meteor Developer (Part-time),歡迎來自電腦或資訊系統等相關學科的在校學生應徵,詳情請閱此 Meter Developer (part-time) 發佈。