Ruby概述
Ruby是一種功能強大的面向對象的腳本語言,她可以使您方便快捷地進行面向對象編程。有時使用像Smalltalk、Eiffel或C++這樣正式的面向對象語言來開發一些小項目顯得有點"小題大作",而Ruby剛好可以滿足這些面向對象編程的需求。當然了,您也可以使用Ruby進行普通的面向過程編程。
Ruby的文本處理能力極強,與Perl不分伯仲。同時,Ruby的語法簡單,還有異常處理以及迭代器等構造,使編程變得簡單明了。
簡而言之,您可以像使用Perl一樣方便快捷地進行面向對象的開發。
Ruby的特長
Ruby簡析
Ruby是一種完整的純面向對象語言(OOL)。這就是說所有的數據在Ruby里面都是對象,不是像Python或Perl那樣,而是像Smalltalk那樣的純面向對象(沒有什么例外)。比如:在Ruby里面,數字1是類Fixnum的一個實例。
Ruby精心地設計了它的面向對象特性,使之完整并且開放允許改進。比如:Ruby有在運行時可以向類里,甚至能夠向實例里添加方法的能力。所以,如果有需要,某個類的一個實例可以表現得和同一個類的其他實例不一樣。
Ruby“故意地”使用單繼承機制,但是它有模塊(Modules)的概念(在Object-C里面叫Categories)。模塊是方法的集合,它是一個比多重繼承更清晰的解決方案。多重繼承很復雜,比起單繼承來它用得不是很經常。(不要在這里提起C++,C++因為強類型機制使得它沒有其他選擇。)
Ruby有真正的閉包機制,不僅僅是匿名函數,而且還實現了變量綁定。
Ruby在它的特性中加入了程序塊(blocks)的概念(包含在"{......}"或者"do.....end"之間的代碼),這些程序塊可以傳遞給方法,或者轉換成閉包。
Ruby擁有一個真正的“標記-清除”(mark and sweep)式的垃圾收集器,它對所有Ruby對象起作用。你不需要為維護擴展庫中的引用記數擔心。
在Ruby中寫C語言擴展比Perl或者Python中更容易,這部分是因為垃圾收集器的原因,部分是因為它好用的擴展API接口。Ruby中也有SWIG接口。
我們使用Ruby中的整數時可以不用考慮它的內部實現,Ruby中有小整數(Fixnum類的實例)和大整數(Bignum),但是我們不用擔心現在正在使用的是那一個。如果一個數字足夠小,它就是Fixnum,否則它就是Bignum了。這個轉化是自動完成的。
Ruby不需要變量聲明。它用一個簡單的命名規則來表示各個變量的作用范圍。例子:簡單的 'var' = 局部變量,'@var' = 實例變量,'$var' = 全局變量。所有我們也沒有必要用一個'self.'來表示實例成員了。如果操作系統允許,Ruby可以動態的加載擴展庫。
Ruby擁有獨立于操作系統的線程機制。所以,在任何能運行Ruby的平臺上你都可以擁有多線程,不管那個平臺是否支持多線程,甚至在MS-DOS上面也行:-)
Ruby是高度可移植的,它大部分是在Linux上開發的,但是可以在很多類型的Unix, Dos, Windows95/98/Me/NT/2000/XP, MacOS, BeOS, OS/2等系統上運行。
松本行弘"Matz"(Matsumoto Yukihiro)是Ruby語言的發明人,他從1993年起便開始著手Ruby的研發工作。他一直想發明一種語言,使你既能進行高效開發又能享受編程的快樂。1993年2月24日Ruby誕生了,1995年12月Matz推出了Ruby的第一個版本Ruby 0.95。不久Ruby便憑借其獨特的魅力橫掃日本,相信在不久的將來,Ruby將走向世界。
原文轉自:http://www.anti-gravitydesign.com