eclipse和idea哪個好
有許多爭論的話題是討論它們哪個有更多的插件、快捷鍵等等。它們之間有太多的不同而很難決定什麽才是最重要的。因此,人們都表示兩個IDE在功能性上都差不多,選擇某壹個則是個人喜好問題了。認為這不僅僅是個人喜好的問題,有客觀的原因能表明:Intellij IDEA肯定比Eclipse更好。不會去大量比較兩者細微不同,例如插件與快捷鍵之類的。因為有壹系列的blog是關於這些的,例如:[part 1] [part 2] [part 3]。將會展示IDEA與Eclipse的壹個最大的不同之處。通常IDEA和Eclipse的fans都不曾了解。前者已經習慣性的使用著它而不曾想象 IDE缺少它會怎樣,後者則沒有使用它的習慣且難以想象有了它IDE能做得這麽好。Eclipse的用戶在把玩IDEA的時候通常都不會意識到這個不同點,因為他們習慣了以Eclipse模式工作。為何我如此確信?在開始說明之前,讓我解釋壹下我是誰和為什麽的觀點值得壹聽。使用Eclipse已經5年之久,很了解它,為它編寫插件並真心地喜愛它。然後,換了壹個公司工作,並被強行轉移到IDEA上開發,在這次 “分手”後,才最終意識到為什麽IDEA更加敏銳。而如今已經使用IDEA壹些年了,所以能比較它們兩者,因為了解它們。IDEA與Eclipse主要的不同IDEA之所以更加敏銳的原因是:IDEA懂得上下文。這也是JetBrains員工命名IDEA為intelligent的原因。它真正的含義又是什麽呢?IDEA檢索妳的整個項目,分析項目所有的內容,甚至構建語法樹。幸虧有它,在任何時候無論將鼠標放置在哪裏,IDEA都知道在哪裏並知道在那能幹什麽。仍舊不了然?別擔心,在列舉了以下幾個例子後,壹切就清楚了。這種對上下文的理解表現在很多很多方式上,以下只是其中的壹部分。1.調試通常在調試過程中,想要求壹些表達式的值,在Eclipse中需要選定這個表達式,選定整個表達式非常重要,否則就沒法求出它的值。然後,可以使用Ctrl+Shift+I看到這個表達式的值。使用IDEA不需要選擇任何東西,只需要把光標移到表達式中然後按下Alt+F8。IDEA會很好的理解這個妳可能需要的表達式,然後顯示壹個對話窗口,其中有壹些它給出的建議參數變量。也可以編輯並在對話框中立即將得到這個表達式的值。相當的方便!試過這個特性後,就不會再想在 Eclipse中調試了。基本上在兩個IDE上都能讓做同樣的事,但是使用IDEA會更加簡單和快速。對此認真的表示,這個差異太大了:就像天堂跟人間壹樣。在壹個小小的IDEA對話窗口中就提供了自動完成,語法高亮以及需要的壹切。2.自動完成自動完成使得IDE比notepad更加優秀,在這個領域能感知上下文的IDEA有了質的飛躍,assertElement(By.id("errorMessage"), vi現在想要查找以vi開頭的選項有哪些。IDEA怎麽做的呢?無需等待任何的按鍵,它馬上就能理解assertElement需要壹個Conditaion類的示例作為第二個參數,而在Condition類中有壹個靜態變量名叫visible。IDEA會直接建議這個唯壹的有效選項。然而,Eclipse會怎麽做呢?它不能理解上下文,它不知道光標所在處就是assertElement方法的第二個參數。因此當按下“神聖”的Ctrl+Space時,Eclipse只會簡單的顯示全局中以vi字母開頭的壹切。在壹個美麗的彈出框中看到了很多漂亮的高亮的格式規範的無用的信息。3.重構專業的程序員能夠高效的使用IDE提供的重構功能。所有的現代IDE都提供許多印象深刻的重構功能。但是還是那句,IDEA的重構功能也很聰明智能。它們能讀懂需要什麽,然後針對不同的情況提供給最適合的解決方案。例如,假設有壹個assertErrorMessageIsHidden方法: public void assertErrorMessageIsHidden() { assertElement(By.id("errorMessage"), Condition.visible); }我們以字符串“errorMessage”作為該方法的壹個參數。先從IDEA開始,將光標放在任何字符串“errorMessage”上,按Ctrl+Alt+P(代表“parameter”),IDEA將會建議我們可能可以在哪些表達中用次字符串為參數。當“errorMessage”表達式被選定以後,IDEA將會建議壹些可能的能用做該參數的變量名稱。每月驚奇會經常地驚訝於IDEA的聰敏表現,比如它為提示壹些選項的名稱。它考慮到方法名稱,變量類型甚至是變量值,以及其他的此類變量的名稱,與之前給定的此變量的名稱,除了忽略了生肖。會想說“Wow,IDEA也能這樣?”,想說至少每個月壹次吧。現在然我們看看Eclipse是怎麽樣給出建議的。別忘了,選擇整個"errorMessage"表達式哦。選擇壹個“推薦參數”的重構功能(通過菜單,沒有什麽快捷鍵可供使用),獲得差不多相同的結果,然而,Eclipse不會給出變量名提示選項,但幸虧不會。結論如選擇Java IDE,那麽Intellij IDEA肯定要比Eclipse好的。這不僅僅是個人喜好問題。從客觀上看,IDEA更好。能夠快捷地編寫和修改代碼。它給出恰當的名稱提示,查找適合的方法。它不需要特別地選擇表達式便會猜測到妳想要做的以及想如何對它命名。IDEA預示著並給妳提示。P.S. Remarks我認為IDEA在作為Java IDE時確實比Eclipse更好。如果妳考慮他們其他方面的能力例如用於其他例如C++、Python、Scala的IDE上,或者是作為構建桌面的應用的平臺,Eclipse很有可能拔得頭籌。事實上這是依賴於對他們的定義的,Eclipse已將自己定位為壹個抽象平臺,用來使用插件構建任何工具,而IDEA則定位為壹個“智能的Java IDE”,而且它正如此。作為紀念就嘗試著列舉壹些Eclipse可能比IDEA更好的地方:Eclipse看上去更棒,所有大題小做的SWT以及本地控件都用的很值。Eclipse看上去很穩定的深思熟慮過的程序,它有著漂亮的字體以及圖標。然而當第壹眼看到IDEA是,它像是作噱頭的玩具壹樣,有著不完全的圖標以及笨拙的Swing界面。Eclipse擁有更強的項目結構支持。在IDEA中,項目是有模塊組成。