為何IntelliJ IDEA比Eclipse更好

閱讀本文大概需要 4.2 分鐘。

本文為譯文校套,翻譯:彭博

https://www.oschina.net/news/26929

爭論

有一些沒有唯一正確答案的“永恒”的問題集灌,例如推汽,更好的是:Windows還是Linux,Java還是C#弧蝇;誰更強(qiáng)大:Chuck Norris還是Van Damme碳褒。

其中的一個Holy War便是Java和IDE的選擇:

有許多爭論的話題是討論它們哪個有更多的插件、快捷鍵等等看疗。它們之間有太多的不同而很難決定什么才是最重要的沙峻。

因此,人們都表示兩個IDE在功能上都差不多两芳,選擇某一個則是個人喜好問題了摔寨。

我認(rèn)為這不僅僅是個人喜好的問題,有客觀的原因能表明:Intellij IDEA 肯定比 Eclipse 更好怖辆。

我不會去大量比較兩者細(xì)微不同是复,例如插件與快捷鍵之類的。

因為有一系列的blog是關(guān)于這些的竖螃。

我將會展示IDEA與Eclipse的一個最大的不同之處淑廊。通常IDEA和Eclipse的擁護(hù)者都不曾了解。

前者已經(jīng)習(xí)慣性的使用著它而不曾想象IDE缺少它會怎樣特咆,后者則沒有使用它的習(xí)慣且難以想象有了它IDE能做得這么好季惩。

Eclipse的用戶在把玩IDEA的時候通常都不會意識到這個不同點,因為他們習(xí)慣了以Eclipse模式工作坚弱。

為何我如此確信蜀备?

在開始說明之前关摇,讓我解釋一下我是誰和為什么我的觀點值得一聽荒叶。

我使用Eclipse已經(jīng)5年之久,我很了解它输虱,我為它編寫插件并真心地喜愛它些楣。

然后,我換了一個公司工作,并被強(qiáng)行轉(zhuǎn)移到IDEA上開發(fā)愁茁,在這次“分手”后蚕钦,我才最終意識到為什么IDEA更加敏銳。

而如今我我已經(jīng)使用IDEA一些年了鹅很,所以我能比較它們兩者嘶居,因為我了解它們。

IDEA與Eclipse主要的不同

IDEA之所以更加敏銳的原因是:IDEA懂得上下文促煮。這也是JetBrains員工命名IDEA為intelligent的原因邮屁。它真正的含義又是什么呢?

IDEA檢索你的整個項目菠齿,分析項目所有的內(nèi)容佑吝,甚至構(gòu)建語法樹。幸虧有它绳匀,在任何時候無論你將鼠標(biāo)放置在哪里芋忿,IDEA都知道你在哪里并知道在那能干什么。

仍舊不了然疾棵?別擔(dān)心戈钢,在列舉了以下幾個例子后,一切就清楚了是尔。

這種對上下文的理解表現(xiàn)在很多很多方式上逆趣,以下只是其中的一部分。

1嗜历、調(diào)試

通常在調(diào)試過程中宣渗,我們想要求一些表達(dá)式的值,在Eclipse中你需要選定這個表達(dá)式梨州,選定整個表達(dá)式非常重要痕囱,否則你就沒法求出它的值。

然后暴匠,你可以使用Ctrl+Shift+I看到這個表達(dá)式的值鞍恢。

使用IDEA你不需要選擇任何東西,你只需要把光標(biāo)移到你的表達(dá)式中然后按下Alt+F8每窖。

IDEA會很好的理解這個你可能需要的表達(dá)式帮掉,然后顯示一個對話窗口,其中有一些它給出的建議參數(shù)變量窒典。

你也可以編輯并在對話框中立即將得到這個表達(dá)式的值蟆炊。相當(dāng)?shù)姆奖悖≡囘^這個特性后瀑志,你就不會再想在Eclipse中調(diào)試了涩搓。

基本上在兩個IDE上都能讓你做同樣的事污秆,但是使用IDEA會更加簡單和快速。

對此我認(rèn)真的表示昧甘,這個差異太大了:就像天堂跟人間一樣良拼。在一個小小的IDEA對話窗口中就提供了自動完成,語法高亮以及你需要的一切充边。

2庸推、自動完成

