Ruby對(duì)比Python的優(yōu)勢(shì)和劣勢(shì)
Ruby 和 Python 太相似了,取舍大部分都是個(gè)人喜好上的原因。比如我就覺(jué)得 Python 的 “There is only one way to do it.” 比 Ruby 的 “There are many ways to do it.” 要好,這不光是考慮團(tuán)隊(duì)協(xié)作的問(wèn)題,更重要的是自己能很快明白自己三個(gè)月前寫的沒(méi)有任何注釋的代碼是在干什么。當(dāng)然也有很多人覺(jué)得自由和靈活要比可讀性來(lái)的重要,所以我說(shuō)這個(gè)是個(gè)人喜好的原因。
客觀上的 Ruby 比 Python 的優(yōu)勢(shì)我想到的有這么幾個(gè):
Block 應(yīng)該是語(yǔ)言層面上 Ruby 比 Python 更酷的地方,Python 的匿名函數(shù)(lambda function)制約太多,屬于雞肋(BFDL GvR 不認(rèn)可函數(shù)式編程的許多方面)。
OS X 上的話,Ruby 比 Python 最重要的優(yōu)勢(shì)可能是 MacRuby (http://www.macruby.org/) 的存在。我大膽猜測(cè)以后 MacRuby 將成為 Objective-C 之外(如果不是完全替代的話)的蘋果官方語(yǔ)言。MacRuby 除了能更加方便快捷的創(chuàng)建 Cocoa 應(yīng)用外,ruby block 使得利用 OS X 的 Grand Central Dispatch 變得容易,在以后的多核、混合核(CPU+GPU)應(yīng)用上非常重要。
劣勢(shì):
Ruby 的硬傷之一在于性能。官方實(shí)現(xiàn) Ruby 1.9 比 CPython 遜色不少。另外 Python 擁有諸如 Numpy, Psyco, PyPy, Cython 等多種性能倍增的途徑,相比之下 Ruby 想要提高性能的途徑則非常有限。
Ruby 的硬傷之二在于第三方包。Ruby 傳入英語(yǔ)世界并大規(guī)模流行起來(lái)的時(shí)間不長(zhǎng),大部分的第三方包都和 Web 相關(guān),Web 領(lǐng)域外的包數(shù)量遠(yuǎn)遠(yuǎn)不及 Python。特別是在科研等方面的區(qū)別非常明顯,很多學(xué)科領(lǐng)域都有基于 Python 的成熟應(yīng)用,而幾乎找不到 Ruby 的相關(guān)包。這除了歷史淵源,也和 Python 更加簡(jiǎn)潔的語(yǔ)法(很多用 Python 做研究的人不是計(jì)算機(jī)專業(yè)的)以及前述的性能倍增器(主要是 Numpy 和 Scipy)有密切的關(guān)系。
相關(guān)文章
ruby 學(xué)習(xí)筆記(1) 初識(shí)語(yǔ)法
雖然ruby/ruby on rails從2007年就一直獲獎(jiǎng)無(wú)數(shù),但身為一個(gè)中國(guó)人,一直對(duì)小日本創(chuàng)造的東西不怎么感興趣,想想其實(shí)也沒(méi)必要,技術(shù)本身是無(wú)國(guó)界的,日本其實(shí)也有值得學(xué)習(xí)的地方(扯遠(yuǎn)了,呵)2010-02-02詳解Ruby設(shè)計(jì)模式編程中對(duì)單例模式的運(yùn)用
這篇文章主要介紹了Ruby設(shè)計(jì)模式編程中對(duì)單例模式的運(yùn)用,講到了包括對(duì)Singleton模塊的使用,需要的朋友可以參考下2016-03-03關(guān)于Ruby on Rails路由配置的一些建議
這篇文章主要介紹了關(guān)于Ruby on Rails路由配置的一些建議,作者提出了相關(guān)代碼編寫時(shí)一些值得注意的地方,需要的朋友可以參考下2015-08-08使用Ruby來(lái)編寫訪問(wèn)Twitter的命令行應(yīng)用程序的教程
這篇文章主要介紹了使用Ruby來(lái)編寫訪問(wèn)Twitter的命令行應(yīng)用程序的教程,文章來(lái)自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下2015-04-04Jekyll靜態(tài)網(wǎng)站后臺(tái)引擎使用教程
今天,我就來(lái)示范如何在github上搭建Blog,你可以從中掌握github的Pages功能,以及Jekyll軟件的基本用法。更重要的是,你會(huì)體會(huì)到一種建立網(wǎng)站的全新思路。2016-04-04Ruby中關(guān)于模塊的一些基礎(chǔ)知識(shí)
這篇文章主要介紹了Ruby中關(guān)于模塊的一些基礎(chǔ)知識(shí),是Ruby入門學(xué)習(xí)中的一些重要知識(shí)點(diǎn),需要的朋友可以參考下2015-07-07Ruby設(shè)計(jì)模式編程中對(duì)外觀模式的應(yīng)用實(shí)例分析
這篇文章主要介紹了Ruby設(shè)計(jì)模式編程中對(duì)外觀模式的應(yīng)用實(shí)例分析,外觀模式在Ruby on Rails開(kāi)發(fā)項(xiàng)目中也經(jīng)常被用到,需要的朋友可以參考下2016-03-03