Ruby受歡迎的三十七個理由(下)
Ruby,一種為簡單快捷的面向對象編程(面向對象程序設計)而創的腳本語言,在20世紀90年代由日本人松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)開發,遵守GPL協議和Ruby License。接上一篇>>
一、Ruby 關注細節。
Ruby 提供豐富的同義詞和別名。不記得對數組或字符串是用 size 還是 length 嗎?兩個都可以用。對于范圍(range),是用 begin 和 end ,還是 first 和 last?由您自選。您心里拼寫 indices ,而您的手卻拼出 indexes 嗎?兩個都可以用。
二、Ruby 具有靈活的語法特性。
在方法調用中可以忽略括號,參數之間可以忽略逗號。Perl 風格的引號允許我們定義數組或字符串時不必勞煩去敲那些引號和逗號(譯注:Ruby 中 a = [ 'ant', 'bee', 'cat' ] 可以簡寫為 a = %w{ ant bee cat })。return 關鍵字也可以忽略。
三、Ruby 有豐富的程序庫可供使用。
Ruby 的程序庫提供了對線程、套接字(socket)、有限的對象永續機制、CGI、服務器端可執行機制、DB 文件等許多功能的支持。Ruby 還對 Tk 有所支持,今后會有更多的支持。
四、Ruby 有調試器(debugger)。
在完美世界里我們大約不需要調試器。可惜這并不是完美的世界。
五、Ruby 可通過交互的方式來使用。
Ruby 設計為可以將其當作一種類似 Kornshell 的 shell 來使用。(這是本文中最令人質疑的觀點,而且我也不得不承認,Ruby 并不是真正非常優秀的 shell。但我還是堅持認為,基于 Ruby 的 shell 是個不錯的東西。)
六、Ruby 是精煉的語言。
Ruby 中沒有非必要的關鍵字,比如 Pascal 的 begin,if 之后的 then,while 之后的 do。不需要事先聲明變量,因為變量無類型。不需要為方法指定返回類型。不需要 return 關鍵字;方法會返回最后被求值的表達式之結果。另外一方面……Ruby 不像 C 或 Perl 那么晦澀。
七、Ruby 是面向表達的語言(expression-oriented)。
您可以像說話一樣很容易寫出 x = if a<0 then b else c end 這樣的句子。
八、Ruby 語言中系結了 syntax sugar(語法糖)。
(轉述 Mary Poppins 的話說就是:一勺語法糖可以壓一壓語義的藥味。"A spoonful of syntax sugar helps the semantic medicine go down.")只要您想,您就可以用 for a in x 來迭代遍歷數組 x,可以用 a += b 來代替 a = a + b。大多數操作符其實只是簡化的方法表示、更加直覺的名稱以及更加方便使用的語法形式。
譯注:Mary Poppins 指的是美國1964年拍攝的經典電影《歡樂滿人間(Mary Poppins)》。
九、Ruby 支持操作符重載(overloading)。
如果我沒記錯的話,操作符重載源起自很久以前的 SNOBOL,但卻是由較近的 C++ 振興。這個機制可能會被濫用或誤用,但有總比沒有好。另外,Ruby 會自動定義操作符的賦值(assignment)版本,比如說,您定義了操作符 + ,那么您就會自動得到操作符 +=。
十、Ruby 具有無限精度的整數算法。
誰還關心 short、int、long 呢? 使用 Bignum 就行了。承認吧,您總還是想看看365的階乘是多少。現在您可以看了。
十一、Ruby 具有冪運算操作符。
在過去年代,我們在 BASIC 和 FORTRAN 里使用過冪運算操作符。但是后來我們學會了 Pascal 和 C 語言,知道了這個操作符邪惡的一面。(我們被告知,我們甚至都不曾知道求值是如何完成的——是使用了對數還是迭代?效率有多高?)可是我們真的關心這些么?如果是,我們可以編寫自己的版本。如果不是,Ruby 還提供了您珍愛的老好用的 ** operator 供您使用。享用它吧!
十二、Ruby 具有強大的字符串處理能力。
如果您想對字符串進行搜索、替換、修改、格式化、截斷(trim)、分隔(delimit)、追加(interpose),或者字元化(tokenize)等操作,您可以使用 Ruby 內建的方法。如過內建方法不能滿足要求,您可以利用內建方法來建構自己所需。
十三、Ruby 幾乎沒有違反自身規則的例外情況。
Ruby 的語法和語義比大多數語言更具自我完備性(self-consistent)。每種語言都有犄角旮旯,每種規則都有例外情況;但 Ruby 的旮旯和例外可能比您想象的要少。
到這,關于Ruby受歡迎的三十七個理由,就為大家介紹完了。希望對你有幫助。
【編輯推薦】