成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python和Ruby:流行動態腳本語言之特點對比

開發 開發工具
Python和Ruby是兩個語法上十分相像的動態腳本語言,不過又各有特點。本文列出了Python和Ruby的一些不同之處,并認為Rails適合構建Web應用,Python則比較適合后端運算。

最近幾年以來,動態腳本編程語言在國內的得到了越來越多的普及應用,其中Python和Ruby更是佼佼者,經常拿來被比較,我覺得兩者倒是各有特點:

51CTO編輯推薦:Ruby入門教程與技巧大全 

一、Python從語法上來說更質樸一些,而Ruby更性感一些

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

Ruby的語法非常靈活,Matz設計ruby的出發點也是為了coding for fun,因此可以用ruby玩出來很多花樣,運用足夠的技巧,可以用Ruby寫出來逼近自然語言的DSL,對于程序員來說,玩ruby確實充滿了樂趣。Rails能在ruby社區誕生,而不是Python社區誕生絕對和編程語言有直接的關系。不過ruby語法靈活的另一面就是編程實現風格的多樣性,這對于大規模團隊的協作和管理是一個挑戰。

二、Python的解析器實現更成熟,第三方庫質量高

Ruby1.9解析器盡管已經有了很大的性能提升和很多新的功能,但是從源代碼實現的角度來說,基本上是通過在Ruby1.8源代碼上打patch來增加功能的。從源代碼的結構來說,Ruby的實現太古老了,Ruby擴展起來比較困難,只能不斷打patch。這也是為什么現在Ruby社區涌現出來那么多新的Ruby解析器實現的原因。從很大程度上來說,這制約了Ruby的發展速度。相對而言,Python解析器更成熟,也比較穩定。

在第三方類庫的數量上來說,Ruby并不比Python少,但是高性能高質量久經考驗的第三方類庫Python要明顯比Ruby多,事實上很多Ruby的第三方類庫都不太成熟,因此這也很大程度上制約了Ruby的發展。

三、Python的應用領域非常廣泛,而Ruby目前主要局限在在Web領域

Python應用的領域非常廣泛,除了web開發以外,還被廣泛用在服務器后端的高性能服務器實現,服務器后端的各種密集運算,全文檢索,各種文本處理,系統管理等等,另外桌面應用領域wxPython也是一個很成熟的跨平臺GUI框架。對于某些特殊的應用,比方說調用操作系統內核API,Python也可以完成的很好,比方說大量小文件的實時同步方案,就是用Python直接調用Linux Kernel的inotify特性來實現的。所以可以說Python是軟件開發領域的瑞士軍刀,什么事情都可以做。

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

四、在Web領域Ruby是王者

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

而Python盡管十分全面,卻偏偏在web開發領域不彰,web框架雖然眾多,卻沒有一個真正可以挑大梁,Django雖然在Python社區比較流行,但很多方面也有缺陷。現在的互聯網應用往往都是多種語言混合編程,Ruby在Web以外的缺陷也可以用其他語言來彌補。

五、Python的包管理不如Ruby

盡管Python的第三方類庫更高質量更成熟,但是Python社區缺乏Ruby Gem這樣一個良好的包管理軟件和包發布的網站。因此應用的構建顯得不如Ruby那么方便,那么人性化。特別是在類庫的版本升級上,就會遇到很多麻煩,不如Ruby Gem那么簡單。

不過總的來說,Python和Ruby還是相似度極高的兩種編程語言,即使兩種編程語言都學習一下也不會浪費太多時間。如果我個人選擇的話,會首選用Rails來構建web應用,再根據情況選擇Python或者Java處理一些服務器后端的運算。總之,未來還是一個混合編程的時代,我們需要多了解一些編程工具,然后根據需要看菜吃飯才行。

本文來自robbin的博客:《記上海Python社區聚會,談Python和Ruby》。

【編輯推薦】

  1. Ruby和Python的語法比較
  2. Ruby使用心得匯總:尋找高效的實現
  3. Ruby on Rails入門之道
  4. Ruby on Rails開發的五點建議
  5. 淺談Ruby和JRuby的學習
責任編輯:yangsai 來源: robbin的博客
相關推薦

2012-07-16 11:23:18

LinuxWindows腳本語言

2009-04-03 09:16:22

PHPRubyPython

2011-08-24 13:32:17

2009-06-14 21:54:37

動態語言Java腳本API

2010-03-25 16:31:55

Python代碼

2009-12-23 09:23:17

Groovy 1.7

2012-02-13 10:03:31

編程開發

2011-08-25 14:26:40

LUA數據文件

2010-02-24 14:04:32

Python腳本語言

2010-07-16 12:52:35

JVMJVM腳本語言Groovy

2010-02-26 09:33:51

Python腳本

2017-09-13 15:37:53

2010-02-26 13:03:31

Python腳本語言

2009-06-10 08:41:15

Linux腳本語言

2011-08-22 18:00:53

Lua語言

2014-06-19 10:48:18

RubyPython

2012-06-02 01:41:00

GroovyJVMJava

2015-02-09 09:51:06

2011-08-22 16:59:28

Lua

2011-08-25 11:02:04

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩一区二 | 日本精品视频一区二区 | 亚洲福利视频一区二区 | 日韩一区二区av | 国产999精品久久久久久 | 亚洲精品久久久久久一区二区 | wwwww在线观看 | 久久久精品网站 | 美美女高清毛片视频免费观看 | 国产精品成人一区 | 中文字幕久久精品 | 成人欧美一区二区三区黑人孕妇 | 日韩精品免费一区二区在线观看 | 久久久久久国产免费视网址 | 精品亚洲一区二区三区 | 日本网站在线看 | 亚洲精品电影 | 四虎国产 | 日韩免费视频 | 亚洲欧美日韩精品久久亚洲区 | 人人做人人澡人人爽欧美 | 一级黄a视频 | 久久久久国产精品一区二区 | 成在线人视频免费视频 | 亚洲一区二区三区免费在线观看 | 精品蜜桃一区二区三区 | 日本韩国欧美在线观看 | 午夜成人免费视频 | 日韩一区二区三区精品 | 精品国产欧美 | 美女露尿口视频 | 91久久精品一区二区三区 | 我要看黄色录像一级片 | 一级片在线视频 | 久久综合久久久 | 91免费在线看 | 天天干天天爱天天操 | 亚洲国产一区二区三区在线观看 | 男人的天堂中文字幕 | 色婷婷av一区二区三区软件 | 天天综合91 |