為何IntelliJ IDEA比Eclipse更好

爭論

有一些沒有唯一正確答案的“永恒”的問題,例如,更好的是:Windows還是Linux搔谴,Java還是C#干旁;誰更強(qiáng)大:Chuck Norris還是Van Damme驶沼。

其中的一個(gè)Holy War便是Java和IDE的選擇:

有許多爭論的話題是討論它們哪個(gè)有更多的插件、快捷鍵等等争群。它們之間有太多的不同而很難決定什么才是最重要的回怜。

因此,人們都表示兩個(gè)IDE在功能上都差不多换薄,選擇某一個(gè)則是個(gè)人喜好問題了玉雾。

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

我不會去大量比較兩者細(xì)微不同复旬,例如插件與快捷鍵之類的垦缅。因?yàn)橛幸幌盗械腷log是關(guān)于這些的。我將會展示IDEA與Eclipse的一個(gè)最大的不同之處驹碍。通常IDEA和Eclipse的擁護(hù)者都不曾了解壁涎。

前者已經(jīng)習(xí)慣性的使用著它而不曾想象IDE缺少它會怎樣,后者則沒有使用它的習(xí)慣且難以想象有了它IDE能做得這么好志秃。Eclipse的用戶在把玩IDEA的時(shí)候通常都不會意識到這個(gè)不同點(diǎn)怔球,因?yàn)樗麄兞?xí)慣了以Eclipse模式工作。

為何我如此確信浮还?

在開始說明之前庞溜,讓我解釋一下我是誰和為什么我的觀點(diǎn)值得一聽。

我使用Eclipse已經(jīng)5年之久碑定,我很了解它流码,我為它編寫插件并真心地喜愛它。然后延刘,我換了一個(gè)公司工作漫试,并被強(qiáng)行轉(zhuǎn)移到IDEA上開發(fā),在這次“分手”后碘赖,我才最終意識到為什么IDEA更加敏銳驾荣。而如今我我已經(jīng)使用IDEA一些年了,所以我能比較它們兩者普泡,因?yàn)槲伊私馑鼈儭?/p>

IDEA與Eclipse主要的不同

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

IDEA檢索你的整個(gè)項(xiàng)目歧匈,分析項(xiàng)目所有的內(nèi)容,甚至構(gòu)建語法樹砰嘁。幸虧有它件炉,在任何時(shí)候無論你將鼠標(biāo)放置在哪里,IDEA都知道你在哪里并知道在那能干什么矮湘。

仍舊不了然斟冕?別擔(dān)心,在列舉了以下幾個(gè)例子后缅阳,一切就清楚了磕蛇。

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

1秀撇、調(diào)試

通常在調(diào)試過程中超棺,我們想要求一些表達(dá)式的值,在Eclipse中你需要選定這個(gè)表達(dá)式捌袜,選定整個(gè)表達(dá)式非常重要说搅,否則你就沒法求出它的值。然后虏等,你可以使用Ctrl+Shift+I看到這個(gè)表達(dá)式的值弄唧。

使用IDEA你不需要選擇任何東西,你只需要把光標(biāo)移到你的表達(dá)式中然后按下Alt+F8霍衫。IDEA會很好的理解這個(gè)你可能需要的表達(dá)式候引,然后顯示一個(gè)對話窗口,其中有一些它給出的建議參數(shù)變量敦跌。你也可以編輯并在對話框中立即將得到這個(gè)表達(dá)式的值澄干。相當(dāng)?shù)姆奖悖≡囘^這個(gè)特性后柠傍,你就不會再想在Eclipse中調(diào)試了麸俘。

基本上在兩個(gè)IDE上都能讓你做同樣的事,但是使用IDEA會更加簡單和快速惧笛。對此我認(rèn)真的表示从媚,這個(gè)差異太大了:就像天堂跟人間一樣。在一個(gè)小小的IDEA對話窗口中就提供了自動完成患整,語法高亮以及你需要的一切拜效。

