說實話.作為一個Coder.每天在各種IDE中切換編寫Code.如果一個IDE Look and Feel總是無形中影響你每天Code Farm的心情.那該是多么不爽的事情.特別是針對本人對IDE總是有一種天生“潔癖感”.每當一們語言或技術在無意中吸引我.或是已經在粗糙的本文編輯器初體驗.都會在兩到三天體驗期脫離出來.立馬調到真正高效率的生成環境去Coding.高效率就意味當然脫不了IDE的支持.
但是每次更換新的Coding環境.可能我會花上一到兩天或更多的時間去了解這門語言或技術的背景和使用場景 解決現實問題等.因為這直接影響我決定是否繼續下去.如果在這一切如期進行后.我一般也會上一天的時間去完善設置即將迎接新的Coding IDE設置. 沒看錯是一天的時間! 類似這次進入Python過程 實在是忍不住說點什么.
並非我想吐槽Pycharm.它確實是Code Farm Python的利器.我也是在眾多Coder推薦下才嘗試的使用它來做開發Python的IDE.在試用第一天我就頂購買正版的license.如果你想問我一般情況一天時間到底花在哪?好吧聽我慢慢道來.
首先說說IDE UI界面就是前面提到Look And Feel.
在開辟一個新的技術領域.花了很多時間來判斷這門技術或語言是否值得去學.在IDE選擇我一直保持一種親身體驗的標准.原來也會查找網上一些對某些IDE評測.后來發現各種不靠譜.還是得自己親身驗證. Coder與Coder之間喜好和習慣真的不一.所以如果真的找到適合自己的.還是乖乖自己去體驗吧.類似開發PHP時就用了一個下午時間試用目前市面所有主流的IDE.說說這次的Python吧.
你能在官方Guide文檔找到如下一篇文章.Integrated Development Environments Python IDES.
這篇文章如數列舉出當前市面所有支持Python IDE工具.別高興太早.別忘了后面支持列表.因為我下載Python 3.3最新版.但你可以看到只有很少一些IDE支持了Python 3以上版本.well這樣也好大大減少選擇的范圍.
說到對Pycharm UI第一印象.首先這種界面布局總是讓人感覺不夠Clean. Ps:如下是我調整后的
IDE在實際Coding過程只需要簡單明確三點.
A:當前項目解決方案目錄組織結構
B:Code Editor 主界面
C: Debug調試信息輸出Console或Error List或錯誤列表
D:版本控制集成.[狀態顯示和版本提交]
這四元素基本滿足Coding過程的需求.但如果你打開一個IDE突然跳出很多莫名奇怪的小窗口.你還需要了解這些窗口干嘛的. Close掉后如果在需要時我需要跑到那去設置它顯示啊? 等等…… 這就像你去了解一個SDK框架中某一個極其微小的功能點時. 你都要加載一大堆或是調用一些你完全不知道做什么或是也不想了解一些實現原理和細節時.這也像本來你只想吃到冰激凌上藍莓.而對方卻給你一個制造冰激凌機器給你感受一樣的.
需要和得到的成本完全不成正比啊.
IDE作為工具本身就是解決開發效率、資源協作調度、版本控制這些非常實用的需求.但是 我想說的是但是……請你在搞定這些功能后.能夠考慮一下那些每天即將用到這個IDE用戶的心情的.能否在實用和UI美觀上做一個很好折中. 不要太過丑陋 也不要太過簡單粗糙而導致難以操作. 這些Detail也會影響使用者的心情啊.對我來說首先UI要足夠的Clean. 當然這是建立功能強大基礎上. 特別對於一些布局混亂的IDE 早已經我安裝load出界面那一刻后一份中已經卸載掉了.
IDEUI布局有兩個極端. 一個是過度的開放.完全擁護定制化. 另外一個純粹就是雞肋.開放度低定義一些你完全適應的操作習慣去Coding.類似Pycharm就是前者. Setting界面選項就可見一斑:
密密麻麻的操作選項被橫貼在一塊……
前者的代價是在復雜度高.如果你覺得你做一個產品. 需要學習的一門工具.而如果這個工具除了徒增的復雜度和極高學習曲線.生產效率和斧頭無意. 那這樣設計就有問題. 另外一種.就是讓你適應它規定Role.這就像每天有人盯着你用雙手叫你畫畫一般.在好的才華和技藝也會在這種規則當然無存.相對前者我更痛恨是后者. 關鍵詞 Open.
類似上面選項橫排. 滿眼的信息 排版顯得極為混亂.用戶關注度在界面呈現出后就已經失去焦點了. 大多早已Confused掉了.做好IDE布局同時能夠有一定開放度.
Code Theme:
折騰完頁面布局.我一般會立即去下去對應編輯器的Code Theme. 因為大多編輯器默認Code Style都是很丑陋. 高亮和代碼顏色都無法匹配都不夠合理.如果你常用NEtBeans你也會找到類似的ThemeBuilder定制.
可惜Pycharm沒有.只有簡單的內置幾個簡單的Theme. 對於配色的細節還不夠滿意.FontSize 和BackGround Color 對比度太高.只能草草設置如下:L
不知道各位有沒有體驗”侵入式“Coding體驗. 這里還是采用NetBean做對比吧 這是我NetBeans配置的Python的CodeTheme:
很明顯[故意設置Dust]你會看到. Editor編輯器為暗色. 而Solution和Console輸出的都是明亮色.這個會照成Coding過程中你的注意力會被這些明亮色干擾.無法真正集中到時常變化Editor. 但是如果我們反過來設置成這樣 你會看到:
你會看到.Solution和Console背景色都比Editor要深. 這樣一來Editor明亮色就更容易吸引你的注意力.而這塊也真是高效Coding過程變化最大的一塊.一般情況我解決一些批量容易處理Coding需求是.很容易在這種IDE設置情況有着一種下沉的侵入式的體驗. 這樣會把你全部 注意力的焦點轉移到Editor上來,. 而往往根據個人經驗 這個過程效率往往比較高.
所以你才能感覺Look and Feel用戶有多大.其實潛在轉移注意的焦點.
當Code Theme是進入這些更細節的一些東西.代碼高亮和文本框格式化也是涉及個人操作和細節.我始終是保持一種一種統一的Code Theme Style.這樣即使我在不同IDE切換時也會因為Code Theme不同而導致不適應.
第三是Call –Tip 和Auto-Complete
本來最早我體驗Python過程是在NetBeans.因為它配置簡單.只需要打一個插件包.在NetBeans就有了Python的開發環境.其實我的本機上什么都沒裝.但是NetBeans在引入這個Python同時卻失去Call Tip的功能.這也是我拋棄NetBeans的一個重要原因. 完全無提示:
這讓我Coding過程出錯幾率會大大增加.對於那些龐大的類庫和方法名 CAll –Tip 已經是無法或缺的.
好吧我曾任在購買Pycharm license之前.我基本使用所有免費的IDE. 是不是太偏執了. 沒辦法 不過還是要來逐一吐槽一下:
首先使用就是PythonWin Editor 看名字就明白基於Windows. 選着使用主要因為它的Call Tip功能強大.只需要Import一個包. 然后F5一下所有函數和變量都能Call –Tips出來,很強大.但痛苦的是不能用來編寫wxPython.
Eric4也是一個很小眾的工具.但是我還是用了. Call-Tips功能極弱.而且惡心的是必須先把導入打包用它的工具API Generator 生成API. 最無語的是只能對包里的類和函數進行Call-Tips提示. 這是個巨大缺陷. so give up
WingIDE的Auto Complete和Call Tips功能都很強大. 比PythonWin要強很多/.它不僅能夠提示代碼.還能在右側的工具里顯示Doc.不過期Pro是商用版.我只是采用試用. Free版本恰恰就少了這兩個及其重要的功能.
Kodomo當然不陌生了. ActiveState出的IDE. tip功能一般.關鍵是免費版本的是不能調試的. 況且關鍵是原來在開發Php時我對這個工具就沒有好感.就是因為支持Python原因繼續玩弄一下 果斷卸載了.
剩下就是Vim+Emacs 這個都是神器.不用多說.這個篇幅會放在下篇.當然除了如上這些.還使用一些PyScript一些輕量級的IDe 但是Call –Tips功能都不太滿意啊. 都在PythonWin之下.果斷不理.
說道這還好Pycharm對Call Tips和Auto complete功能都很完整.對Debug調試支持也很好.也是我願意付費一個重要原因.
第四 快捷鍵.
對於一個注重全鍵盤操作Coder來說.如果編輯器不支持這個. 這也是我果斷拋棄的原因之一.
現在基本所有IDE都支持快捷鍵.但是如果你具有數量Vim.並不想破換中操作習慣該如何? 好的IDE是繼承這些操作快捷鍵並且可以修改和定制.而大多數IDE基本不會考慮這些.如果需要Visual Studio 和Vim切換.轉換新的IDE這就需要一個新的過程. 所以快鍵鍵保持和定制直接影響coding效率.
說了這么多.其實開始一門新技術.找到一個好用IDE真的不簡單.特別對於我這種吹毛求疵 有潔癖的用戶.那更是得非一般功夫.吐槽這么多.還是希望Support IDe功能能真正做到好用 Clean. 美觀.這真的是夢想一件事. 如果你每天覺得用IDE都是一件快事. 想不提高開發效率都難啊.