李剛老師談Ruby語言的未來
原創【51CTO獨家專訪】李剛老師是經驗豐富的Java EE技術主管、IT技術培訓導師以及IT技術作者。邀請李剛老師來這次的Ruby講堂,是因為李剛老師的《Ruby on Rails敏捷開發***實踐》一書。近日,51CTO編輯阿菜通過電子郵件聯系到了李剛老師,請他就Ruby的語言特性、發展現狀以及未來的前景談論一二,下面整理交流信件原文如下:
51CTO記者:有人說Ruby簡單上手,但是環境的搭建相對比較麻煩,而且在有些平臺上不怎么穩定。您對Ruby學習、使用及環境搭建是怎么看的?
李剛老師:個人覺得:Ruby語言上手確實很簡單。它甚至不需要你像Java那樣定義類,它也不需要你像C那樣定義函數,你只要直接寫一條puts "Hello World!"語句就是最簡單的Hello World。
至于說環境搭建很麻煩,其實也不是,如果你只是安裝Ruby解釋器,只要登錄Ruby官方站點下載一個安裝文件進行安裝即可。從這個角度來說,搭建Ruby開發環境并不會比Java、PHP、C更復雜。當然,如果要安裝一些額外的框架和服務,可能需要花費一些時間和精力,不過總體來說,初學者只要能找到系統的、好的文檔和書籍,按照書中內容一步一步地走,搭建環境應該是很簡單的事情。
51CTO記者:據我所知,過去一年間Ruby社區的發展比較慢。而對于Ruby框架,很多人只聽說過Rails。您對Ruby社區的發展樂觀么?能否為我們介紹/推薦一些Ruby開發工具以及框架呢?
李剛老師:其實Ruby語言作為動態、腳本語言的代表,本身也是一門非常優秀的編程語言。通常我推薦每個程序員在靜態語言、動態語言都應該有所涉足,所謂他山之石,可以攻玉嘛。如果總是局限于一門編程語言,往往很難真正全面地掌握它,真正了解這門語言所存在的制約和不足。
對于Ruby而言,在國內影響較大的當然是Rails框架了,其實Ruby雖然不像Java擁有那么廣泛的開發群體,開源框架也沒有Java框架那么活躍。
但實際上僅就Ruby在Web領域的開發框架也不少,比如Merb,它是和Rails非常接近的框架。還有Camping,它是一個非常小巧的微框架(Microframework),使用ActiveRecord作為ORM解決方案;模板系統使用Markaby。通過使用Markaby作為模板語言,允許開發者使用純Ruby開發HTML模板。
個人覺得Merb的發展思路與Rails是不同的。Rails是一種“一站式”的解決方案,這既是Rails的一個優勢:開發者日常開發需要解決的問題,Rails基本上都提供了解決方案。
從某種曾度上來看,這也未嘗不是Rails的缺陷:開發者真正能自己選擇、控制的部分不多。
比如我只想用Rails的ActionController部分,這很難。從這個角度來看,我覺得Merb的思路對Rails應該有些啟發,Merb放棄成為一個大而全的解決方案,現階段,它可以整合Rails;如果未來有更好的解決方案,Merb也可與其整合。
其實廣大Ruby愛好者完全可以登錄http://rubyforge.org/softwaremap/trove_list.php看到大量Ruby語言開發的項目。
對于Ruby的未來,我還是比較有信心的。不管是Sun(現已被Oracle并購)的JRuby,還Microsoft的IronRuby,都體現了兩大軟件廠商對Ruby的信心,而且這兩個軟件廠商的支持必然讓Ruby更流行。
51CTO記者:在前幾個月的一次對腳本語言的調查中,Ruby在代碼可讀性和可維護性這一項得到了相當高的分數。從您對Ruby的了解來看,您認為是什么為Ruby帶來了相對較高的代碼可讀性和可維護性?
李剛老師:如果從代碼可讀性角度來看,我并不覺得Ruby有多大的優勢,而且個人覺得:一份程序的代碼可讀性只和程序員的素質和態度有關,和語言無關。也就是說,任何編程語言,如果讓有良好編程習慣、良好編程素質的程序員認真地寫,這份代碼總能保持較好的可讀性。再好的編程語言,也有可能寫出糟糕的源代碼。關于程序可讀性,我認為關鍵在于人。
當然,總體來說,高級語言的代碼可讀性總比低級語言的代碼可續行強。
51CTO記者:Web發展的趨勢是個人信息都向互聯網上流動,因此網站的安全性十分重要。前一陣子聽說Ruby解釋器及其API庫有眾多安全缺陷。對于Ruby網站的安全性,您有何見解?
李剛老師:這個問題前段時間也有看到。這種屬于語言本身帶來的有些缺陷,我們只能等待***的補丁。
51CTO記者:您認為在未來幾年的Web開發中,Ruby***的優勢在哪里(比如它的敏捷)?***的短板又在哪里(如:可擴展性不佳)?Ruby將會成為一個Web開發的主導語言么?或者,像是Twitter那樣的Ruby+Scala模式將會成為更好的趨勢?
李剛老師:對于Ruby語言來說,語言簡潔、語法隨意是它的一個很吸引人的地方。單純地從代碼量的角度來說,Ruby程序的代碼量就要小得多。
而且Ruby語言的語法非常隨意:就調用方法而言,你既可以用info,也可用info '張三',還可用info('張三' , 24)。
由于Ruby語法的簡潔性、隨意性,使得Ruby語言天生具有敏捷特征。
對于Ruby語言來說,目前***的短板在于開發群體不如Java、PHP開發群體活躍。Ruby語言在國內的活躍主要還是Rails帶動的,而且國內真正采用Ruby開發的公司非常有限,還需要時間來培養。
【編輯推薦】