評估Ruby


原文:EvaluatingRuby    ruby        2006年5月10日            Bliki 索引

既然你讀到這篇文字,我猜你已經知道人們對Ruby這門編程語言吵得不可開交了,尤其是對Rails這個Web應用開發框架更是吵得一塌糊塗。有人說它是編程的未來,前途光明;有人說它是旁門左道,危險暗淡。

我是在幾年前開始用Ruby的,當時用本主義引起了我的興趣,Ruby很快成爲我的首選腳本語言。隨後,它逐漸接管了我個人網站大量的生成與維護工作——尤其是我的Bliki。這門語言真讓我喜歡。

我自己喜歡用Ruby,我們的客戶就也應該用嗎——兩件事距離甚遠。但我們可以根據其特性評估它是否適合用來做客戶的項目,這就引起對後邊一堆東西好壞利弊的爭論:動態類型、慣例重於配置(convention over configuration)、進程 VS 線程,等等。這些討論有幫助,但我對此持審慎態度,因爲只憑空爭論無法判斷的事情太多了——有些東西在高爾夫球課上聽起來頭頭是道,但它們致使客戶項目進展變慢讓我們多投入的時間難道還少嗎?所以,我做判斷傾向於依據現實經驗——要找到人們在主流環境下交付項目的跟蹤記錄,還有使用Ruby開發的記錄。

這種記錄可以從知名作者那兒獲得一些,他們很多都是在別的領域造詣頗深的人,卻被Ruby所吸引,因爲Ruby讓他們覺得如虎添翼,這些人包括“用本雙雄”(PragDave//ndy)、Justin GehtlandBruce TateDavid Geary……這個名單足以證明Ruby值得一瞧了。但也許我喜歡偏袒自家人吧,一直以來我首先要聽取的是ThoughtWorker們的說法,他們做過的事我瞭解,他們的項目我拿來做驗覈也更方便。

儘管“喫螃蟹”的歷史剛開始不久,我已經可以根據好幾個項目的經驗做分析了,到目前爲之,分析結果力挺Ruby。每次我問他們:“你覺得用Ruby 比用Java或C#生產力有顯著提高嗎?”我聽到的無一例外都是一句有力的肯定:“是的!”這已足夠讓我開始斷言:如果你的項目合適,應該給Ruby個機會。當然了,我沒把什麼算“合適”這個小問題說死。

這個問題要說一下,儘管一些項目(我不妨稱之爲典型的Web項目)用Rails做非常合適,被普遍認爲是Rails絕佳的用武之地,但除此之外,Ruby的地盤還包括一些別的領土:
  • 用戶通過觸摸屏直接控制的亭內式設備,其UI是一個非常AJAX化的Web前端,Rails已經在那兒派上用場了。但除了UI,還包括各種通訊:硬件設備、加密、一些偏門兒的網絡部件等——所有這些都基於一個類似Linux的應用。
  • 大量SQL操作的批處理——用Ruby描述清楚處理需求,得到的Ruby表達式被轉換爲SQL執行實際操作,再輔以少量的Rails功能實現前端——這種情況也不屬於典型的Rails應用。
  • 有的項目在許多方面都與標準Web應用相似,但還包括大量其他方面的工作:從不同格式文件中提取並處理數據、(用Ploticus)繪製非常花哨的圖片和表格。
參與過上述幾種應用的人說,要是不選Ruby而用別的平臺,他們搞定功能創造價值的速度不會那麼快。聽過之後我就想,如果你正在追求更快的交付速度和更強的生產力,你應該認真考查一下Ruby。

不過還有一些不確定的問題,尤其是到了項目後期強化階段——特別出現團隊人員變動的時候——會不會發生麻煩現在下結論還爲時尚早。有人認爲Ruby的動態特性以及工具的缺乏會導致問題,也有人認爲Ruby一貫鼓勵簡單性,能彌補那些短處。這本來就是個無法準確預測的問題,只能等我掌握了更多材料才能告訴你。

Cedric Beust認爲,儘管Ruby是一個出衆的平臺,但可能無法成爲主流,他的論析入木三分,我完全理解他這個觀點——和許多前Smalltalk開發者一樣,我老早就明白優秀高產的平臺可能成不了當前主流企業應用的首選。如果對你而言,重要的是隻採用主流平臺,那麼你還得靜觀其變。不過,不囿於主流而獲成功的案例也非常多。

還有許多項目,開發的生產率並不是首要的,取而代之的是政治及其他溝通上的因素。那樣的話,Ruby的優勢就被大大削減了。

總的來說,瞭解了這些來自我們值得信賴的同事們的切身經驗,我對在注重速度、響應性以及生產力的嚴肅工作中使用Ruby持越來越肯定的態度。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章