自動完成使得IDE比notepad更加優(yōu)秀,在這個領(lǐng)域能感知上下文的IDEA有了質(zhì)的飛躍浇冰。例如予弧,我們開始如下一行代碼:

assertElement(By.id("errorMessage"), vi

現(xiàn)在我們想要查找以vi開頭的選項有哪些。

IDEA怎么做的呢湖饱?

無需等待任何的按鍵掖蛤,它馬上就能理解assertElement需要一個Conditaion類的示例作為第二個參數(shù),而在Condition類中有一個靜態(tài)變量名叫visible井厌。

IDEA會直接建議這個唯一的有效選項蚓庭。

然而,Eclipse會怎么做呢仅仆?

唉器赞,它不能理解上下文,它不知道光標(biāo)所在處就是assertElement方法的第二個參數(shù)墓拜。

因此當(dāng)你按下“神圣”的Ctrl+Space時港柜,Eclipse只會簡單的顯示全局中以vi字母開頭的一切。

在一個美麗的彈出框中我看到了很多漂亮的高亮的格式規(guī)范的無用的信息咳榜。:(

3夏醉、重構(gòu)

專業(yè)的程序員能夠高效的使用IDE提供的重構(gòu)功能。所有的現(xiàn)代IDE都提供許多印象深刻的重構(gòu)功能涌韩。

但是還是那句畔柔,IDEA的重構(gòu)功能也很聰明智能。它們能讀懂你需要什么臣樱,然后針對不同的情況提供給你最適合的解決方案靶擦。

例如,假設(shè)我們有一個assertErrorMessageIsHidden方法:

public void assertErrorMessageIsHidden() {? assertElement(By.id("errorMessage"), Condition.visible);}

我們以字符串“errorMessage”作為該方法的一個參數(shù)雇毫。

讓我們先從IDEA開始玄捕,將光標(biāo)放在任何字符串“errorMessage”上,按Ctrl+Alt+P(代表“parameter”)棚放,IDEA將會建議我們可能可以在哪些表達(dá)中用次字符串為參數(shù)枚粘。

當(dāng)“errorMessage”表達(dá)式被選定以后,IDEA將會建議一些可能的能用做該參數(shù)的變量名稱席吴。

不時的驚喜

你會經(jīng)常地驚訝于IDEA的聰敏表現(xiàn)赌结,比如它為你提示一些選項的名稱捞蛋。

它考慮到方法名稱孝冒,變量類型甚至是變量值柬姚,以及其他的此類變量的名稱,與之前你給定的此變量的名稱庄涡,除了忽略了你的生肖量承。

相信我,你會想說“Wow,IDEA也能這樣穴店?”撕捍,我想說至少每個月一次吧。

現(xiàn)在讓我們看看Eclipse是怎么樣給出建議的泣洞。

別忘了忧风,選擇整個"errorMessage"表達(dá)式哦。

選擇一個“推薦參數(shù)”的重構(gòu)功能(通過菜單球凰,沒有什么快捷鍵可供使用)狮腿,獲得差不多相同的結(jié)果,然而呕诉,Eclipse不會給出變量名提示選項缘厢,但幸虧不會。

結(jié)論

如果我們選擇Java IDE甩挫,那么Intellij IDEA肯定要比Eclipse好的贴硫。

這不僅僅是個人喜好問題。從客觀上看伊者,IDEA更好英遭。

它是的你能夠快捷地編寫和修改代碼。它給出恰當(dāng)?shù)拿Q提示亦渗,查找適合的方法贪绘。

它不需要你特別地選擇表達(dá)式便會猜測到你想要做的以及你想如何對它命名。IDEA預(yù)示著并給你提示央碟。

P.S. Remarks

我認(rèn)為IDEA在作為Java IDE時確實比Eclipse更好税灌。

如果你考慮他們其他方面的能力例如用于其他例如C++、Python亿虽、Scala的IDE上菱涤,或者是作為構(gòu)建桌面的應(yīng)用的平臺,Eclipse很有可能拔得頭籌洛勉。

事實上這是依賴于對他們的定義的粘秆,Eclipse已將自己定位為一個抽象平臺,用來使用插件構(gòu)建任何工具收毫,而IDEA則定位為一個“智能的Java IDE”攻走,而且它正如此殷勘。

作為紀(jì)念我就嘗試著列絕一些Eclipse可能比IDEA更好的地方:

Eclipse看上去更棒,所有大題小做的SWT以及本地控件都用的很值昔搂。Eclipse看上去很穩(wěn)定的深思熟慮過的程序玲销,它有著漂亮的字體以及圖標(biāo)。然而當(dāng)?shù)谝谎劭吹絀DEA是摘符,它像是作噱頭的玩具一樣贤斜,有著不完全的圖標(biāo)以及笨拙的Swing界面。

