Python主流IDE對比:Eric VS. PyCharm

IDE, 全稱是Integrated Development Environment,翻譯過來就是集成開發環境。Python的開發從2010年5月算起,不知不覺中,到如今已是第七個年頭。數據庫

這六年裏,捨得最經常使用的IDE是Eric6(一開始是5.x版本),也試用過圈內聞名的PyCharm、WingIDE和Eclipse(+PyDev插件),算是有些心得。今天,着重對Eric6和PyCharm 2016.3做一下簡單的評測。vim

顏值瀏覽器

Eric6是基於PyQt開發的,程序運行甚至只用一個BAT文件來調用,界面相對而言略醜。PyCharm基於Java開發,自帶的主題很漂亮,風格比較統一。在顏值這一點上,無疑是PyCharm勝出。編輯器

順帶提一下WingIDE,雖然它也帶了不少款主題,但整個窗口中有些部位是不受主題控制的。舉個栗子,當你選擇深色的主題時,窗口左下角每每會有一塊白色的控件,忒刺眼。ide

速度和內存開銷工具

從啓動到打開一個項目,捨得掐着秒錶測試了這幾款IDE,數據以下:測試

  • 最慢的是PyCharm,平均須要18-20秒左右。就算把插件幹掉只剩兩個,再將Xms和Xmx參數適當調整,跑出最快的成績是16秒5;
  • Eric平均只用11秒;
  • 最快的是WingIDE, 只用7秒;

內存開銷上,PyCharm是大戶,動輒就是吃掉你300-400MB的內存。機子內存小的童鞋要小心了!字體

UI和資源編譯插件

開發過程當中不免要對UI和資源文件進行調整,因此IDE中天然須要將這兩項的編譯工做集成進來。翻譯

Eric6是原生支持UI和資源文件編譯的,它的開發者早就想到了咱們須要這項功能。

PyCharm做爲一個專業的Python IDE,在這方面無疑略顯不足。要實現UI和資源編譯,你必須手工在外部工具設置中添加它們(具體操做請本身去問度娘),雖然設置好以後和Eric6比也沒啥區別,但老是開發者欠考慮。

不過PyCharm這個外部工具的設計仍是值得讚揚的,你能夠直接把打包命令(我一般用cx_freeze)直接整合進去,這樣就方便多了。

智能縮進

在Python的語法中,縮進是很是重要的一項。開發過程當中,縮進若能更智能化一點,天然寫代碼的速度也會快一些。

在這方面,作得最優秀的是Eric6。它的牛x之處在於,不管你的光標鍵在哪一個位置,只要你按TAB鍵,程序就會根據上面的代碼選擇合適的縮進位置。

PyCharm亦有相似的設計。它的智能縮進操做英文名叫Emacs Indent(建議將快捷鍵TAB設置給它),國內的漢化莫名其妙地翻譯成了「宏選項卡」,這必定是外行人乾的。

但Emacs Indent在處理整塊縮進的時候略顯無力,當咱們要將整塊代碼往前移的時候,只能使用另外一項叫做「取消縮進內容」的操做,而Eric6只要一個TAB鍵就足夠了。

字體縮放

雖然咱們能夠在設置中給IDE的編輯器設一個特定的字號,但在實際開發中,仍是免不了要適當縮放字體。尤爲是大屏幕,字體適當放大一些,眼睛不至於那麼遭罪。

字體的縮放這兩款IDE都有。只不過,Eric6是早已設置好快捷鍵的(用Ctrl+=/-,或Ctrl+滾輪),而在PyCharm中,你必須手動設置這個快捷鍵。

這一輪,算打成平手好了。

自動補空格

PEP8的規範要求在逗號、運算符號之類的內容後面加一個空格,這一點Eric作得不錯,在你輸入一個逗號後,它會自動給你補一個空格,而PyCharm顯然考慮得沒有那麼周到。你不得不手動一個個敲空格,或留着到最後使用Reformat File功能來糾正。

代碼自動補全和代碼規範化

兩款IDE的代碼自動補全作得都挺好。硬要挑出一個更好的來,我會把票投給PyCharm, 它的智能化程度彷佛(我無法給出更精確的評價,建議自行體會)更高一些。