2、自動完成

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

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

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

IDEA怎么做的呢赴穗?無需等待任何的按鍵,它馬上就能理解assertElement需要一個(gè)Conditaion類的示例作為第二個(gè)參數(shù)愈涩,而在Condition類中有一個(gè)靜態(tài)變量名叫visible望抽。IDEA會直接建議這個(gè)唯一的有效選項(xiàng)。

然而履婉,Eclipse會怎么做呢?唉斟览,它不能理解上下文毁腿,它不知道光標(biāo)所在處就是assertElement方法的第二個(gè)參數(shù)。因此當(dāng)你按下“神圣”的Ctrl+Space時(shí),Eclipse只會簡單的顯示全局中以vi字母開頭的一切已烤。

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

3、重構(gòu)

專業(yè)的程序員能夠高效的使用IDE提供的重構(gòu)功能胯究。所有的現(xiàn)代IDE都提供許多印象深刻的重構(gòu)功能稍计。但是還是那句,IDEA的重構(gòu)功能也很聰明智能裕循。它們能讀懂你需要什么臣嚣,然后針對不同的情況提供給你最適合的解決方案。

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

publicvoidassertErrorMessageIsHidden(){

assertElement(By.id("errorMessage"),?Condition.visible);

}

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

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

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

不時(shí)的驚喜

你會經(jīng)常地驚訝于IDEA的聰敏表現(xiàn),比如它為你提示一些選項(xiàng)的名稱座哩。它考慮到方法名稱徒扶,變量類型甚至是變量值,以及其他的此類變量的名稱八回,與之前你給定的此變量的名稱酷愧,除了忽略了你的生肖。相信我缠诅,你會想說“Wow,IDEA也能這樣溶浴?”,我想說至少每個(gè)月一次吧管引。

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

別忘了,選擇整個(gè)"errorMessage"表達(dá)式哦褥伴。選擇一個(gè)“推薦參數(shù)”的重構(gòu)功能(通過菜單谅将,沒有什么快捷鍵可供使用),獲得差不多相同的結(jié)果重慢,然而饥臂,Eclipse不會給出變量名提示選項(xiàng),但幸虧不會似踱。

結(jié)論

如果我們選擇Java IDE隅熙,那么Intellij IDEA肯定要比Eclipse好的稽煤。這不僅僅是個(gè)人喜好問題。從客觀上看囚戚,IDEA更好酵熙。它是的你能夠快捷地編寫和修改代碼。它給出恰當(dāng)?shù)拿Q提示驰坊,查找適合的方法匾二。它不需要你特別地選擇表達(dá)式便會猜測到你想要做的以及你想如何對它命名。IDEA預(yù)示著并給你提示拳芙。

P.S. Remarks

我認(rèn)為IDEA在作為Java IDE時(shí)確實(shí)比Eclipse更好察藐。如果你考慮他們其他方面的能力例如用于其他例如C++、Python态鳖、Scala的IDE上转培,或者是作為構(gòu)建桌面的應(yīng)用的平臺,Eclipse很有可能拔得頭籌浆竭。

事實(shí)上這是依賴于對他們的定義的浸须,Eclipse已將自己定位為一個(gè)抽象平臺,用來使用插件構(gòu)建任何工具邦泄,而IDEA則定位為一個(gè)“智能的Java IDE”删窒,而且它正如此。

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

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

Eclipse擁有更強(qiáng)的項(xiàng)目結(jié)構(gòu)支持站宗。在IDEA中,你的項(xiàng)目是有模塊組成益愈。在Eclipse中你擁有一個(gè)由工程組成的工作區(qū)梢灭,每個(gè)工程都能被單獨(dú)打開或關(guān)閉,分組或隱藏蒸其。但是你真的需要么敏释?

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

IDEA比Eclipse使用更多的系統(tǒng)資源摸袁。這其實(shí)也說得通--因?yàn)镮DEA做得更多钥顽。

最后,Eclipse是免費(fèi)的靠汁,然而IDEA Community版本已經(jīng)夠我用了耳鸯。

