已經(jīng)有很多答主回答得很全面了,我來(lái)往縱向深入說(shuō)一說(shuō)不同IDE體驗(yàn)的差別吧。
前言和其他答主一樣,首推IntelliJ IDEA,包括其他的Python、前端開(kāi)發(fā)、PHP、Go等等都推薦使用JetBrains全家桶,這么多人都在推薦,肯定是有道理的。IntelliJ是收費(fèi)的,推薦有能力的去購(gòu)買服務(wù)。如果是學(xué)生的話則可以使用公開(kāi)的授權(quán)服務(wù)器(https://www.imsxm.com/)或者自己搭建授權(quán)服務(wù)器,或者使用EDU郵箱獲取一年免費(fèi)激活碼(http://www.bewindoweb.com/169.html)。
三款I(lǐng)DE對(duì)比這里主要對(duì)比三款經(jīng)典IDE:Eclipse、MyEclipse、IDEA。
(1)官網(wǎng)對(duì)比
看看官網(wǎng)的審美差別吧,你就能大概知道這些軟件背后的UI也會(huì)是什么類型:
Eclipse:開(kāi)源軟件典型界面,簡(jiǎn)單、單調(diào),不花錢。(https://www.eclipse.org/downloads/)
MyEclipse:還活在上個(gè)世紀(jì),丑到了一定境界,老一輩最喜歡的深藍(lán)莊重顏色。(https://www.genuitec.com/products/myeclipse/)
IDEA:90后,優(yōu)秀的配色,獨(dú)特的UI交互。(https://www.jetbrains.com/idea/)
當(dāng)然它以前的logo也是很丑的(如下圖),這是后來(lái)設(shè)計(jì)師重新設(shè)計(jì)的,但至少人家努力了。
(2)使用對(duì)比
相信所有人最開(kāi)始學(xué)JAVA都是老師推薦的Eclipse,因?yàn)殚_(kāi)源免費(fèi)。Eclipse確實(shí)功能強(qiáng)大,而且有很多插件,但是操作并不人性化。界面也很丑陋。Eclipse的獨(dú)特之處在于,你想要什么功能,都可以自己去找插件,它都能支持,自己去配置就行。一項(xiàng)一項(xiàng)配置下來(lái),程序還沒(méi)開(kāi)動(dòng),人先累崩了。不同的插件還有不同的交互方式、一些特殊的處理,你都需要銘記在心,一不小心點(diǎn)到個(gè)不同的view(比如切換到了Hadoop的開(kāi)發(fā)界面),你就不知道怎么點(diǎn)回去了,要查半天資料。
然后時(shí)代變化,開(kāi)始學(xué)JAVA WEB,最開(kāi)始用JSP+Servlet,后來(lái)用Struts+Spring+Hibernate來(lái)搭建Web工程,就開(kāi)始使用MyEclipse了,因?yàn)樗蠮ava Web一些獨(dú)特的東西,比如自動(dòng)根據(jù)類的屬性生成Get/Set方法,不用手動(dòng)一個(gè)一個(gè)去寫,當(dāng)時(shí)覺(jué)得好高級(jí)呀。然而界面一樣地丑。
再后來(lái)偶然接觸到JetBrains全家桶,只要你用一次,你就會(huì)想用億次。
說(shuō)說(shuō)它的好處吧:
完全無(wú)需擔(dān)心點(diǎn)錯(cuò)
這就是IDEA人性化的地方,它知道你的想法。
比如在接口的左側(cè)有個(gè)按鈕,畫了一個(gè)向下的箭頭,哪怕你第一次使用,你也八九不離十能夠猜到點(diǎn)擊它可以看到有哪些類實(shí)現(xiàn)了這個(gè)接口。
比如右上角有一系列啟動(dòng)按鈕,哪怕你第一次使用,你也知道哪個(gè)是開(kāi)始,哪個(gè)是DEBUG,哪個(gè)是停止,應(yīng)該點(diǎn)哪里去配置啟動(dòng)參數(shù)。
比如你意外地雙擊類的名字把整個(gè)編輯界面全屏了,左側(cè)的project樹(shù)形結(jié)構(gòu)沒(méi)有了,一般的IDE都會(huì)讓你重新選擇【視圖】→【Project】來(lái)把左側(cè)的窗口找回來(lái),IDEA知道你想什么,你想再雙擊一次讓它恢復(fù)對(duì)不對(duì)!是的,再雙擊就恢復(fù)了。
還有很多細(xì)節(jié),幾乎0成本上手。
強(qiáng)大的生態(tài)支持
你想用Maven 3,它支持,而且還能編輯POM文件的時(shí)候自動(dòng)去更新;
你想用Lombok,它支持,只需要簡(jiǎn)單裝一個(gè)插件,就可以一個(gè)注解替代Get/Set/構(gòu)造方法/日志/ToString/HashCode的冗余代碼編寫;
你想用Docker,它支持,能夠自動(dòng)識(shí)別Dockerfile;
你想寫YML,它支持,還能幫你排除嚴(yán)格的語(yǔ)法錯(cuò)誤;
你想用Git,它支持,還能幫你圖形化地切換分支;
你想用Spring全家桶,它支持,還能幫你掃描哪些類沒(méi)有寫Component注解
你想用SSH自動(dòng)同步代碼到云上去,它支持,還能選擇每次Ctrl+S保存一次就同步一次。
不管你想用什么最新的技術(shù),它都支持,甚至能夠幫你把關(guān)系型數(shù)據(jù)庫(kù)的關(guān)聯(lián)用圖畫出來(lái)。
就算你想用IDEA寫Lua程序,它都能搞定……
強(qiáng)大的基礎(chǔ)功能IDEA還有JetBrains提供的全家桶基礎(chǔ)功能。
比如你修改一個(gè)類的名字,它會(huì)自動(dòng)幫你掃描哪些類用到了這個(gè)名字,讓你選擇是否需要一起都改了。
比如你要找某條語(yǔ)句,直接Ctrl+Shift+F在整個(gè)項(xiàng)目查找,不用每個(gè)頁(yè)面去翻,哪怕寫在注釋里也能找到。
比如你新New了一個(gè)List,它會(huì)自動(dòng)補(bǔ)全你想要命名為XXXXList,還是XXXXs,還是什么,供你選擇,如果沒(méi)有特殊需求,你一個(gè)回車就能完成這條語(yǔ)句的編寫了。
你按住Ctrl,就能翻看每個(gè)類的具體實(shí)現(xiàn)。
你選到了依賴庫(kù)的代碼,它會(huì)提示你不應(yīng)該修改依賴庫(kù)的代碼,防止你錯(cuò)誤地修改了庫(kù)。
你可以在上面編寫JAVA DOC的注解,它會(huì)自動(dòng)解析編寫的類并上色,如果你JAVA DOC編寫的參數(shù)和具體的方法參數(shù)不對(duì)應(yīng),還會(huì)提示你有語(yǔ)法問(wèn)題:
如果你寫了太多重復(fù)語(yǔ)句,它會(huì)提示你是否應(yīng)該寫成一個(gè)方法來(lái)調(diào)用。
還能夠支持查看Test的覆蓋率。
自動(dòng)補(bǔ)全好用到你顱內(nèi)高潮,想站起來(lái)給它鼓掌……
你還可以自定義注釋,在編寫的時(shí)候自動(dòng)生成一些注釋。
這些功能是全家桶都支持的,只要用熟一個(gè),其他的都會(huì)用了,交互邏輯一致。
好看的界面
這些都不說(shuō)了,都能看出來(lái)。
IDEA的配色網(wǎng)上一抓一大把(http://www.riaway.com/theme.php?page=3)
如果你覺(jué)得太麻煩,喜歡我的配色的話(我是參考之前用VS的習(xí)慣配置的顏色,比如字符串和數(shù)字用黃色,類型用藍(lán)色,變量用白色,其余關(guān)鍵字統(tǒng)一綠色,為了區(qū)別方法調(diào)用和方法定義,定義的時(shí)候用的紫色),關(guān)注我后私信“IDEA配色”,就會(huì)得到我的IDEA配色方案下載地址。
總結(jié)不管怎樣,不要說(shuō)什么自己覺(jué)得好用的才是最好的,IDEA就是JAVA最好的IDE,沒(méi)有之一。IDEA做的就是我們一直想做的事情,比如我們總是想這個(gè)功能不好用,那個(gè)界面不好看,只是一直在吐槽,卻沒(méi)有人動(dòng)手去做一個(gè)又好用又好看的IDE,這一切JetBrains幫我們做了,把其他所有IDE的缺點(diǎn)都改掉了,提供了所有想要的功能,你能吐槽IDEA的點(diǎn)少之又少。
至于C到底用Visual Studio還是用JetBrains系列,倒是要好好考慮下了~