Eclipse擁有更強(qiáng)的項目結(jié)構(gòu)支持逛裤。在IDEA中瘩绒,你的項目是有模塊組成。在Eclipse中你擁有一個由工程組成的工作區(qū)带族,每個工程都能被單獨打開或關(guān)閉锁荔,分組或隱藏。但是你真的需要么蝙砌?

為Eclipse編寫插件似乎很簡單阳堕。

IDEA比Eclipse使用更多的系統(tǒng)資源。這其實也說得通--因為IDEA做得更多拍霜。

最后嘱丢,Eclipse是免費的,然而IDEA Community版本已經(jīng)夠我用了祠饺。

最后的建議

如果你需要漂亮的圖標(biāo)越驻,用來創(chuàng)建桌面程序的平臺,C++IDE或者你用一個低配的筆記本工作道偷,那么Eclipse可能對你來說是更好的選擇缀旁。

但是如果你是一個正兒八經(jīng)的Java開發(fā)者,你需要更快更方便的工具幫你集中注意于解決問題而不是讓你分心勺鸦,IDEA則正是你所需要的并巍。

往期精彩回顧

程序員接私活的7大平臺利器

每秒 570000 的寫入,如何實現(xiàn)换途?

這40張圖送給單身程序員懊渡,情人節(jié)請一笑而過!

IDEA一定要懂的32條快捷鍵

世上最污技術(shù)解讀军拟,我竟然秒懂了剃执。

Bing掛了!百度又“贏了”

遇到賣茶女懈息,應(yīng)該如何優(yōu)雅的回復(fù)她

我被程序員坑了600萬致公司倒閉肾档,當(dāng)事人逐條反駁:這鍋我不背

一千行MySQL詳細(xì)學(xué)習(xí)筆記(值得學(xué)習(xí)與收藏)

七點建議助您寫出優(yōu)雅的Java代碼

歡迎關(guān)注我的公眾號「程序員的成長之路」,閱讀更多精彩!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末怒见,一起剝皮案震驚了整個濱河市俗慈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌遣耍,老刑警劉巖闺阱,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異配阵,居然都是意外死亡馏颂,警方通過查閱死者的電腦和手機(jī)示血,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進(jìn)店門棋傍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人难审,你說我怎么就攤上這事瘫拣。” “怎么了告喊?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵麸拄,是天一觀的道長。 經(jīng)常有香客問我黔姜,道長拢切,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任秆吵,我火速辦了婚禮淮椰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘纳寂。我一直安慰自己主穗,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布毙芜。 她就那樣靜靜地躺著忽媒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪腋粥。 梳的紋絲不亂的頭發(fā)上晦雨,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天,我揣著相機(jī)與錄音隘冲,去河邊找鬼闹瞧。 笑死,一個胖子當(dāng)著我的面吹牛对嚼,可吹牛的內(nèi)容都是我干的夹抗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼纵竖,長吁一口氣:“原來是場噩夢啊……” “哼漠烧!你這毒婦竟也來了杏愤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤已脓,失蹤者是張志新(化名)和其女友劉穎珊楼,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體度液,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡厕宗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了堕担。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片已慢。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖霹购,靈堂內(nèi)的尸體忽然破棺而出佑惠,到底是詐尸還是另有隱情,我是刑警寧澤齐疙,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布膜楷,位于F島的核電站,受9級特大地震影響贞奋,放射性物質(zhì)發(fā)生泄漏赌厅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一轿塔、第九天 我趴在偏房一處隱蔽的房頂上張望特愿。 院中可真熱鬧,春花似錦催训、人聲如沸洽议。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽亚兄。三九已至,卻和暖如春采驻,著一層夾襖步出監(jiān)牢的瞬間审胚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工礼旅, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留膳叨,地道東北人。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓痘系,卻偏偏與公主長得像菲嘴,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容