PyCharm除了自動補全,還會用相似拼寫檢查的方式檢查你的代碼,當你輸入的代碼不符合PEP8之類的規範時,PyCharm會適時提醒並對該部分代碼做出標記。這個功能確實很貼心,我有理由相信用PyCharm會幫助咱們將代碼寫得更加規範。

此外,PyCharm還會對當前方法下所用的變量進行檢查,當有變量出現未使用、不一致、輸入錯誤等情形時,PyCharm亦會將其一一標出,讓你一目瞭然。

版本控制

版本控制也可算是IDE的標配了吧!Eric6和PyCharm都有版本控制的模塊,不過捨得認爲,PyCharm在這一塊作得更細一些,和GibHub結合得很好,捨得用得很趁手。

數據庫鏈接、查看

這項功能只能算是可選配置了。兩款IDE都帶有數據庫內容瀏覽的功能,它的方便之處在於,咱們要查看數據庫中某項數據時,能夠沒必要打開專用的數據庫管理工具(好比SQLite的SQLite Expert, PostGreSQL的PG Admin,MySQL的PHPMyAdmin等),直接在IDE內查看。

Eric6自帶一個內建的SQL瀏覽器,界面相對簡陋,並且每次打開都必須從新設置,不夠方便。

PyCharm是經過Database Tools and SQL這款插件來實現數據庫鏈接和查看的功能,用來臨時查看一下數據是足夠了。

書籤

在開發過程當中,咱們常常須要在一個文檔中不一樣的位置間切換,此時書籤功能會給咱們帶來很大的便利。

兩款IDE都有書籤功能,PyCharm作得更好一點,它的書籤不會由於你退出程序而清除。而Eric6則會在你每次退出程序時,清空你的書籤設置。

TODO

捨得在堆代碼的時候,想到一些下一步要完善的功能之類的內容時,每每會在文檔中插入一行,行首寫上「# todo,」,而後把當時的想法寫進去。這樣往後就能根據todo的標記和內容來逐漸完善本身所開發的軟件。

兩款IDE都支持Todo功能,它們會把你在當前項目中的每一行標有todo的內容都蒐集起來,以供你隨時查看。只是在功能的完善性上,略有差距:

  • PyCharm在你輸入「# todo,」的時候就將這一行進行高亮處理,讓它變得很是醒目,Eric6默認是不會對「# todo,」做高亮處理的;
  • PyCharm的todo支持大小寫,Eric6默認只支持大寫,要想支持不一樣的格式,須要單獨設置;

相比之下,PyCharm以微弱的優點勝出。

幫助文檔

Eric6自帶一個WebKit內核的幫助瀏覽器,當你設置好Python/PyQt/Pyside/Qt等幫助文檔的路徑後,能夠在幫助菜單中直接點擊這些文檔的連接,Eric6就會調用幫助瀏覽器來顯示這些文檔。

PyCharm雖然有一個外部文檔的設置和對應的菜單命令,但功能實在太弱比,應該好好完善一下才是。

另外PyCharm雖然提供了一個Search EveryWhere的「強大」功能,但因爲搜索結果匹配每每不能盡如人意,使得此功能形如雞肋。

結語

經過上面的比較和分析,相信你們自會得出本身的答案。簡單說一下捨得的觀點:

  • 若是你是個顏控,請選擇PyCharm;
  • 若是你的電腦配置略低(尤爲是內存),跑PyCharm感受慢、卡,請選擇Eric6;
  • 大多數功能,這兩款IDE都大同小異。捨得最介意的是,PyCharm無法在逗號後竟然不能自動補空格,但願開發者能在後續的版本中進一步完善;
  • 至於不少仍在使用非IDE(好比用vim、emacs、sublime text之類的編輯器)的童鞋,捨得的建議是,IDE可讓你的開發效率更高。看上去你用這些編輯器也能完成大部分工做,但別忘了,你費盡九牛二虎之力搞定各類插件的同時,IDE上這些功能早就已經很是成熟了,何須本身再去造輪子呢?

 

本文版權歸捨得學苑全部,歡迎轉載,轉載請註明做者和出處。謝謝!
做者:捨得
首發:捨得新浪博客

相關文章
相關標籤/搜索