Posted on 2006-09-24 14:50
chenger 閱讀(413)
評論(0) 編輯 收藏 引用 所屬分類:
Programming Stuff
我在自己的電腦上裝了ruby,稍微看了點(diǎn)Programming Ruby,感覺Ruby有很多想法都非常有意思,值得學(xué)習(xí),比如塊,以及徹底的Object Oriented(對于誰比誰更OO,從來都是爭吵不斷,比如Java比C++更OO,C#比Java又更OO,等等,往往引起論壇上一片腥風(fēng)血雨。我這個也就是隨便說說),迭代器。很多語言特性和Python相差不大,估計腳本語言做到一定程度多少都有些相似的,當(dāng)然各有各的特點(diǎn)。然后又看了點(diǎn)源代碼,終于明白為何Ruby的性能如此被人詬病:構(gòu)造了AST以后,直接在AST上遞歸進(jìn)行eval。而Python,Perl,Lua等都是編譯為中間語言再交給虛擬機(jī)執(zhí)行。如果能有一個JIT編譯器(像.NET那樣)就更牛了。Ruby傳說中的2.0版本要引入虛擬機(jī),YARV。不過那2.0遙遙無期,目前最新的stable是1.8.5,2.0據(jù)說要到08奧運(yùn)那會了。
Ruby的源代碼還充分體現(xiàn)了拿來主義的精神,能重用的決不自己寫:比如Hash表就用了一個通用的Hash表實(shí)現(xiàn),正則表達(dá)式則使用了GNU的regex庫,random是有名的MT19937(也是日本人寫的)。嘗試了一下編譯,在mingw上執(zhí)行標(biāo)準(zhǔn)三部曲:./configure,make,make install,一切OK。