2006年11月29日 星期三

Ruby on Rails觀察(負面想法,非喜勿視)

Ruby on Rails實在很紅,而且它標誌本來就是紅的。

前一陣子花了好一陣子時間研究了目前紅透半邊天的Ruby on Rails(ROR)和CakePHP,這種目前稱之為敏捷式的開發的網站程式框架。

我只能說觀念很好,但可能對我來說太「高階」了,我是「低階」的網站程式設計師。我並不反對這樣的東西,程式框架的想法和實作出來的東西,都是強調程式設計師可以節省開發的時間和人力,開發創新的產品。 我有幾個不同的看法,對這些程式框架作一些反向的思考:

1.程式框架幾乎等同另一套程式語言
Ruby和PHP或Java(Ruby和Java比較接近)都是各自有各自邏輯和語法的程式語言,我們程式設計師其實花了很長的時間學習他們,然後用它們,要靈活運用需要花很長的時間研究和實作,這不容易。突然很多程式框架出現了,但每個程式框架有它設計的思維和邏輯,不見得是馬上可以理解或運用得好的。CakePHP是用PHP語言的,所以會PHP語言的設計師,還學得來學得快,那ROR呢?重學一套新程式語言和框架?另一個學習的曲線浮現了,又有新的玩意要學,等你花了不少的時間學到靈活運用之後,而接下來又是下一個問題。

2.程式框架要用在那?
獨立的一支小程式?一個有創意的專案?大型企業專案?
獨立的小程式,用你學過的ASP, PHP, JSP,加上一些現成的函式庫或類別庫,馬上就可以輕鬆解決。沒有物件導向化?沒有mvc?是啊,很直觀馬上三兩下寫完的小程式,需要花這麼多腦細胞嗎?

一個有創意的專案,那也得先有創意再說呢。千萬不要clone來clone去的,那一點創意都沒有。況且,你要找到和你一樣,對這個程式框架熟悉的工程師,那是一件比找對這個程式語言熟悉的人更難上十倍的事。要不然請個人,然後慢慢教他到會,教育訓練成本也是相當驚人的。

大型企業專案,同上。找不到會的人吧,除非你肯為了完成偉大的夢想,以一抵十抵百的來作。

3.時機未到,炒作過度
假使你的老板是聰明人,發現你開始號稱只要Java語言開發1/10的時間的ROR,來作你們公司的案子,他一定不會放過你多出來的9/10。把你的工作量慢慢調整成10倍,而薪水不太可能調整成10倍。以上可能純屬玩笑,我個人覺得應該大部份的老板看到炒作的新聞後,開始要求工程師自我學習之外,然後把工作量逐漸加倍的可能性,會是滿高的…

其實根據我這幾個月的觀察,媒體的炒作程度遠遠超過技術論壇中的熱烈程度。市場的環境還未成熟,全世界能裝ROR的主機商大概還不超過100家(100家是有些高估了…),台灣0家,中國1家(之前有2家,1家不想作了),以ROR開發的所謂ASP或Software as a Service(SaaS)的服務,扣掉37 Signals(Rails原創)之後,大概也沒剩幾家。

「Ruby on Rails = Web 2.0」其實有些穿鑿附會,也沒那麼神奇。像Flickr, Digg, Wikipedia, YouTube…那一個不是用LAMP搞起來的。

結語
其實我個人十分肯定網站程式框架的價值。在我專心實作過Ruby on Rails書上的例子「Agile Web Development with Rails」完成那個兩光而搞不太清楚許多細節的購物車,感覺非常的好,世界很美好…甚至連一句常常令人抓狂的SQL指令都沒有。

今天如果我是能在車庫裡面,然後作出核子反應爐的那種程度的國中生,或許我會考慮用組合語言來寫網頁,因為這樣非常低階,而且還沒有人幹過這檔子事。但我覺得我只會在車庫裡上網路找找合適的函式庫和類別庫的用法,看看大師寫的教學和經驗,或是爬爬技術討論區的文章。那我還是需要PHP程式語言+SQL+網路,這才是現實世界的美好…