“一個真正的程序員是不用IDE(譯者注:集成開發環境)的,他們都是用帶著某某插件的文本編輯器來寫代碼。”我們總能在某些地方聽到此類觀點。然而,盡管越來越多的人同意這樣的觀點,但是一個IDE仍然非常有用,它設置簡單,使用起來也很方便,因此不能比這樣更合適編寫一個項目了。所以鑒於這點,在這裡我想給大家列一份在Linux平台上比較好的C/C++ IDE清單。為什麼特地說C/C++呢?因為C語言是我最喜歡的編程語言,而且我們總要找個切入點來開始。另外要注意的是,通常有很多種編寫C代碼的方法,所以為了消減清單的篇幅,我只選擇了”真正好用的IDE”,而不是諸如Gedit或Vim這種注入插件的文本編輯器。並不是說這些編輯器不好,只是如果我將文本編輯器包含進去那這份清單就將永無止境了。
用我個人的最愛來開篇,Code::Blocks是一款簡單快速的專有C/C++ IDE。就像任何一款強大的IDE一樣, 它集成了語法高亮、書簽功能、自動補全功能、項目管理和一個調試器。它最閃亮的地方在於它簡單的插件系統,裡面添加了不可缺少的工具,像Valgrind和CppCheck,還有不太重要的比如像俄羅斯方塊這樣的小游戲。但是我特別喜歡它的理由是它連貫方便的快捷鍵設定和大量的卻感受不到擁擠的選項設置。
我知道我只說”真正好用的IDE”而不是帶著插件的文本編輯器,但是,Eclipse的確是一款”真正好用的IDE”,只是Eclipse需要一些插件(或經過一些改裝)來編寫C程序,所以嚴格來說我無法反駁我自己。而且,做一份IDE清單不提到Eclipse這個“巨人”是不可能的事情。無論喜歡它與否,Eclipse仍然是一款強大的Java編程工具。這裡要感謝CDT 項目,讓Eclipse編寫C程序變得可能。你同樣可以體驗到Eclipse的強大功能,包括它的一些傳統功能特點比如自動補全、代碼大綱、代碼生成器和先進的重構功能。照我話說,它的不足之處在於它不如Code::Blocks那麼輕量級,它仍然很臃腫,要花費很多時間去載入。但是如果你的電腦可以駕馭它,或者你是個忠實的Eclipse粉,那麼它一定是你的不二選擇。
犧牲了很多特色功能但是增加了很多靈活性,Geany就是這樣一款與Eclipse對立的軟件。但是對於它所缺乏的地方(比如說沒有調試器), Geany用一些漂亮小巧的特色功能彌補了它們:一個可以做筆記的區域、基於模板創作、代碼大綱、自定義快捷鍵和插件管理。相比於現在的IDE,Geany仍然是一款作用廣泛的文本編輯器,然而,因為它的功能亮點和它的界面設計,所以我把它放在這份列表裡。
這又是這份列表裡的一個“巨人級”工具,MonoDevelop那無與倫比的體驗來源於它的外表和界面。我個人非常喜愛它的項目管理體系和它的一體化版本控制系統。插件系統同樣漂亮地讓人震驚。但是由於一些原因,所有的設置和對所有編程語言的支持對於我來說讓我感覺有點“資源過剩”了。它仍然是我在過去經常使用的偉大工具,但不是我在單單處理C語言時的第一選擇。
它身上有著強烈的“GNOME即視感”,Anjuta的外觀很具爭議。我傾向於把它看作是帶著調試器的Geany升級版,但是它的界面實際上要復雜得多。我確實很享受能在項目、文件夾和代碼大綱視圖之間來回切換的標簽系統,我本想用諸如更多的快捷方法來移動文件,然而,這是一個很好的提供了顯著編譯功能和構建選項的工具,它能夠支持哪些很有特點的需求。
我不是非常熟悉Komodo Edit,但是在試用了一段時間之後,我被它很多很多的優點給驚喜到了。首先,基於標簽的導航功能有很強的可預見性。其次它奇特的代碼大綱讓我想到了Sublime Text。此外,它的宏系統和文件比較器使得Komodo Edit非常實用。它的插件庫讓它幾乎是完美的,說“幾乎”是因為在其它IDE裡我的確找不到能與之相媲美的快捷方法了。而且我們能享受到更多特別的C/C++工具,這往往是普通IDE的不足之處。然而,Komodo Edit就能做到。
就好像Eclipse一樣,這又是一款不得不提的“巨人級”軟件。擁有的功能包括通過標簽進行導航、項目管理、代碼大綱、更改歷史追蹤和大量工具,NetBeans可能是最完整的IDE了,我能用半頁來列出它所有讓人震驚的特色功能。但是這同時也很容易地向你透露了它的主要缺點,它太臃腫了。比起它的強大,我更喜歡基於插件的軟件,因為我覺得不太會有人為了一個同樣的項目同時需要Git和Mercurial相結合來工作,我是不是很瘋狂?但是如果你有耐心去掌握它所有的選項,那你差不多無論到哪裡都是IDE大師了。
說到這,肯定照顧到所有的KDE粉絲,KDevelop會是你希望的答案。它擁有許多配置選項,如果你設法去征服KDevelop,那它就是你的。你們說我膚淺,但是我真的從來沒有深入過除它界面以外的層次了,對於我來說編輯器本身就攜帶著大量的導航選項和可定制的快捷鍵簡直是一個再糟糕不過的事了。它的調試器也是相當高級,要去練習掌握。然而,這樣的耐心是有回報的,就是能領會到這款靈活的IDE的全部能力,並且由於它令人吃驚的嵌入式文件編制,你會給予它一種特殊的信任。
留在最後的不代表是最差的,CodeLite展現給你一種傳統的編程規則卻仍然能讓你從它身上那特有的感覺上有所收獲,即使它的界面一開始的確讓我想到了Code::Blocks和Anjuta,只是不包括大量的插件庫。無論你想要比較文件、插入一條版權塊、定義縮略語或者用Git來工作,總有一款插件適合你。如果我不得不挑點毛病,我想說它缺乏一些符合我口味的導航快捷鍵,但這是真的。
最後,我希望這份清單能讓你給自己最喜歡的語言探索到更多新的IDE。雖然Code::Blocks仍然是我的最愛,不過它有一些很強大的對手。當然我們也可以遠離Linux上的IDE,而用文本編輯器去編寫C/C++代碼。所以如果你有什麼其它的建議想法,在評論中讓我們獲悉。或者如果你想要我再說說關於一些其它語言的IDE,也可以評論裡提出。