ruby與python
『壹』 python難還是ruby難
一、異同對比選擇
1、Python和ruby的相同點:
·都強調語法簡單,都具有更一般的表達方式。python是縮進,ruby是類basic的表達。都大量減少了符號。
·都是動態數據類型。都是有豐富的數據結構。
·都具有C語言擴展能力,都具有可移植性,比perl的可移植性更好。也都可以作為嵌入語言。
·都是面向對象的語言,都可以作為大項目的開發工具。
·都有豐富的庫支持。
·也有最寬松的版權許可,除了一些工具屬於GNU世界。
·都有lisp特色的eval函數,也都能把函數作為參數。
·也有圖形界面的ruby的專門編輯器。
·都獲得了廣泛的c庫的支持。如qt、gtk、tk、SDL、FOX等,ruby計劃實現SWIG介面。
·都有完善的文檔。
相關推薦:《Python視頻教程》
2、和python相比ruby的優點:
·具有正則表達式和嵌入html的功能。python也有正則表達式,但沒有ruby的應用方便和廣泛。python的嵌入html項目才剛起步。ruby還有apache的mod模塊。ruby本身也實現和很多unix工具,如racc,doctools。比python更親近linux。
·比python功能更完整的面向對象的語法。
·ruby的整個庫都是具有類繼承的結構。
·他的基本的數據類型和運算符都是可以重載的。
·ruby主要的功能都是通過對象的方法調用來實現的,而不是函數。python也在向這方面發展,但沒有ruby做的徹底。
·ruby的類是更規范的單繼承,還有介面等概念的實現。
·python可以實現在列表內的條件語句、循環語句,而ruby用「塊」的方式來實現這個功能,比python的更靈活,更具有通用性。
·ruby具有類似lisp的徹底的函數方式的條件語句、循環語句等。語句的表達能力更強。
·附帶一些unix工具,如racc等。
3、和python相比ruby的不足:
·最大的不足正是因為ruby的強大所引起的。它沒有python的簡單性好。比較復雜的面向對象語法、「塊」語法的引入、正則表達式的引入、一些簡寫標記都增加了語言的復雜性。
·python的縮進表達方式比ruby的basic的表達方式更讓人悅目,ruby程序的滿眼的end讓人不舒服。當然,ruby認為end的方式比python更先進。
·ruby還沒有python的「自省」的能力,沒有從程序文件中生成文檔的能力。
·ruby沒有國際化的支持。國際化支持在ruby的計劃中。這是因為ruby的歷史比python要短造成的。
·ruby沒有類似jython的東西。
4、python和ruby的語言的選擇:
從簡單的就是好的來說,選python是沒錯的。python適合尋找簡單語言的人,這很可能造成python更流行,因此也有更多的支持。但如果要追求更強大的語法功能,則ruby是好的選擇。因為ruby和python的哲學有很多相似的地方,先從python入手,盡量用python,如果python的能力不足了,可以在找ruby。
ruby和python的比較,就像五筆和拼音輸入法的比較。拼音作為入門的輸入法和長久使用的輸入法都沒有問題。五筆適合更高要求的情況。如果追求性能的不妨學學ruby。對編程語言感興趣,想了解各種編程概念的學ruby也會很興奮。
二、兩者各有特點:
1、Python從語法上來說更質朴一些,而Ruby更性感一些
Python的語法相對其他腳本語言來說,沒有太多花巧的地方,顯得比較死板一點,其實從Python強制代碼縮進也可以看出來Guido設計語言的取向。語法死板的一面就是不容易玩出來更性感的東西,比方說Rails這樣的框架,另外Python也無法做DSL這樣的事情,但是語法死板的另一面就是比較規范,相對來說,更加適應軟體開發的工程性要求,更容易組織大規模的團隊進行開發。
Ruby的語法非常靈活,Matz設計ruby的出發點也是為了coding for fun,因此可以用ruby玩出來很多花樣,運用足夠的技巧,可以用Ruby寫出來逼近自然語言的DSL,對於程序員來說,玩ruby確實充滿了樂趣。Rails能在ruby社區誕生,而不是Python社區誕生絕對和編程語言有直接的關系。不過ruby語法靈活的另一面就是編程實現風格的多樣性,這對於大規模團隊的協作和管理是一個挑戰。
2、Python的解析器實現更成熟,第三方庫質量高
Ruby1.9解析器盡管已經有了很大的性能提升和很多新的功能,但是從源代碼實現的角度來說,基本上是通過在Ruby1.8源代碼上打patch來增加功能的。從源代碼的結構來說,Ruby的實現太古老了,Ruby擴展起來比較困難,只能不斷打patch。這也是為什麼現在Ruby社區涌現出來那麼多新的Ruby解析器實現的原因。從很大程度上來說,這制約了Ruby的發展速度。相對而言,Python解析器更成熟,也比較穩定。
在第三方類庫的數量上來說,Ruby並不比Python少,但是高性能高質量久經考驗的第三方類庫Python要明顯比Ruby多,事實上很多Ruby的第三方類庫都不太成熟,因此這也很大程度上制約了Ruby的發展。
3、Python的應用領域非常廣泛,而Ruby目前主要局限在在Web領域
Python應用的領域非常廣泛,除了web開發以外,還被廣泛用在伺服器後端的高性能伺服器實現,伺服器後端的各種密集運算,全文檢索,各種文本處理,系統管理等等,另外桌面應用領域wxPython也是一個很成熟的跨平台GUI框架。對於某些特殊的應用,比方說調用操作系統內核API,Python也可以完成的很好,比方說大量小文件的實時同步方案,就是用Python直接調用linuxKernel的inotify特性來實現的。所以可以說Python是軟體開發領域的瑞士軍刀,什麼事情都可以做。
正是由於Ruby解析器和Ruby類庫的制約,Ruby的應用主要局限在Web開發領域,目前Ruby的應用還無法延伸到web開發領域以外的很多地方。據說豆瓣早期就考慮過Ruby on Rails,但是因為Ruby不能做其他事情,而Python可以大包大攬,最後放棄Ruby選擇了Python。
4、在Web領域Ruby是王者
隨著互聯網應用更進一步滲透到軟體開發的各個領域,其實web開發占整個軟體行業開發的比重也是越來越大。盡管Ruby在其他領域很受制約,但是在Web開發領域就是絕對的王者了。Rails框架的領先程度已經遠遠甩開了任何一個潛在的競爭對手十萬八千里。因此盡管Ruby可能有這樣那樣的問題,但是說到Web開發,Rails幾乎就是無可爭議的唯一選擇。
而Python盡管十分全面,卻偏偏在web開發領域不彰,web框架雖然眾多,卻沒有一個真正可以挑大樑,Django雖然在Python社區比較流行,但很多方面也有缺陷。現在的互聯網應用往往都是多種語言混合編程,Ruby在Web以外的缺陷也可以用其他語言來彌補。
5、Python的包管理不如Ruby
盡管Python的第三方類庫更高質量更成熟,但是Python社區缺乏Ruby Gem這樣一個良好的包管理軟體和包發布的網站。因此應用的構建顯得不如Ruby那麼方便,那麼人性化。特別是在類庫的版本升級上,就會遇到很多麻煩,不如Ruby Gem那麼簡單。
不過總的來說,Python和Ruby還是相似度極高的兩種編程語言,即使兩種編程語言都學習一下也不會浪費太多時間。如果我個人選擇的話,會首選用Rails來構建web應用,再根據情況選擇Python或者java處理一些伺服器後端的運算。總之,未來還是一個混合編程的時代,我們需要多了解一些編程工具,然後根據需要看菜吃飯才行。
『貳』 python還是ruby
從目前TIOBE的編程語言排行榜來看,Python大致位置在5、6名,而Ruby在10名左右,而Quora等著名網站就是用Python來寫的,國內豆瓣等網站也是用Python開發的,現有應該有很多網站想用Python開發,但是找不到合適的Python工程師,近期來看學習Python來看應該是不錯的選擇。
但是目前Python有兩個系列,一個是大多數用戶支持的2.x系列,目前最高版本是2.7,另外一個是Python作者主推的3.x系列,目前最高版本是3.2。Python作者已經宣布將關閉2.x系統升級,強制大家採用3.x系列,這會不會像PHP升級到5版本,添加大量OO技術而造成復雜性增加,市場份額大幅下降,這種情況還有待觀察。
Ruby最近發展很快,尤其是Ruby on Rail框架,大大減化了網站開發的工作量,並且簡潔的語法也提高了開發效率。另外,問答類網站「者也」就是用Ruby開發的。但是總體來講,Ruby還沒有進行主流開發語言,在國內的工作機會還不多,但是未來的發展前景是比較好的。
打字不易,如滿意,望採納。
『叄』 Ruby和Python都是用來做什麼類型的程序的
Python和Ruby都是解釋性語言,語法簡潔明了,類型無需專門定義,例如int char等都不用聲明,一般java ,C 等需要用10~30行代碼量,python,ruby只需要幾行就搞掂:
C語言
HELLO WORLD程序如下:
#include <stdio.h>
main()
{printf("Hello World!\n");
}
python:
print "Hello World!"
ruby:
puts "Hello World!" / print "Hello World!" 都可以!兼容性很好控制語句也是,C習慣也可以兼容,也可以for ...i ...in range()
ruby和python差不多,代碼編寫速度會快很多,用來實現程序邏輯測試,開發速度飛快;但是執行速度就差了,因為不定義類型的原因,這就只是個人的理解了;更多的,你可以多看看網上的專題,那會更詳細。
『肆』 ruby為什麼沒有python火
主要是適用范圍的問題。ruby基本只用於網頁後台開發而Python除了網頁後台還有大量數據方向的應用(數據工程,數據分析)。
『伍』 為什麼在國內 Python 比 Ruby 更流行
Python和Ruby有很多相似點,並且各有特點,國際上用的都挺多,但同國內情況一樣,國際上Python也比ruby較多。
python是一個荷蘭人開發的,而ruby是一個日本人開發的。Python成功案例多,易於教學,所以很多培訓機構培養出一大批搞Python的。
ruby大多用於unix,有很多對windows的支持不如Python,易學但難精通,不過在國際上市場也有挺多,在國內少之又少。
在學術上,國內對於Python的研究探討平台比ruby多很多。
所以國內Python更流行
『陸』 ruby和python哪個強大
Ruby和Python都是基於Web應用程序和Web服務的編程語言,這兩種語言有一定的相似之處,所以很多人就喜歡將這兩者進行對比。那麼ruby和python到底哪個強大呢?
Python
Python採用的是直接編程方法,主要目標的是使程序員顯而易見。在Python中,只有一種「最好」的做法,這種理念導致了Python嚴格的語言布局。
Python的核心理念包括三個關鍵的層次原則:顯式優於隱式、簡單比復雜好、復合勝於復雜。
以上三個原則使得Python更加易於學習和閱讀,同時這也是Python受到編程初學者青睞的原因。Python在介紹性編程課程中佔有重要地位,語法簡單,易於理解,另外Python的代碼結構明確,開發人員可以很容易的定位錯誤,實現調試。
相關推薦:《Python教程》
Python的原理層次在語言的許多方面都是顯而易見的。它使用空白來做流量控製作為語言語法的核心部分與大多數其他語言(包括Ruby)不同。縮進代碼的方式決定了其動作的含義。這種空白的使用是Python「明確」哲學的一個很好的例子,Python應用程序的形狀說明了它的邏輯和應用程序的行為。
Ruby
與Python相反,Ruby專注於「人類語言」編程,其代碼閱讀起來更符合人類的習慣,而不是機器的習慣。Ruby的發布者Yukihiro Matsumoto表示:「我設計Ruby來是我的驚訝最小化,我現在可以肯定全世界的程序員的思維都是相似的。」不同的情況,Ruby都可以不同的方法來實現相同的事情。
與Python不同,Ruby有一個「塊」的概念,塊由大量的代碼組成。Ruby將OOP(面向對象編程)的概念發揮到了極限,一切都可以是一個對象,甚至全局變數都是在ObjectSpace對象中表示的。
類和模塊本身是對象,而函數和操作符則是對象的方法。這種組合讓Ruby變得十分強大,當然除了這些,Ruby的函數編程和lambdas函數也不容小覷。Ruby的粉絲認為它的優雅也是其頂級賣點之一。Ruby的「magical」功能和靈活性可以很好地跟蹤錯誤。
社區:穩定與創新
雖然功能和編碼理念是一門編程語言興盛的主要驅動力,但是社區的貢獻也是不容小覷的。而我們今天的主角Python和Ruby都擁有強大的社區。
Python的社區包括一個大型的Linux學術社區,因此會有很多數學和科學的學術用例。這種支持為社區提供了穩定性和多樣性,未來隨著Python在Web開發中的應用越來越多,用例也會增長,社區的作用會日漸重要。
Ruby的社區主要側重於Web開發,與Python相比,Ruby社區的創新性更強,但是有時創新也會導致很多事情被破壞。此外,Ruby社區也比之前更加多元化,但距離Python的多樣化水平還有一定差距。
總結
對於Web開發來說,Ruby和Python都有各自的優勢,分別是Rails和Django這兩個強大的框架,但是真要說哪個更強大,這個真的無法下定論,只能說各有各的優點,最終決定哪個好用的,還是你的編碼水平和經驗水平。
『柒』 ruby和python哪個好學
Ruby和python都挺好學的。建議學習Python,語法的話,Python相對更簡潔。而且Python應用場合更廣泛,運維、網站開發、數據處理、科學研究都可以。
相關推薦:《Python入門教程》
Ruby和Python十分相似,有很多共同點,但也有一些不同之外,以下是Python和Ruby的對比:
1、Python和Ruby都是面向對象的語言,都是動態和靈活的。二者的主要區別在於他們解決問題的方式。Ruby提供了不同的方法,而Python通常只有一個,這既是優勢也劣勢。
2、最流行的Ruby框架是Ruby-on-Rails,跟Python的Django極其相似且同等高效,不過,如果開發偏重於大量計算和數據處理的應用,還是優先Python。
3、Python在數據科學和數學方面很受歡迎,所以在這里你可以找到很多的學者和教授。
4、Python的支持者是世界上規模最大和構成最多樣化的一個團隊,不僅有數以千計的個人開發人員,還有Google,Yandex,Dropbox,Mozilla,Microsoft(在Visual Studio中使用它),Intel等大公司,已經用Python創建了世界上最大的和最受歡迎的項目。
對於Python和Ruby編程的使用,要根據其特點進行選擇,就其發展和就業前景而言,Python相對更好,對於想從事IT編程的人員來說,是一個好選擇!
『捌』 Python,Ruby,Go語言哪個更值得學習
你這問的,你的是不是哪個語言更有發展前景是不?
一,Python 簡單易懂,入門快,偏向處理數據分析,圖形化,腳本
現今流行的爬蟲,數據分析,django開發
二,ruby, 簡單易懂,入門快,偏向前端網站開發
三,Golang非常適合開發游戲伺服器, 特別是手游伺服器
你到網路查看每個語言的優勢,劣勢,適合開發什麼項目,用這三門語言在現今社會偏向服務哪一類(如前端網站開發,游戲開發,後台開發等等)
就像用人一樣,把每個人的優勢劣勢舉出來,適合解決哪一方面。答案自然而然就浮出水面
然後你再選哪一門語言更適合你;千萬不要讓別人替你做決定或盲目聽別人的建議。自己實踐而定
『玖』 為什麼我選擇了Ruby而不是Python
伴隨著RoR的風行,Ruby語言受到越來越多的開發者的關注,同為腳本語言,Python的地位卻略顯尷尬,什麼樣的原因,造成了這樣的局面?
筆者認為有以下幾個方面:
一、 RoR的推波助瀾
筆者認為,Ruby的成功,很大一部分是由於RoR的帶動。
幾年前,如果你沒聽過RoR倒是情有可原,但如果今天,RoR對你來說,還是一個陌生詞彙的話,那你就有點危險了。:)
什麼是RoR呢?
全稱,Ruby on Rails,簡稱,RoR或者Rails。
它是個全棧的(full-stack)web應用框架,它為開發者提供了構建一個web應用所需的完整基礎結構,並且嚴格按照MVC(模型-視圖-控制器)架構進行開發。
RoR致力於提高開發者的開發效率,希望通過盡量少的代碼,完成盡可能多的功能。基於這樣的考慮,RoR有兩大設計原則,一是,不要重復自己 (Don''t Repeat Yourself);二是,慣例優於配置(Convention Over Configuration)。
使用RoR,你甚至可以通過簡單的幾條命令行、幾行代碼,就完成一個功能強大的web應用程序,這極大地提高了開發者的開發效率。
2004年7月,RoR一經發布,在短期內,便受到很多開發者的追捧。時至今日,RoR已經被全世界的開發者們所關注,它帶給開發者的效率提升,是前所未有的;它帶給業界關於軟體開發的思考,也是意義深遠的。
在RoR如此風行的大背景下,Ruby on Rails,這個需要使用Ruby進行開發的web框架,也自然地帶動了Ruby語言的發展。
在下面的「Ruby語言受關注程度趨勢圖」上,可以清晰地看出,Ruby語言在RoR發布也就是2004年7月後,進入了高速發展期。
Ruby因為有了RoR這樣的「殺手級」應用,變得春風得意,那麼Python呢?
在《淺談Python語言》一文中,我們提到了Python具有豐富的API庫,在web開發方面,也有Django、Turbogears這樣的一些框架,就運行速度而言,
Python比Ruby快;就社區而言,Python也比Ruby成熟,可是為什麼Python沒有產生一個像RoR這樣的「殺手級」應用呢?
Python語言的創始人Guido在接受InfoQ采訪時,是這樣解釋的:
「我不喜歡Killer
Application,因為那會讓多數人或者社區將精力集中於一個地方。Python是一個應用廣泛的語言,基於Python已經產生了很多好用的
Web框架,比如Django等。但是Python不Killer
Application,至少目前是這樣,而且我相信隨著Python社區的發展,會有很多Killer
Applications自然出現。我喜歡多樣化的應用。」
通過這個觀點,我們可以看出Python在其發展道路上,追求的是一種均衡,一種「大而全」。
「會有很多Killer Applications自然出現」,這點,我想我們需要拭目以待。單就「均衡」而言,筆者認為這很危險,作為一門腳本語言,試圖做Java之類傳統語言做的事情,不太可取。
以Java為例,在web應用上,有太多的框架可供選擇,不錯,「在不同的場景用不同的框架」,這想法很好。可是,在實際應用中,有多少開發者可以根據項目特點,正確、合理地選擇框架?
與其到最後,用戶還不知道該如何選擇,還不如一開始就替用戶做出一個選擇。
作為Python的使用者,我更願看到有個Python的「殺手級」應用出現,進而帶動Python更快速地發展。
你可以說RoR成就了Ruby,可是Rails為什麼偏偏選擇了Ruby?!Ruby優勢何在?
二、 Ruby的優勢
1. 比Perl更強大,比Python更面向對象
「比Perl更強大,比Python更面向對象」,這是Ruby創始人Matz設計Ruby的初衷。
Python既支持面向過程的編程也支持面向對象的編程,而Ruby則是完全面向對象。
在Ruby中,任何東西都是對象,包括Python中的基本數據類型;每個過程或函數都是方法。
例如,取-3的絕對值,在Python中,是這樣的:abs(-3)。
而在Ruby中,則是這樣的:-3.abs。這種OO的方式,顯得更加直觀。
2. 強大的語法功能
單就語法的簡單性而言,Ruby不及Python。但解決一些較復雜的問題,Ruby強大的語法功能,有助於降低問題的復雜度。
例如:
Ruby以「塊」的方式來實現列表內的條件、循環語句,比Python的更靈活、更具通用性。
Ruby具有類似Lisp的徹底的函數方式的條件、循環語句等。
Ruby的迭代器功能可以將流程式控制制結構抽象化。
3. 強大的字元串處理、正則表達式功能
Matz認為:Ruby > (Smalltalk + Perl) / 2。
Ruby類庫是對Perl語言功能的面向對象方式的重組,因為借鑒了很多Perl的東西,使得字元串處理、正則表達式這塊,Ruby同樣強大。
4. 不會僵住的「膠水語言」
同樣是「膠水語言」,Ruby比Python更靈活。
使用過一段時間的Python,你會發現,Python比較依賴第三方的東西。相比較,Ruby則更依賴自身。例如,Ruby可以使用(UNIX的)絕大部分的系統調用,單獨使用Ruby也可以進行系統編程等。
有優勢,Ruby就一定可以成功了?Python同樣也有很多優勢!對,還得看當時所處的環境。
三、 時勢造英雄
這點還得回到RoR的崛起。
Ruby,1995年12月正式發布,2000年進入美國;2004年7月,RoR正式發布。
RoR的出現時間,值得玩味。
在下面的「Java語言受關注程度趨勢圖」上,可以看到,2004年7月前後,Java處於一個相對「衰退期」。
提到Java,大家應該都會想到J2EE。
J2EE應用程序的廣泛實現是從1999、2000年開始的,它的出現帶來了諸如事務管理之類的核心中間層概念的標准化,但是因其開發效率、學習難度和實 際性能的問題,在實踐中沒有獲得完全的成功。作為J2EE核心技術的EJB(2.x),更是因其高昂的學習代價、極低的開發效率和極高的資源消耗,備受指 責。
在這樣一個大背景下,2003年,Spring框架誕生了。
Spring的設計思想在於「使J2EE開發更加簡單」。這個設計思想,在包括Java領域在內的眾多軟體開發領域引起了廣泛關注。軟體開發者們開始思考,如何讓開發向著一個更簡單的方向發展。
RoR在這一時期出現,無疑是順應了這樣一個潮流。
可以這么說,是歷史選擇了RoR,當然也選擇了Ruby。
遇到合適的機遇,還不夠,俗話說得好:「眾人拾柴火焰高」。
四、 眾星捧月
Ruby的出現,受到了兩大主流平台Java和.NET的極力追捧。
2006年9月,SUN僱傭了JRuby的主要開發者Charles Nutter和Thomas Enebo;一年不到,2007年6月14號,JRuby 1.0正式發布。SUN在其Java IDE NetBeans 6.0 M10中,更是集成了對Ruby/JRuby的支持。反觀Python的Java實現——Jython,則沒有這么幸運,發展至今,它並沒有得到SUN的 支持。
而Microsoft,也在2007年7月,推出了Ruby的.NET實現——IronRuby的預覽版。
相信SUN和Microsoft對Ruby的競相推崇,必然推動Ruby的進一步發展。
基於以上幾點,筆者認為Ruby的成功不是偶然,並且相信這樣的成功還會持續下去。對於Python的未來,我們也將拭目以待。
『拾』 Ruby和python哪個更易懂、靈活
Ruby是非常流行的構建網站技術,最著名的是Twitter,Basecamp,Github,Airbnb,Slideshare,Groupon。
Rbuy和Python都是面向對象的語言,都是動態和靈活的,這些技術的主要區別在於他們解決問題的方式。Ruby提供了不同的方法。
最流行的Ruby框架是Ruby on
rails,它和Django非常類似,因為這兩個框架都是為了解決相同的任務。如果我們比較這些技術的社區,你會意外的發現他們是一樣的,然而形成這些團體的人是不同的。Python在數據科學和數學方面很受歡迎,你可以找到很多的引導者。
當你開發Web應用程序時,可以用RoR實現,也可以用Django,兩者都是非常快速高效的,如果開發偏重於大量計算和數據處理的應用,則可以選擇Python。
Python的支持者是世界上規模最大和構成最多樣化的一個團隊,不僅有數以千計的個人開發者,同時還有諸如谷歌、yandex、Dropbox、Mozilla、微軟等巨頭公司,他們和其他公司一起,已經用Python創建了世界最大的和最受歡迎的項目。
與Rbuy相比,Python更加流行,目前已廣泛應用於人工智慧、雲計算開發、大數據開發、數據分析、科學運算、網站開發、爬蟲、自動化運維、自動化測試等領域,就業范圍廣,薪資待遇高,且入門簡單、語法清晰。