其實管你黑貓白貓,能抓到老鼠的就是好貓。以很個人主觀的經驗來分享:為何選擇這樣組合的環境,以及為什麼會去用Ruby on Rails (RoR)。
作業系統選擇
其實只是個人習慣、方便、安全、效能之間的權衡做取捨。RoR可在各作業系統執行,但其中的一些套件在windows環境下就比較麻煩。Linux各新版本對Ruby的環境都有相當好的支援,最多只是套件的名稱稍微不同,但都可很快將RoR所需的環境準備好。
系統管理與程式
在Job Descriptions for System Administrators: Core Job Descriptions中,覺得有關系統管理的議題,就是希望把例常而重覆的動作,可以自動化或程式化,雖然各種程式環境都可做到,就看能以最少的力氣,效能還不錯的條件入手;慢慢地,從 command line 下編寫 script 及下指令,轉而逐漸要從 web 界面下也可以執行的趨勢。
就個人經驗而言,對於從非coding起家的系統管理者,從零開始的程式是不容易,所以只能從網路上別人寫好的 script 拿來用,常用的有 CGI Resource Index 或 PHP Resource Index。
有關Perl PHP之考量
畢竟別人寫的無法完全合自己所需,雖然 Perl 可以在 command line 的環境下強而有力,但要用 Perl 來寫個有架構的網頁程式,就真的蠻麻煩;儘管自己試了以 CGI::Application 再加上 HTML::Template 的 module ,結果是寫了就不會很很再看也懶著改。
PHP 雖也像 Perl 有眾多的 module 或 library,但要在 command line 上執行 PHP 來作系統管理,想起來就有點不倫不類。(也許是偏見)
但最主要的原因是 Perl 及 PHP 不是那麼容易去寫一個有架構的 web 界面環境;各程式語言的語法及敘述,像「點」;寫成一個script或一小段可運作的程式,像「線」;而要寫成一個可以登入登出且存取資料庫動作的網站程式,像「面」。
為何Ruby on Rails (RoR)
然而,在對 Ruby 沒有接觸的情形下,看到令人驚豔的 Creating a weblog in 15 minutes ,才發現就是這個東西,可以直接從「面」來切入,把許多怎麼與資料庫運作等細節,都包給RoR給作掉了。
所以RoR的學習歷程是,先做出了可運作的雛型後,然後才去找想要去修改的細節是什麼,然後才要想辦法找出 Ruby 的語法是要怎麼寫;竟然是面、線、點的流程進行著。
本系列的定位
市面上RoR的書籍逐漸出版,網路上的RoR也不乏學習的資料,但例子不是稍微複雜,就是零碎些,總要費點心力才能用到自己的需要上;所以將在此處分享的並不會完整介紹RoR,也不會強調RoR有什麼特色功能,只以很個人的經驗來介紹及實作出可用的小程式,再加上一些少許與系統管理的互動例子。
基本上不管邦友們是用windows/*nix/*bsd或Ubuntu或Fedora或任何其他可裝上RoR的環境,甚至也可用PHP或.Net任何程式或其他framework來實作同樣的功能,看看RoR是不是真的比較省力;所以命名中有所謂的簡單任務,是指跟其他工具來比較,若要做到同樣的功能,是不是就真的比較簡單。
由於不是靠程式吃飯,所以程式的寫法或展示風格,只是以可以運作的最低標準來呈獻,另外也不會有多好看的CSS的佈局或Ajax的炫麗功能,所以可改進之處也請邦友們不吝指正。