Python與Ruby比較 (2008-07-04 23:37:54)
從三個方面: 1.各自所適用于什么應用 2.開發(fā)環(huán)境、運行環(huán)境 3.可移植性如何,,因為項目最后計劃移植到手機平臺,,如windows CE Symbina 現(xiàn)把調(diào)研的一些大致整理,對比一下Python與Ruby 1.各自所適用于的應用場合 查閱的結(jié)果似乎對于這兩種語言的評價都很好,,在網(wǎng)絡(luò)開發(fā)上的性能都很好,。都很適用于快速的應用程序開發(fā),開發(fā)的效率很高,。 Python: 摘取了跟項目有關(guān)的一些應用方面的敘述 跨平臺開發(fā): Python 以中立方式支持不同的一系列平臺,,如果用戶使用的系統(tǒng)包含不同的平臺,使用 Python 開發(fā)應用程序則再好不過;它這種適應性也可以為系統(tǒng)預留使用其它工具的可能,。對于頻繁更換平臺用戶,,Python 是個理想的選擇。 為最終用戶提供軟件服務時,,Python 也是個備選方案,,可以避免同時用不同應用軟件編程的時間和費用。 互聯(lián)網(wǎng)程序設(shè)計 Python 帶有的標準模塊可以對網(wǎng)絡(luò)插槽進行初級和協(xié)議級別的通訊,,比如,,如果要從 POP 服務器上讀取電子郵件,Python 隨帶的庫模塊可以做到,。另外,, Python 還支持 XML、HTML和 CGI 庫文件,,所以利用它可以解析用戶輸入的需求,,并通過網(wǎng)絡(luò)服務器產(chǎn)生最佳質(zhì)量的成果。 程序員還可為擁有 Python 內(nèi)置解釋器的 Apache,、Unix 和 Windows 網(wǎng)絡(luò)服務器編譯模塊,。基于 CGI 程序的功效,,可以很方便地執(zhí)行 Python 語句而不用單獨裝載,。 針對于python的網(wǎng)絡(luò)編程,,有一本很好的書:《python網(wǎng)絡(luò)編程基礎(chǔ)》 這本書全面介紹了使用Python語言進行網(wǎng)絡(luò)編程的基礎(chǔ)知識,,主要內(nèi)容包括網(wǎng)絡(luò)基礎(chǔ)知識、高級網(wǎng)絡(luò)操作、Web Services,、解析HTML和XHTML,、XML、E-mail服務,、FTP,、使用Python操作數(shù)據(jù)庫、SSL,、幾種服務器端框架(包括Socket服務器,、SimpleXMLRPCServer、CGI和mod_python),,以及多任務處理(包括Forking,、線程和異步通信)等。本書實用性強,,共提供了大約175個實例,,6600行以上的代碼,是幫助讀者全面而快速地學習Python語言,、編寫網(wǎng)絡(luò)程序的最佳實踐,。 Ruby: 功能強大,面向?qū)ο蟮哪_本語言,,可以使您方便快捷地進行面向?qū)ο缶幊?,有時使用像Smalltalk、Eiffel或C++這樣正式的面向?qū)ο笳Z言來開發(fā)一些小項目顯得有點"小題大做",而Ruby剛好可以滿足這些面向?qū)ο缶幊痰男枨?當然了,您也可以使用Ruby進行普通的面向過程編程,。 Ruby支持很多網(wǎng)絡(luò)協(xié)議,,不管是高層的還是底層的。ruby提供了一些基本類,,讓你可以使用TCP,UDP,SOCKS等很多協(xié)議交互,,而不必拘泥在網(wǎng)絡(luò)層。這些類也提供了輔助類,,讓你可以輕松的對服務器進行讀寫,。進行網(wǎng)絡(luò)編程也是很不錯。 2.開發(fā)環(huán)境,、運行環(huán)境 Python: 相比之下,,就是沒有一個很強的集成開發(fā)環(huán)境。有人說開源軟件相對于收費的那種軟件好用一些,。 用得較多的幾個: Python自帶的idle: 不是python的IDE中最好的…… PythonWin : 使用起來非常得心應手(就像使用 Windows 那樣舒服),。它有個好用的編輯器,包括代碼合并,、語法標簽高亮顯示以及代碼自動完成特性,。PythonWin 和有些 IDE 一樣,,不包含任何類型的表單設(shè)計器;但它提供一個優(yōu)秀的調(diào)試器,,具有監(jiān)視,、代碼檢查、交互調(diào)試窗口,、斷點,、和其他調(diào)試器該有的功能。最重要的是,,PythonWin 很穩(wěn)定,,盡管有時候在 Win95r2 系統(tǒng)上使用時會奇怪地“停止響應”。界面上來說,,PythonWin 比較簡單,,但非常吸引人,很好的運用了可嵌入和可對接的元素(我有點偏愛 Idle 風格的 "many windows everywhere",,它也為其他許多 IDE 所采用的),。PythonWin 還集成了 ActiveState 的 HtmlHelp 版本的 Python 說明文檔和 PythonCOM。 eclipse的pydev插件,,eclipse+pydev Pydev 基于Eclipse的,非常棒的Python環(huán)境,改進速度非??臁L峁┑囊恍┕δ?/font> UliPad : 一個編輯器,,你可以用它來進行你的文檔寫作,,編程開發(fā)。它使用 Python 編程語言開發(fā),,用戶界面基于 wxPython ,。它除了想要完成一般編輯器的常用功能之外,最主要是想實現(xiàn)一種方便,、靈活的框架,,開發(fā)者可以方便地開發(fā)新的功能。而且有編程經(jīng)驗的用戶還可以針對日常工作中的特別問題編制處理的插件,,從而使之與自已的日常工作緊密結(jié)合起來,。由于使用的是 Python 這種功能強大的編程語言,你可以方便地對本軟件進行修改,,從而滿足自已的需要,。 UliPad 支持代碼著色、智能補全,、代碼調(diào)試,、Python類瀏覽、代碼片段,、Ftp功能,、目錄瀏覽等等強大功能,,其 Doc 目錄下的文檔更是非常豐富,是你編寫 Python 的絕世好幫手,! python 2.4+ wxPython 2.6+ 我們最后選擇的是UliPad,還是挺棒的,。 Ruby: Ruby有極好的高級調(diào)試器,。 可以用netbeans的ruby插件或eclipse的ruby插件 Eclipse下安裝開發(fā)環(huán)境的大致過程: 1. 2. 將 Eclipse Platform Runtime Binary 壓縮包解壓到某個目錄,。 運行環(huán)境在其官方網(wǎng)站上下載相應的版本再安裝即可,windows下面的安裝較為簡單,,雙擊運行即可安裝,。 3.可移植性 Python: 由于它的開源本質(zhì),Python已經(jīng)被移植在許多平臺上(經(jīng)過改動使它能夠工作在不同平臺上),。如果你小心地避免使用依賴于系統(tǒng)的特性,,那么你的所有Python程序無需修改就可以在下述任何平臺上面運行。這些平臺包括Linux,、Windows,、FreeBSD、Macintosh,、Solaris,、OS/2、Amiga,、AROS,、AS/400、BeOS,、OS/390,、z/OS、Palm OS,、QNX,、VMS、Psion,、Acom RISC OS,、VxWorks、PlayStation,、Sharp Zaurus,、Windows CE甚至還有PocketPC! Python在執(zhí)行時,,首先會將.py文件中的源代碼編譯成Python的byte code(字節(jié)碼),,然后再由Python Virtual Machine來執(zhí)行這些編譯好的byte code,。這種機制的基本思想跟Java,.NET是一致的,。然而,,Python Virtual Machine與Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一種更高級的Virtual Machine,。這里的高級并不是通常意義上的高級,,不是說Python的Virtual Machine比Java或.NET的功能更強大,而是說和Java 或.NET相比,,Python的Virtual Machine距離真實機器的距離更遠,。或者可以這么說,,Python的Virtual Machine是一種抽象層次更高的Virtual Machine,。 可以安裝一種面向?qū)ο蟮慕忉屝缘挠嬎銠C程序設(shè)計語言,也是一種功能強大而完善的通用型語言,,已經(jīng)具有十多年的發(fā)展歷史,,成熟且穩(wěn)定。Python 具有腳本語言中最豐富和強大的類庫,,足以支持絕大多數(shù)日常應用.在Symbina智能手機上支持C++和JAVA開發(fā)的兩類程序,,裝上Python后,也就可以支持眾多以Python開發(fā)的各種程序了,。對于普通的手機用戶,,我們不用了解太多,只是安上Python這個平臺就可以了,,可以讓我們的手機支持更多以Python開發(fā)的程序,。目前在Symbian手機上已經(jīng)有相當多的Python開發(fā)的程序,也都是比較實用的,。 Ruby: 它大部分是在Linux上開發(fā)的,,但是可以在很多類型的Unix, Dos, Windows95/98/Me/NT/2000/XP, MacOS, BeOS, OS/2等系統(tǒng)上運行。 關(guān)于ruby跟手機開發(fā)的資料很少,,有在windows CE上運行的版本,,但是好像現(xiàn)在相關(guān)的資料還特別少,而且安裝失敗,、編譯不通過的例子偏多,。日文頁面上有少量的日文介紹。 然后針對于Python跟Ruby在朋友的建議下還給出了如下一些參考意見,,在此感謝他: 1. 2. |
|