如何學(xué)習(xí)python和ruby-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比桂平網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式桂平網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋桂平地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。

本篇文章給大家分享的是有關(guān)如何學(xué)習(xí)python和ruby,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

一、異同對(duì)比選擇

1、Python和ruby的相同點(diǎn):

·都強(qiáng)調(diào)語法簡單,都具有更一般的表達(dá)方式。python是縮進(jìn),ruby是類basic的表達(dá)。都大量減少了符號(hào)。

·都是動(dòng)態(tài)數(shù)據(jù)類型。都是有豐富的數(shù)據(jù)結(jié)構(gòu)。

·都具有C語言擴(kuò)展能力,都具有可移植性,比perl的可移植性更好。也都可以作為嵌入語言。

·都是面向?qū)ο蟮恼Z言,都可以作為大項(xiàng)目的開發(fā)工具。

·都有豐富的庫支持。

·也有最寬松的版權(quán)許可,除了一些工具屬于GNU世界。

·都有l(wèi)isp特色的eval函數(shù),也都能把函數(shù)作為參數(shù)。

·也有圖形界面的ruby的專門編輯器。

·都獲得了廣泛的c庫的支持。如qt、gtk、tk、SDL、FOX等,ruby計(jì)劃實(shí)現(xiàn)SWIG接口。

·都有完善的文檔。

2、和python相比ruby的優(yōu)點(diǎn):

·具有正則表達(dá)式和嵌入html的功能。python也有正則表達(dá)式,但沒有ruby的應(yīng)用方便和廣泛。python的嵌入html項(xiàng)目才剛起步。ruby還有apache的mod模塊。ruby本身也實(shí)現(xiàn)和很多unix工具,如racc,doctools。比python更親近Linux。

·比python功能更完整的面向?qū)ο蟮恼Z法。

·ruby的整個(gè)庫都是具有類繼承的結(jié)構(gòu)。

·他的基本的數(shù)據(jù)類型和運(yùn)算符都是可以重載的。

·ruby主要的功能都是通過對(duì)象的方法調(diào)用來實(shí)現(xiàn)的,而不是函數(shù)。python也在向這方面發(fā)展,但沒有ruby做的徹底。

·ruby的類是更規(guī)范的單繼承,還有接口等概念的實(shí)現(xiàn)。

·python可以實(shí)現(xiàn)在列表內(nèi)的條件語句、循環(huán)語句,而ruby用“塊”的方式來實(shí)現(xiàn)這個(gè)功能,比python的更靈活,更具有通用性。

·ruby具有類似lisp的徹底的函數(shù)方式的條件語句、循環(huán)語句等。語句的表達(dá)能力更強(qiáng)。

·附帶一些unix工具,如racc等。

3、和python相比ruby的不足:

·大的不足正是因?yàn)閞uby的強(qiáng)大所引起的。它沒有python的簡單性好。比較復(fù)雜的面向?qū)ο笳Z法、“塊”語法的引入、正則表達(dá)式的引入、一些簡寫標(biāo)記都增加了語言的復(fù)雜性。

·python的縮進(jìn)表達(dá)方式比ruby的basic的表達(dá)方式更讓人悅目,ruby程序的滿眼的end讓人不舒服。當(dāng)然,ruby認(rèn)為end的方式比python更先進(jìn)。

·ruby還沒有python的“自省”的能力,沒有從程序文件中生成文檔的能力。

·ruby沒有國際化的支持。國際化支持在ruby的計(jì)劃中。這是因?yàn)閞uby的歷史比python要短造成的。

·ruby沒有類似jython的東西。

4、python和ruby的語言的選擇:

從簡單的就是好的來說,選python是沒錯(cuò)的。python適合尋找簡單語言的人,這很可能造成python更流行,因此也有更多的支持。但如果要追求更強(qiáng)大的語法功能,則ruby是好的選擇。因?yàn)閞uby和python的哲學(xué)有很多相似的地方,先從python入手,盡量用python,如果python的能力不足了,可以在找ruby。

ruby和python的比較,就像五筆和拼音輸入法的比較。拼音作為入門的輸入法和長久使用的輸入法都沒有問題。五筆適合更高要求的情況。如果追求性能的不妨學(xué)學(xué)ruby。對(duì)編程語言感興趣,想了解各種編程概念的學(xué)ruby也會(huì)很興奮。

二、兩者各有特點(diǎn):

1、Python從語法上來說更質(zhì)樸一些,而Ruby更性感一些

Python的語法相對(duì)其他腳本語言來說,沒有太多花巧的地方,顯得比較死板一點(diǎn),其實(shí)從Python強(qiáng)制代碼縮進(jìn)也可以看出來Guido設(shè)計(jì)語言的取向。語法死板的一面就是不容易玩出來更性感的東西,比方說Rails這樣的框架,另外Python也無法做DSL這樣的事情,但是語法死板的另一面就是比較規(guī)范,相對(duì)來說,更加適應(yīng)軟件開發(fā)的工程性要求,更容易組織大規(guī)模的團(tuán)隊(duì)進(jìn)行開發(fā)。

Ruby的語法非常靈活,Matz設(shè)計(jì)ruby的出發(fā)點(diǎn)也是為了coding for fun,因此可以用ruby玩出來很多花樣,運(yùn)用足夠的技巧,可以用Ruby寫出來逼近自然語言的DSL,對(duì)于程序員來說,玩ruby確實(shí)充滿了樂趣。Rails能在ruby社區(qū)誕生,而不是Python社區(qū)誕生絕對(duì)和編程語言有直接的關(guān)系。不過ruby語法靈活的另一面就是編程實(shí)現(xiàn)風(fēng)格的多樣性,這對(duì)于大規(guī)模團(tuán)隊(duì)的協(xié)作和管理是一個(gè)挑戰(zhàn)。

