一言以蔽之,Ruby是一種
語法簡單且功能強大的面向對象的腳本語言。與perl一樣,Ruby的文本處理功能十分強大。當然了它的功能遠不止于此,您還可以使用它來開發實用的服務器軟件。
Ruby博采眾長,吸收了眾多語言的優點,卻又別具一格。
Ruby的優點主要體現在以下幾個方面。
它的語法簡單 它具有普通的面向對象功能(類、方法調用等) 它還具有特殊的面向對象功能(Mix-in、特殊方法等) 可重載操作符 具有異常處理功能 調用帶塊方法(迭代器)和閉包 垃圾回收器 動態載入(取決于系統架構) 可移植性。它可以運行在大部分的UNIX、DOS和Mac上 1.2 為什么取名叫Ruby呢?松本先生曾經在[ruby-talk:00394][英譯稿](June 11, 1999)中講過取名的經過。
據說當初松本先生一直琢磨著要給這個新語言取個像Perl這樣的寶石名字,正好有個同事的誕生石是Ruby,因此就取名叫Ruby了。
后來發現Ruby和Perl真的很投緣,例如pearl誕生石代表6月,而ruby誕生石則代表7月。還有pearl的字體大小是5pt,而ruby則是5.5pt等等。因此松本先生覺得Ruby這個名字很合適,并努力使其成為比Perl更新更好的腳本語言。
松本先生正期待著Ruby取代Perl的那一天早點到來(^^)。
1.3 請介紹一下Ruby的誕生過程松本先生曾經在[ruby-talk:00382][英譯稿](June 4, 1999)中介紹過Ruby的誕生過程。[ruby-list:15997]修改了Ruby的誕生時間。
Ruby誕生于1993年2月24日。那天我和同事們聊了聊面向對象語言的可能性問題。我了解Perl(Perl4而非Perl5),但我不喜歡它身上的那股玩具味兒(現在也是如此)。面向對象的腳本語言的前途一片光明。
我覺得Python不能算作真正的面向對象語言,因為它的面向對象特性好像是后加進去的一樣。15年來我一直為編程語言而癡狂,我熱衷于面向對象編程,但卻沒有找到一款真正意義上的面向對象的腳本語言。
于是我下定決心自己來開發一個。經過幾個月的努力,解釋器終于開發成功。然后我又添加了一些自己夢寐以求的東西,如迭代器、異常處理、垃圾回收等。
后來我又采用類庫方式添加了Perl的特性。1995年12月,我在日本國內的新聞組上發布了Ruby 0.95版本。
接下來我創建了郵件列表和網站。此后,大家在郵件列表中聊得酣暢淋漓。時至今日,第一個郵件列表中已經積累了14789封郵件。
Ruby 1.0發布于1996年12月,1.1發布于1997年8月。1998年12月,我又發布了安定版1.2和開發版1.3。
1.4 哪里有Ruby的安裝文件?您可以在這里<URL:ftp://ftp.ruby-lang.org/pub/ruby/>找到最新版的Ruby。
鏡像站點列表如下
<URL:ftp://ftp.TokyoNet.AD.JP/pub/misc/ruby/> <URL:ftp://ftp.iij.ad.jp/pub/lang/ruby/> <URL:ftp://blade.nagaokaut.ac.jp/pub/lang/ruby/> <URL:ftp://ftp.krnet.ne.jp/pub/ruby/> <URL:ftp://mirror.nucba.ac.jp/mirror/ruby/> <URL:http://mirror.nucba.ac.jp/mirror/ruby/>您可以在Ruby Binaries中找到cygwin版、mingw版和djgpp版的二進制文件包。
另外,Windows(cygwin)中還為初學者準備了Ruby Entry Package。安裝方法請參考面向初學者的Ruby安裝說明。
1.5 請問Ruby的主頁在哪里?Ruby的官方網站是<URL:http://www.ruby-lang.org/>。
1.6 請問有Ruby郵件列表嗎?現在有6個正式的Ruby郵件列表。
ruby-list ruby-dev ruby-ext ruby-math ruby-talk ruby-core詳情請參考Ruby郵件列表。
1.7 怎么才能看到郵件列表中的老郵件?<URL:http://blade.nagaokaut.ac.jp/ruby/ruby-list/index.shtml>和<URL:http://ruby.freak.ne.jp/>里面有搜索郵件用的表單。
另外,ML Topics中列出了老郵件中的重要話題。
1.8 rubyist和ruby hacker的區別是什么?松本先生對rubyist和Ruby hacker的定義如下。
rubyist是指那些對Ruby的關心程度超過常人的人。例如
向周圍的人宣傳Ruby的人 編寫Ruby的FAQ的人 在計算機通信組中增加Ruby小組的組長 撰寫Ruby書籍的作者 寫信鼓勵Ruby作者的熱心人 Ruby作者本人 ^^;;;而Ruby hacker是指那些在技術層面上對Ruby有所專攻的人。例如
Ruby擴展庫的作者 修改Ruby中的bug并發布補丁的人 djgpp版Ruby或win32版Ruby的作者 用Ruby編寫了實用(必須得具備一定規模的)程序的人 用Ruby編寫出天書般難懂的腳本的人 Ruby作者本人 ^^;;;等就是Ruby hacker。
這些稱號只不過是自我解嘲式的自稱,我不會為任何人進行正式的認證。松本先生特別將上述人士列為{rubyist、Ruby hacker},可見其尊敬之情。
1.9 它的正確寫法是"Ruby"還是"ruby"?Ruby的正式寫法是"Ruby",其命令名是"ruby"。另外只要不讓人覺得別扭的話,也可以使用ruby來替代Ruby。
但不能把"RUBY"、"ルビー"或"るびー"用作這門語言的名稱。
此前曾經有一段時間把"ruby"用作正式名稱。
1.10 請介紹一些Ruby的參考書主要有《オブジェクト指向スクリプト言語Ruby》(譯注:日語書名未翻譯)[松本行弘/石塚圭樹 合著 ASCII出版(ISBN4-7561-3254-5)],其他書目請參考Ruby相關書籍。
至于正則表達式,請參考Jeffrey E. F.Friedl著的《詳説正規表現》(譯注:日語書名未翻譯)[reilly Japan出版(ISBN4-900900-45-1)]。這本書介紹了各種正則表達式的實現問題,有助于加深您對于Ruby正則表達式的理解。
1.11 我看了手冊可還是不明白,該怎么辦?Ruby的基本句法從Ruby1.0以后就沒有太大的變化,但卻在不斷完善和擴充,因此有時文檔的更新速度跟不上最新的發展。另外,有人堅持說源代碼就是文檔,如此種種。
若您有何疑問,請不必顧慮太多,直接到ruby-list中提問即可。Ruby教主松本先生以及各位尊師還有我都會為您排憂解難。
提問時,請寫明ruby -v的結果并附帶上您的代碼(若代碼太長的話,只需摘錄重要部分即可)。
若您使用的是irb的話,則稍有不同。因為irb自身也存在一些問題,所以您最好先用irb --single-irb重試一下,或者用ruby重新運行一次為好。
雖然搜索ML可以解決您的大部分問題,但因為郵件數量龐大,想找到答案實屬不易。為遵從網絡禮節(請參考RFC1855的3.1.1、3.1.2),您可以只搜索最近的內容,但是說起來容易,做起來難。況且說不定最近又出現了什么新觀點呢。所以您還是壯起膽子來提問吧。
1.12 ruby的性格比較像羊?羊、蜂鳥、兔子...
1.13 遇到bug時怎么上報?遇到bug時應該上報到Ruby Bug Tracking System,通常很快就會得到回復。您也可以用郵件將bug的情況上報到ruby-bugs-ja。
上報時,最好能提供ruby的版本和平臺信息、錯誤消息以及能再現bug的腳本和數據。
遇到bug時,通常會顯示[BUG]消息,而Ruby也將被強行關閉。此時大部分系統都會生成一個core文件。若您的調試器可用的話,可能還會有backtrace。若您能提供這些信息就更好了。
原文轉自:http://www.anti-gravitydesign.com