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