2、Python的解析器實(shí)現(xiàn)更成熟,第三方庫質(zhì)量高

Ruby1.9解析器盡管已經(jīng)有了很大的性能提升和很多新的功能,但是從源代碼實(shí)現(xiàn)的角度來說,基本上是通過在Ruby1.8源代碼上打patch來增加功能的。從源代碼的結(jié)構(gòu)來說,Ruby的實(shí)現(xiàn)太古老了,Ruby擴(kuò)展起來比較困難,只能不斷打patch。這也是為什么現(xiàn)在Ruby社區(qū)涌現(xiàn)出來那么多新的Ruby解析器實(shí)現(xiàn)的原因。從很大程度上來說,這制約了Ruby的發(fā)展速度。相對(duì)而言,Python解析器更成熟,也比較穩(wěn)定。

在第三方類庫的數(shù)量上來說,Ruby并不比Python少,但是高性能高質(zhì)量久經(jīng)考驗(yàn)的第三方類庫Python要明顯比Ruby多,事實(shí)上很多Ruby的第三方類庫都不太成熟,因此這也很大程度上制約了Ruby的發(fā)展。

3、Python的應(yīng)用領(lǐng)域非常廣泛,而Ruby目前主要局限在在Web領(lǐng)域

Python應(yīng)用的領(lǐng)域非常廣泛,除了web開發(fā)以外,還被廣泛用在服務(wù)器后端的高性能服務(wù)器實(shí)現(xiàn),服務(wù)器后端的各種密集運(yùn)算,全文檢索,各種文本處理,系統(tǒng)管理等等,另外桌面應(yīng)用領(lǐng)域wxPython也是一個(gè)很成熟的跨平臺(tái)GUI框架。對(duì)于某些特殊的應(yīng)用,比方說調(diào)用操作系統(tǒng)內(nèi)核API,Python也可以完成的很好,比方說大量小文件的實(shí)時(shí)同步方案,就是用Python直接調(diào)用linuxKernel的inotify特性來實(shí)現(xiàn)的。所以可以說Python是軟件開發(fā)領(lǐng)域的瑞士軍刀,什么事情都可以做。

正是由于Ruby解析器和Ruby類庫的制約,Ruby的應(yīng)用主要局限在Web開發(fā)領(lǐng)域,目前Ruby的應(yīng)用還無法延伸到web開發(fā)領(lǐng)域以外的很多地方。據(jù)說豆瓣早期就考慮過Ruby on Rails,但是因?yàn)镽uby不能做其他事情,而Python可以大包大攬,最后放棄Ruby選擇了Python。

4、在Web領(lǐng)域Ruby是王者

隨著互聯(lián)網(wǎng)應(yīng)用更進(jìn)一步滲透到軟件開發(fā)的各個(gè)領(lǐng)域,其實(shí)web開發(fā)占整個(gè)軟件行業(yè)開發(fā)的比重也是越來越大。盡管Ruby在其他領(lǐng)域很受制約,但是在Web開發(fā)領(lǐng)域就是絕對(duì)的王者了。Rails框架的領(lǐng)先程度已經(jīng)遠(yuǎn)遠(yuǎn)甩開了任何一個(gè)潛在的競爭對(duì)手十萬八千里。因此盡管Ruby可能有這樣那樣的問題,但是說到Web開發(fā),Rails幾乎就是無可爭議的唯一選擇。

而Python盡管十分全面,卻偏偏在web開發(fā)領(lǐng)域不彰,web框架雖然眾多,卻沒有一個(gè)真正可以挑大梁,Django雖然在Python社區(qū)比較流行,但很多方面也有缺陷。現(xiàn)在的互聯(lián)網(wǎng)應(yīng)用往往都是多種語言混合編程,Ruby在Web以外的缺陷也可以用其他語言來彌補(bǔ)。

5、Python的包管理不如Ruby

盡管Python的第三方類庫更高質(zhì)量更成熟,但是Python社區(qū)缺乏Ruby Gem這樣一個(gè)良好的包管理軟件和包發(fā)布的網(wǎng)站。因此應(yīng)用的構(gòu)建顯得不如Ruby那么方便,那么人性化。特別是在類庫的版本升級(jí)上,就會(huì)遇到很多麻煩,不如Ruby Gem那么簡單。

不過總的來說,Python和Ruby還是相似度極高的兩種編程語言,即使兩種編程語言都學(xué)習(xí)一下也不會(huì)浪費(fèi)太多時(shí)間。如果我個(gè)人選擇的話,會(huì)選用Rails來構(gòu)建web應(yīng)用,再根據(jù)情況選擇Python或者Java處理一些服務(wù)器后端的運(yùn)算??傊?,未來還是一個(gè)混合編程的時(shí)代,我們需要多了解一些編程工具,然后根據(jù)需要看菜吃飯才行。

以上就是如何學(xué)習(xí)python和ruby,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

當(dāng)前名稱:如何學(xué)習(xí)python和ruby-創(chuàng)新互聯(lián)
當(dāng)前URL:http://muchs.cn/article26/psdcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站靜態(tài)網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站、品牌網(wǎng)站制作營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)