因為工作的需要,必須在有限的時間內開發一個網站。這個網站需要具備使用者帳戶管理與認證的功能,並管理使用者上傳的資料,故與資料庫之間的關係密切。我也希望這個網站能盡量運用到 open source 的力量,所以基本的軟體平台將會以 Linux + Apache + MySQL 為主。網站開發工具方面,目前有三個選項:
- 純 PHP (不使用 PHP framework)
- CakePHP (或其他 PHP framework)
- Ruby on Rails (RoR)
就我自己以往的 web development 經驗來說,我大多只是利用 PHP 寫一些網頁小工具,最多就是開發規模不大的小網站。對於開發一個中型的網站來說,只使用純 PHP 開發是相當辛苦的,除了人力有限之外,未來還要面臨維護與後續擴充的問題。因此,我需要一個 framework,而現在的問題就是該選擇 PHP 的 framework (目前以 CakePHP 為首選) 或是目前當紅的 Ruby on Rails?對我來說,這兩者各有優劣:(我必須再強調,這是根據我個人情況來說 :)
CakePHP 的優點- 我比較熟悉 PHP 語言
- PHP 豐富的資源 (容易整合許多現有 PHP 的 open source 計畫)
- 成熟度高,品質已被廣為驗證 (許多之名網站都是用 PHP 打造的)
- 執行效率快 (相較之下,Ruby is slow!)
Ruby on Rails 的優點- Ruby 語言優勢 (如 OO),以及學習新語言的樂趣。
- 可能是明日之星 (迅速崛起,目前很火紅的 framework)
- Rails framework 肇始者 (比較忠於原味?)
- Ruby 社群團結,只有一個 RoR (相對之下,PHP 選擇太多,容易缺乏向心力)
學習新語言固然很有趣,但總是需要時間才可以達到某種深度。雖然 CakePHP 可算是 RoR clone,但並非 clone 就會比較遜色。有時候非但不會比較遜色,反而能夠截長補短。CakePHP 以成熟的 PHP 技術為基礎,廣納 Rails 的設計哲學與精神 (MVC, ActiveRecord, 等等),應該具備相當的實力才是。Ruby 面臨到的最大問題之一就是效率,效率問題牽扯到的層面很廣,包含根本的基礎語言本身。
David Heinemeier Hansson (RoR 之父) 也不穢言,為了解決效率問題,曾經將一段 Ruby 的程式法以 C 改寫。
Twitter 可能是目前以 RoR 開發的網站中的最大者,其開發者也
為 RoR 效率問題所苦。
以此來看,CakePHP 似乎是比較符合我的需求。
1 comment:
借轉載 謝謝提供寶貴的經驗
Post a Comment