新聞中心
這么多年來(lái),我觀察到滾滾歷史潮流正在從Eclipse涌向IntelliJ IDEA。去年,兩者的使用率幾乎相等,但是我感覺(jué)天平正在漸漸傾向IDEA。

創(chuàng)新互聯(lián)是一家網(wǎng)站設(shè)計(jì)公司,集創(chuàng)意、互聯(lián)網(wǎng)應(yīng)用、軟件技術(shù)為一體的創(chuàng)意網(wǎng)站建設(shè)服務(wù)商,主營(yíng)產(chǎn)品:成都響應(yīng)式網(wǎng)站建設(shè)、成都品牌網(wǎng)站建設(shè)、成都全網(wǎng)營(yíng)銷推廣。我們專注企業(yè)品牌在網(wǎng)站中的整體樹(shù)立,網(wǎng)絡(luò)互動(dòng)的體驗(yàn),以及在手機(jī)等移動(dòng)端的優(yōu)質(zhì)呈現(xiàn)。成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、移動(dòng)互聯(lián)產(chǎn)品、網(wǎng)絡(luò)運(yùn)營(yíng)、VI設(shè)計(jì)、云產(chǎn)品.運(yùn)維為核心業(yè)務(wù)。為用戶提供一站式解決方案,我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶,為客戶提供賞析悅目的作品,網(wǎng)站的價(jià)值服務(wù)。
IDEA就像IDE中的iPhone——它的用戶會(huì)告訴你“一旦你習(xí)慣之后,你會(huì)覺(jué)得它更好用”,或者“你怎么還在使用Eclipse?”亦或是“IDEA太棒了,每個(gè)人都應(yīng)該換成IDEA”,等等。
在過(guò)去的12年時(shí)間里,我主要使用Eclipse,但是在某些情況下,我使用IDEA——在我編寫Scala的時(shí)候,編寫Android的時(shí)候,以及最近——由于Eclipse未能為Java 9發(fā)行版做好準(zhǔn)備,所以經(jīng)過(guò)半天的努力之后,我只能切換到IDEA,直到Eclipse終于有了一個(gè)可用的Java 9版本(包括Maven和其他東西)。
我總是很快地回到Eclipse。我仍然更偏愛(ài)它。不僅僅是因?yàn)槲乙呀?jīng)內(nèi)化了所有的關(guān)鍵字組合(你可以在IDEA中重用這些組合),也是因?yàn)樵贗DEA中還有一些我覺(jué)得更糟糕的東西。當(dāng)然,IDEA有許多很酷的功能,如代碼改進(jìn)建議,以及它有實(shí)際上無(wú)所不能的有效插件。但我發(fā)現(xiàn)一些與更基本的開(kāi)發(fā)工作流程和體驗(yàn)有關(guān)的問(wèn)題。這些無(wú)法用糖衣包裹的“炮彈”是:
1、項(xiàng)目不是自動(dòng)構(gòu)建的(默認(rèn)情況下),所以你可以以編譯錯(cuò)誤結(jié)束,直到你打開(kāi)一個(gè)非編譯文件或者運(yùn)行一個(gè)構(gòu)建。然后打開(kāi)自動(dòng)構(gòu)建,讓計(jì)算機(jī)爬動(dòng)起來(lái)。我知道我的計(jì)算機(jī)需要升級(jí),但這不是重點(diǎn)——沒(méi)有“構(gòu)建在變化上”對(duì)第一次嘗試IDEA的我來(lái)說(shuō)是一個(gè)巨大的“驚喜”。
我最近在Twitter上抱怨說(shuō),這居然“是一個(gè)功能”。依據(jù)貌似是如果你使用重構(gòu),那就不應(yīng)該發(fā)生。但是,有數(shù)十起案例表明它確確實(shí)實(shí)發(fā)生了。通過(guò)添加方法參數(shù)、更改參數(shù)類型、刪除參數(shù)(此處IDE無(wú)法根據(jù)類型推斷刪除哪個(gè)參數(shù))或通過(guò)更改返回類型來(lái)重構(gòu)。另外,Maven / Gradle依賴關(guān)系的改變可能會(huì)引入你無(wú)法看到的編譯問(wèn)題。這根本不是一個(gè)合理的默認(rèn)值,并且我認(rèn)為性能問(wèn)題是它仍然默認(rèn)的唯一原因。這使得體驗(yàn)變得更糟。
2、每個(gè)屏幕只能有一個(gè)項(xiàng)目。也許那些只有綠地項(xiàng)目的小公司也是存在的。但是你至少偶爾需要一個(gè)單獨(dú)的項(xiàng)目——無(wú)論是“實(shí)驗(yàn)”,還是“工具”,或者其他什么。多模塊Maven項(xiàng)目(IDEA處理良好)是不夠的。所以每當(dāng)你需要走出你的主要項(xiàng)目時(shí),你會(huì)啟動(dòng)另一個(gè)屏幕。除了糟糕的可用性之外,它的內(nèi)存加倍,痛苦加倍。
3、說(shuō)起內(nèi)存,IDE似乎比Eclipse更耗費(fèi)內(nèi)存。我沒(méi)有這方面的代表性基準(zhǔn),但是我知道現(xiàn)在我家里的8 GB RAM對(duì)于開(kāi)發(fā)來(lái)說(shuō)太小了,不過(guò)一直沒(méi)換。
4、它感覺(jué)沒(méi)有那么響應(yīng)和笨重。有一點(diǎn)小小的延遲,不好說(shuō),但是“我感覺(jué)得到”。我在某個(gè)地方讀到過(guò)說(shuō)IDE過(guò)度地重畫屏幕元素,所以這可能就是原因。Eclipse感覺(jué)更順暢(我知道這不是一個(gè)合適的論據(jù),但我也沒(méi)有更精確的數(shù)據(jù)了)。
5、機(jī)智如我很聰明地圍繞項(xiàng)目有“unused methods”和“never assigned fields”。由于使用Spring,所以這些方法和字段是控制器方法和自動(dòng)裝配字段。也許一些Spring插件會(huì)照顧到這一點(diǎn),但是Spring并不是唯一使用反射的框架。即使是POJO上的getter和setter也會(huì)得到unused警告。這些警告有什么問(wèn)題?這些警告是貶值的。它們現(xiàn)在沒(méi)有任何意義。類也沒(méi)有“黃色”指示器,所以你實(shí)際上看不到警告的數(shù)量。Eclipse能夠更好地顯示警告,而且誤報(bào)也不太常見(jiàn)。
6、調(diào)用層次稍差。但是由于這對(duì)于我而言是最重要的IDE功能(還有重構(gòu)也是),所以我一定要著重說(shuō)明。它不會(huì)給你沒(méi)有明確定義的默認(rèn)構(gòu)造函數(shù)的調(diào)用層次結(jié)構(gòu)。另外,我所看到的是,IDEA用戶并不經(jīng)常使用調(diào)用層次結(jié)構(gòu)功能。我認(rèn)為在調(diào)用層次結(jié)構(gòu)之前,“查找引用”通過(guò)UI也更加明顯,所以一些IDEA用戶甚至不知道調(diào)用層次結(jié)構(gòu)是什么,而是反復(fù)地“查找引用”。這只是IDE的缺陷之一。
7、在輸出控制臺(tái)中不進(jìn)行搜索。為什么我有了IDE還必須復(fù)制輸出并粘貼到文本編輯器才能搜索?先等等,我得澄清一下,控制臺(tái)確實(shí)有搜索。但是當(dāng)我運(yùn)行(Spring Boot)應(yīng)用程序時(shí),它會(huì)在底部不是控制臺(tái)的面板中輸出東西,并且沒(méi)有搜索。
8、CTRL +箭頭默認(rèn)跳過(guò)整個(gè)單詞,而不是“駱?lè)迨健眴卧~。這是可配置的,但又是一個(gè)奇怪的默認(rèn)值。幾乎大家總是希望能夠逐個(gè)單詞(在駝峰式大小寫情況下)地遍歷變量,而不是跳過(guò)整個(gè)變量(方法/類)名稱。
9、幾年前,當(dāng)我將它用于Scala時(shí),那個(gè)項(xiàng)目從未真正編譯過(guò)。但是我猜那更多的是Scala的錯(cuò),而不是IDE。
如果你說(shuō),除了前兩個(gè),其余都不是重大問(wèn)題,那我也同意。但是隨著一個(gè)個(gè)問(wèn)題的累加,最終,這些稻草壓彎了駱駝。所以,我又回到了Eclipse的懷抱。當(dāng)然你也可以對(duì)這些問(wèn)題視而不見(jiàn),這是你的選擇自由。
分享名稱:為什么比起IntelliJ IDEA,我仍然更喜歡Eclipse
瀏覽地址:http://m.fisionsoft.com.cn/article/dpiohce.html


咨詢
建站咨詢
