ruby 主要用于做web,如使用 ruby on rails
優點:
1 采用虛拟機實作跨平台
2 支援垃圾回收
3 腳本語言,靈活,容易擴充
4 支援面向對象
5 基于腳本語言,易于同linux shell進行互動
6 擁有功能強大和完善的标準類庫
7 擁有良好的互動式運作環境:irb,友善進行開發和調試
8 語言内置對規則表達式(regular express)的支援
9 直覺的block文法來實作循環周遊和函數回調
10 開放源代碼
11 支援異常機制
12 同perl和python相比更容易用c語言擴充(來自ruby官方網站)
13 支援動态載入類庫
14 因為是解釋型語言,不需要編譯,修改後馬上就可以執行
15 擁有一個完善的web開發架構rails
缺點
1 性能不如純靜态編譯語言,例如c,但可以通過用c語言來擴充來解決
2 完全沒有類型檢查,靈活但容易隐藏潛在的問題
3 使用module來實作多重繼承,不如java所采用的接口(interface)方式清晰,而且由于沒有嚴格的類型檢查,是以架構層的設計無法對實作有很嚴格的限制
4 沒有很完善的開發,重構的工具,雖然現在eclipse已經提供ruby的開發插件,但還沒有實作重構,跳轉和自動代碼生成等很有用的功能,主要原因是由于ruby支援動态類型
5 依然保留部分非面向對象的文法,例如全局變量,全局方法
6 允許在擴充代碼中随意替換現有類的方法定義或變量,非常靈活,但可能會因為錯誤地修改了架構邏輯而引發難以發現的錯誤,但可以用freeze方法來組織被修改
7 不支援真正的多線程,多線程環境是通過在虛拟機環境中模拟出來的,不能充分發揮多cpu的功能,如果一個線程在執行底層調用被block住則整個應用程式也被block住。
8 對unicode和多國語言的支援不好(來自martin上海演講實錄3:細數ruby語言優缺點)