這兩年隨著 Ruby On Rails 爆紅而在各語言上都紛紛出現許多相應的輕量框架 (framework). 這些輕量框架由於存在的時間不長,他們開發的過程都是先從幫助使用者快速上手開始,接著考量 web 功能的完整性,再來才是進一步調整框架的效能. (make it work, make it work well, make it small)
在這篇文章的回覆裡看到一段敘述: "我自己都用 c/c++ 寫 apache handler 搞網站,速度.. 熟了,速度還出不來嗎?" 我必須說他講的沒錯,有沒有框架對高手可能沒差別,就算使用框架他也可以根據對語言 / 網站開發的理解自行修改,達到最好的效能。因為他對 web 開發的理解已經隨心所欲了 :-)
當然最後當你開發的服務使用的人多了,還是要回歸效能上來考量. 那麼為什麼這些框架卻能吸引這麼多人關注哩?
個人覺得長久以來的開發方式對比輕量框架開發,就好像要花數十年苦功才有成的中國功夫對比相對速成的空手道... 又或使用有關鍵字加亮的文字編輯器對比使用所見即所得的 Dreamweaver.
大家看事情的角度不見得相同,如同大家練功夫的目的不見得都是要靠功夫吃飯。對於 hobby web programmer 來說效能不是第一考量,易上手與開發的方便性才是吸引大批人的原因.
對以網頁開發維生的人而言,RoR 號稱 10 倍效能這點有好有壞。但無論如何廣告效果達到了; 對以興趣為主的開發者來說,能節省時間的方便開發工具卻代表了在他們休閒時間除了都花在設計自己感興趣的網站外,還可能空出了陪女朋友看電影的時間.
我從去年六月多就從 Oreilly OnLamp 網站的 Tutorial 中接觸過 RoR 了,個人覺得 RoR 的設計觀念相當紮實,但是進一步的使用上並未感覺有這麼好.
我認為 RoR 強調的約定高於配置 (Convention over Configuration) 的觀念很棒,但是在 RoR 中實在太多約定了,記不清的約定就變成了需要記憶的 Magic.
另外個人的原因之一是已經學會了 Python 語言後再看同為動態語言的 Ruby 語言並沒有吸引我的地方。要掌握好一門語言需要的不只是 20 分鐘的時間。同為動態語言,在程式的可讀性上 Python 語言好太多了.
而且 RoR 太多依賴特用語言 DSL (Domain Specific Language) 了,RHTML, RJS 等等神奇的樣板看起來並不那麼的易讀或可維護.
另外在學習的過程中我感覺學習 RoR 並不等同於在學習 Ruby 語言. 而要進一步深入使用框架,不瞭解語言是不可想像的.