最后的建議

如果你需要漂亮的圖標(biāo)湿蛔,用來創(chuàng)建桌面程序的平臺膀曾,C++IDE或者你用一個(gè)低配的筆記本工作县爬,那么Eclipse可能對你來說是更好的選擇。但是如果你是一個(gè)正兒八經(jīng)的Java開發(fā)者添谊,你需要更快更方便的工具幫你集中注意于解決問題而不是讓你分心财喳,IDEA則正是你所需要的。

擴(kuò)展閱讀

使用了eclipse10年之后斩狱,我終于投向了IDEA

IntelliJ Idea 常用快捷鍵 列表(實(shí)戰(zhàn)終極總結(jié)6摺!K弧泌枪!)

Intellij IDEA神器居然還有這些小技巧

Spring注解@Resource和@Autowired區(qū)別對比

也許,這樣理解HTTPS更容易

作者:彭博

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末秕岛,一起剝皮案震驚了整個(gè)濱河市碌燕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌继薛,老刑警劉巖修壕,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異遏考,居然都是意外死亡慈鸠,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門灌具,熙熙樓的掌柜王于貴愁眉苦臉地迎上來青团,“玉大人,你說我怎么就攤上這事咖楣《桨剩” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵截歉,是天一觀的道長胖腾。 經(jīng)常有香客問我,道長瘪松,這世上最難降的妖魔是什么咸作? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮宵睦,結(jié)果婚禮上记罚,老公的妹妹穿的比我還像新娘。我一直安慰自己壳嚎,他們只是感情好桐智,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布末早。 她就那樣靜靜地躺著,像睡著了一般说庭。 火紅的嫁衣襯著肌膚如雪然磷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天刊驴,我揣著相機(jī)與錄音姿搜,去河邊找鬼。 笑死捆憎,一個(gè)胖子當(dāng)著我的面吹牛舅柜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播躲惰,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼致份,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了础拨?” 一聲冷哼從身側(cè)響起氮块,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎太伊,沒想到半個(gè)月后雇锡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡僚焦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年锰提,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片芳悲。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡立肘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出名扛,到底是詐尸還是另有隱情谅年,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布肮韧,位于F島的核電站融蹂,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏弄企。R本人自食惡果不足惜超燃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拘领。 院中可真熱鬧意乓,春花似錦、人聲如沸约素。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至士葫,卻和暖如春乞而,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背为障。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工晦闰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鳍怨。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像跪妥,于是被迫代替她去往敵國和親鞋喇。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

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

  • 閱讀本文大概需要 4.2 分鐘眉撵。 本文為譯文侦香,翻譯:彭博 https://www.oschina.net/news...
    良月柒閱讀 14,075評論 0 13
  • 一夜的雨,在這清秋纽疟,帶來一場細(xì)細(xì)碎碎的寒意罐韩。 雨中有淡淡的桂子味道,在煙色中拂衣而過污朽。 那若有若無的清幽散吵,婉約在歲...
    江元安閱讀 348評論 2 9
  • 今天爺爺請朋友吃飯,奶奶辛苦忙家務(wù)蟆肆,我要忙工作矾睦,妹妹去上口才課的重?fù)?dān)要落在大她五歲的哥哥身上了,哥哥從不愿意到配合...
    大漠孤煙丁閱讀 407評論 0 0
  • 暖暖陽光炎功,暖暖心枚冗;滿滿春意,滿滿新蛇损。凄凄寒風(fēng)赁温,凄凄目;瑟瑟?dú)埢ㄓ倨耄瑵瓭恪?/div>
    安好無恙丶閱讀 242評論 0 3
  • 人和人本就是不一樣的股囊,就像你喜歡洋溢熱情的夏,我喜歡有雪飄落的冬床玻。 你喜歡華燈初上的夜毁涉,我喜歡清晨拂面的風(fēng)。你喜歡...
    浮與游閱讀 337評論 0 1