1. 概述“工欲善其事,必先利其器”,如果說編程是程序員的手藝,那么IDE就是程序員的吃飯家伙了。 IDE的全稱是Integration Development Environment(集成開發(fā)環(huán)境),一般以代碼編輯器為核心,包括一系列周邊組件和附屬功能。一個優(yōu)秀的IDE,最重要的就是在普通文本編輯之外,提供針對特定語言的各種快捷編輯功能,讓程序員盡可能快捷、舒適、清晰的瀏覽、輸入、修改代碼。對于一個現(xiàn)代的IDE來說,語法著色、錯誤提示、代碼折疊、代碼完成、代碼塊定位、重構(gòu),與調(diào)試器、版本控制系統(tǒng)(VCS)的集成等等都是重要的功能。以插件、擴(kuò)展系統(tǒng)為代表的可定制框架,是現(xiàn)代IDE的另一個流行趨勢。 IDE并非功能越多越好,因?yàn)楦嗟墓δ芡馕吨蟮膹?fù)雜度,這不但會分散程序員本來的精力,而且還可能帶來更多的錯誤。只要基本功能滿足需要,符合自己使用習(xí)慣的IDE才是最好的IDE。程序員的邏輯永遠(yuǎn)是:用最合適的工具做最合適的事情。 正因?yàn)榇耍绕鸫蠖腎DE,以單純的文本編輯器結(jié)合獨(dú)立的調(diào)試器、交互式命令行等外部小工具也是另一種開發(fā)方式。由于python本身的簡潔,因此在寫小的代碼片段以及通過示例代碼學(xué)習(xí)時這種方式尤其適合。
1.1. 常用IDE簡介這里簡單介紹Python程序員中最流行的若干IDE。
1.1.1. 內(nèi)置IDEPython的各個常見發(fā)行版都有內(nèi)置的IDE,雖然它們的功能一般不夠強(qiáng)大完整,但簡便易得就是最大的優(yōu)勢。 對于初學(xué)者來說,它們也是上手的最好選擇,可以讓你更專注于語言本身而不會被繁復(fù)的IDE分散精力。
1.1.1.1. IDLEIDLE是Python標(biāo)準(zhǔn)發(fā)行版內(nèi)置的一個簡單小巧的IDE,包括了交互式命令行、編輯器、調(diào)試器等基本組件,足以應(yīng)付大多數(shù)簡單應(yīng)用。 IDLE是用純Python基于Tkinter編寫的的,最初的作者正是Python之父Guido van Rossum本人。 http://hkn.eecs./~dyoo/python/idle_intro/index.html -- 《One Day of IDLE Toying》,圖文并茂的入門文章 http://hkn.eecs./~dyoo/python/idle_intro/IDLE-chinese.htm -- 《One Day of IDLE Toying》中文版
1.1.1.2. PythonWinPythonWin是Python Win32 Extensions(半官方性質(zhì)的python for win32增強(qiáng)包)的一部分,也包含在ActivePython的windows發(fā)行版中。如其名字所言,只針對win32平臺。 總體來說,PythonWin是一個增強(qiáng)版的IDLE,尤其是易用性方面(就像windows本身的風(fēng)格一樣)。除了易用性和穩(wěn)定性之外,(簡單的)代碼完成和更強(qiáng)的調(diào)試器都是相對于IDLE的明顯優(yōu)勢。 Python Win32 Extensions的下載頁:http:///projects/pywin32/ ActivePython的主頁:http://www./Products/ActivePython/
1.1.1.3. MacPython IDEMacPythonIDE是Python的Mac OS發(fā)行版內(nèi)置的IDE,可以看作是PythonWin的Mac對應(yīng)版本,由Guido的哥哥Just van Rossum編寫。
1.1.2. Emacs和VimEmacs和Vim號稱是這個星球上最強(qiáng)大(以及第二強(qiáng)大)的文本編輯器,對于許多程序員來說是萬能IDE的不二(三?)選擇。 比起同類的通用文本編輯器如UltraEdit,Emacs和Vim由于擴(kuò)展功能的強(qiáng)大,可以針對性地搭建出更為完整便利的IDE。
雖然二者掌握之后可以說是終身受益,但學(xué)習(xí)曲線都比較陡峭。 由于歷史原因,它們的設(shè)計理念都是基于純ascii字符環(huán)境,GUI相對來說不是支持的重點(diǎn),大量使用快捷鍵才能帶來最大的便利。 對于初學(xué)者來說,相對而言Vim更簡潔一些,但Emacs的GUI與一般編輯器的習(xí)慣更接近些。
1.1.3. Eclipse + PyDevEclipse是新一代的優(yōu)秀泛用型IDE,雖然是基于Java技術(shù)開發(fā)的,但出色的架構(gòu)使其具有不遜于Emacs和Vim的可擴(kuò)展性,現(xiàn)在已經(jīng)成為了許多程序員最愛的瑞士軍刀。
PyDev是Eclipse上的Python開發(fā)插件中最成熟完善的一個,而且還在持續(xù)的活躍開發(fā)中。除了Eclipse平臺提供的基本功能之外,PyDev的代碼完成、語法查錯、調(diào)試器、重構(gòu)等功能都相當(dāng)出色,可以說在開源產(chǎn)品中是最為強(qiáng)大的一個,許多貼心的小功能也很符合編輯習(xí)慣,用起來相當(dāng)順手。 速度和資源占用是致命傷,在低配置機(jī)器上跑起來比較吃力。
Eclipse的主頁:http://www./ PyDev的主頁:http://pydev./ PyDev使用手冊:http://www./pydev/manual_101_root.html (Eng) 此入門手冊從安裝到開發(fā)過程中的使用,并且是圖文顯示,推薦大家使用. 技術(shù)開發(fā)參考: 用 Eclipse,PyDev 和 Ant 進(jìn)行 Python 開發(fā),http://www-128.ibm.com/developerworks/cn/opensource/os-ecant/index.html
1.1.4. UliPadUliPad是國內(nèi)知名pythoner,也是PythonCN社區(qū)核心成員limodou開發(fā)的IDE。
1.1.5. SPE (Stani's Python Editor)很有特色的一個輕量級python IDE,功能很全面而不失小巧輕便,特別適合寫小的腳本。 即時生成代碼的UML類圖是獨(dú)此一家的功能,此外還特別注重與外部工具的集成。例如,集成了wxGlade作為所見即所得的GUI開發(fā)環(huán)境,集成了Winpdb作為調(diào)試器,甚至還能與3D建模工具Blender集成。 SPE沒有管理Project的概念,這樣開發(fā)多文件多目錄組成的項目時會不太方便。此外界面設(shè)計相對來說不夠細(xì)致,也算是瑕疵。 SPE的主頁:http:///python/spe/
1.1.6. Boa Constructor專為快速開發(fā)基于wxPython的GUI程序而設(shè)計的IDE,支持“所見即所得”的控件拖放式開發(fā),被稱為Python世界中的Delphi。 曾被sourceforge推選為"Project of the Month",不過最近開發(fā)速度趨于緩慢。 Boa Constructor的主頁:http://boa-constructor./
1.1.7. Eric3Eric3的主頁:http://www./detlev/eric3.html
1.1.8. WingIDEWingware公司開發(fā)的商業(yè)產(chǎn)品,總體來說是目前最為強(qiáng)大專業(yè)的Python IDE,開源項目可以申請到免費(fèi)的license。 最大的缺點(diǎn)和PyDev一樣,速度較慢,資源占用多。 Wingware的主頁:http:///
1.1.9. Komodo
1.1.10. TextmateTextmate是Mac OSX平臺的Cocoa原生程序,類似UltraEdit。以靈活的Bundles和Code Snippets著稱,支持大多數(shù)的腳本語言。Rails的全體開發(fā)團(tuán)隊都用這個Editor。類似Emacs/vi,需要配合ctags分析python代碼結(jié)構(gòu),可以很容易的做unittest等功能。需要特別指出的是它對于Django的model和template、以及Zope都有專門的支持。 Textmate的主頁:http:///
1.1.10.1. Scribes
1.1.10.2. Intype
1.1.11. PyScripterDelphi開發(fā)的Python IDE,只有windows版本。 PyScripter的主頁:http:///Products.aspx?ProductId=4
1.2. IDE之外的工具
1.2.1. 交互式命令行(interactive console)
1.2.1.1. IPythonIPython的主頁:http://ipython./
1.2.2. 調(diào)試工具(Debugger)
1.2.2.1. WinpdbWinpdb的主頁:http://www./pythondebugger/
1.2.3. 其它支持 Python 的編輯器
1.2.3.1. Leo基于全新的Literate Programming(文學(xué)化編程)理念的開發(fā)工具,詳細(xì)的介紹參見:LeoEnvironment Leo的主頁:http://webpages./edreamleo/front.html
1.2.3.2. BluefishBluefish 通常被認(rèn)為是一個類似 Homesite 的網(wǎng)頁編輯器,但事實(shí)上它不僅如此。它應(yīng)該是一個通用的文本編輯器,支持 C、PHP、Python、Ruby、Perl、Java、Shell、Tcl 等許多種編程語言,支持語法高亮、自動換行、自動關(guān)閉 HTML 標(biāo)簽等,可同時編輯多個文檔。 Bluefish 當(dāng)然不能算是一款 Python 的 IDE 工具,但如果做 Web 相關(guān)的開發(fā)( DjanGo、TurboGears 等),用它來寫程序顯然很方便。而且 Bluefish 相當(dāng)友好,基本上不用學(xué)就會用,可以使我等菜鳥盡快將精力轉(zhuǎn)移到 Python 的學(xué)習(xí)上來。 Bluefish 官方站在 http://bluefish./index.html 目前可以運(yùn)行在大多數(shù)類 UNIX 操作系統(tǒng)上。
2. Discuss
2.1. 綜合比較swordsp的個人建議:
其它比較Python IDE的文章: http://www-128.ibm.com/developerworks/cn/linux/sdk/python/charm-14/index.html "Charming Python"專欄作者David Mertz的測評文章,寫于2001年,許多內(nèi)容已經(jīng)過于陳舊了,但仍有參考價值。 http://spyced./2005/09/review-of-6-python-ides.html -- review-of-6-python-ides.html http://spyced./2006/02/pycon-python-ide-review.html -- pycon-python-ide-review.html 較新的兩篇Python IDE測評文章(原地址需代理才能訪問,后一個附件鏈接是本地的備份),分別比較了PyDev、Eric3、Boa Constructor、BlackAdder、Komodo、WingIDE、SPE。 |
|