一 序言
隨着軟件項目開發需求的增多,擁有一款優秀的、順手的IDE(Integrated Development Environment)對程序員來講顯得格外重要。本文就Java程序開發,選擇了3款IDE來作調研分析,其中兩款比較有表明性的是:Eclipse、IntelliJ IDEA,另一款是我我的比較喜歡的輕量級編輯器:Sublime Text 3。下面是這些工具的下載地址:html
二 簡介
1. Eclipse前端
- Eclipse最初是由IBM公司開發的替代商業軟件Visual Age for Java的下一代IDE開發環境,2001年11月貢獻給開源社區,如今它由非營利軟件供應商聯盟Eclipse基金會(Eclipse Foundation)管理。
- 從2006年起,Eclipse基金會每一年都會安排同步發佈(simultaneous release)。 每一個版本一般在6月份發佈,並在9月份(* .1),12月份(* .2)和3月份(* .3)發佈後續更新版本。在Neon(4.6)以前,每一個發行版在9月份(SR1)和次年2月份(SR2)發佈了兩個服務版本。
2. IntelliJ IDEAjava
- IntelliJ IDEA是一種商業化銷售的Java集成開發環境(Integrated Development Environment,IDE)工具軟件,由JetBrains軟件公司(前稱爲IntelliJ)發展,提供Apache 2.0開放式受權的社區版本以及專有軟件的商業版本,開發者可選擇其所需來下載使用。
- 最第一版於2001年1月時推出,當時是少數使用前階代碼瀏覽及代碼重構的Java集成開發環境之一。在2010年的Infoworld報告中,比較當時市面上的主流Java集成開發環境,包括:Eclipse、IntelliJ、NetBeans、JDeveloper,IntelliJ得到該媒體實測中的最高評比。
3. Sublime Textgit
- Sublime Text 是一個代碼編輯器,由程序員Jon Skinner於2008年1月份所開發出來,它最初被設計爲一個具備豐富擴展功能的Vim。
- Sublime Text 爲收費軟件,建議有能力的人付費使用,以支持開發者。不過不購買也能夠一直使用。
4. 版本發佈史程序員
我從官網中獲取各IDE版本發佈歷史,統計在一張表上,因爲發佈規格不同,全部只用了數字代號來表示。以下:github
從上表能夠看出:編程
- Eclipse發佈比較穩定,每一年都會出一個版本(包括後序更新版本)。
- IntelliJ IDEA出現的最先,前期發佈穩定,後期版本迭代很快。(我的以爲201五、201六、2018這3年發佈的版本號和發佈時間有點混亂,但官網就是這麼寫的)
- Sublime Text出現的最晚,Sublime Text 2在2013年後就沒有更新,轉向了Sublime Text 3。其發佈的顯著特色就是:更新快!
三 比較
1. 使用前準備vim
不像Eclipse和IntelliJ IDEA,Sublime Text 3初始是一個文本編輯器,要讓它變成Java IDE須要安裝些插件。教程可參考:https://blog.csdn.net/coderbean/article/details/50582624windows
2. 功能對比瀏覽器
注:我並非這3款IDE的資深用戶,下面所列舉的功能只是基於我我的使用經驗所總結的,而事實上它們具有的功能要比我列舉的更全面。對於模糊不清的東西,我也儘可能去查閱資料和親自實踐來確保其正確性,即便是這樣,依舊會有錯誤的地方,請諒解。
一樣是✔,但性能可能不同,這裏我不對各功能進行性能測試。(時間成本過高)
從上表能夠看出:
- 若是要開發中大型的Java項目(如:JavaWeb項目),仍是選擇像Eclipse、IntelliJ IDEA這類重量級的IDE。Sublime Text 3雖然能夠經過安裝各種插件來構造一個IDE,但這過程過於繁瑣,並且構造好的IDE所具有的功能估計沒有上述兩款的全面。
- Eclipse和IntelliJ IDEA的功能都很全面,看起來IntelliJ IDEA更勝一籌。「智能代碼」能夠幫助程序員寫出更加精簡和高效的代碼,而「代碼排版定製」能夠打造本身的代碼排版風格。
3. 佔用資源
好多網友評價Eclipse太卡,而IntelliJ IDEA吃配置。有朋友回答:「IDEA使用的是內存空間,會把創建的索引都保存在內存中,而實際佔用的CPU少;Eclipse使用的內存空間少,但佔用的CPU多,這就是致使Eclipse比較卡的緣由。」
這裏我列出這3款IDE在我電腦(Win10 )上運行時所佔用的CPU資源和內存資源。測試代碼就是:while (true) System.out.println("hello world!");我是讓3個IDE同時運行測試代碼,沒有排除其餘影響因素,並且測試也比較單一,因此測試結果並不嚴謹。能夠很容易看出,IntelliJ IDEA 果真很佔內存。
四 生態區
1. 用戶支持
良好的用戶支持是促進IDE不斷更新和完善的重要條件(我本身說的)。用戶越多,軟件Bug被發現的概率就越大,進而加速軟件完善。此外,開發出的軟件被衆人確定和使用,這對開發者來講是極大的知足和鼓舞。如此一來,就會造成軟件迭代更新的良性循環。
下面是我在網上搜索到的近期的一些統計數據(點擊圖片能夠查看詳細信息):
從這些數據中,咱們能夠看到:
- 對於Java開發來講,Eclipse和IntelliJ IDEA的支持度仍是很高的,而Sublime Text 我更傾向於把它定義爲文本編輯器。
- 在中國使用Eclipse的開發者佔據更大的比重,多是由於種種緣由吧,好比:Eclipse開源且免費、項目組開發工具未更新、你們不肯跳出熟悉的環境去嘗試新事物等。
- Sublime Text 雖然在Java開發方面不行,但使用者也不少,這說明也有適合它的開發項目,好比:前端開發。
2. 開發者社區
五 結尾
1. 問:你第一次用這些軟件是何時?當時是怎麼獲得它們的?你如今還在使用它們嗎?
- 第一次使用Eclipse是大一下學期,當時因爲課程須要,因此下載了該IDE(官網下載)。
- 第一次使用Sublime Text是大二的時候,當時看到同窗在他的Mac上調出這個軟件,而後就被這個軟件的黑色主題和高亮語法吸引到了。因而我就去官網下載了(當時是ST2),順便找了個註冊碼。
- 第一次使用IntelliJ IDEA是在大四實習期間,只是出於好奇下載來試試看。也是去官網下載了旗艦版,而後在網上找了序列號,不過如今過時了。
- Eclipse和Sublime Text 我到如今還在使用,IntelliJ IDEA是在老師佈置了做業後去下載來玩玩的。
2. 問:你如何精通這些軟件?它們給你什麼好處?壞處?
- Emmmmm.... 對於這些軟件的使用,我連熟悉都談不上,更不用說精通了。我只是個知足於實現目前需求的小白用戶。
- 給個人好處,固然是爲我編程開發提供支持。全面而強大的功能幫我節省了沒必要要的時間,如:查看JDK源碼、查找/替換、調試代碼等。
- 給個人壞處,「路徑依賴」,就是當人們熟悉了一種事物後,就很難跳出那個熟悉的環境去接觸新事物。我如今編輯基本都是vim模式,若是一個IDE不支持vim,我應該不會考慮使用它。正由於太依賴於vim,才致使我在百度搜索輸入錯字時,潛意識的就去按Esc,而後按daw。其實這就和你在和朋友QQ聊天時,時不時ctrl+s保存同樣。
3. 問:這類軟件再過10年、20年還會存在嗎,爲何?
- 再過10年,我以爲還會存在的,由於人工敲代碼這種形式的編程還存在,因此IDE也會存在。
- 再過20年,我不肯定。即便存在,編程形式和如今應該也有很大的不一樣。會不會在一些領域,咱們把全部可能的工做都模塊化,到時候直接配置便可?或者是人工智能編程?語義識別(語音編程)?
4. 問:面向將來,你以爲這些軟件還需作哪些改進?
- 外觀,要符合程序員的審美主題;內在,功能強大、運行高效、靈活配置;能開源的儘可能開源。
- 結合人工智能、機器學習,打造個性化IDE。就像輸入法能夠把你經常使用的字詞放到前面,根據你的輸入習慣來猜想你要輸入的字同樣,若是一款IDE能夠採集用戶操做信息,進行分析,而後給出適合該用戶的反饋,變成該用戶的專屬IDE。
- 配置信息線上同步。每次從新安裝軟件都要從新配置一遍,這樣很煩。能夠像衆多瀏覽器同樣,讓用戶登錄帳號,而後記錄用戶的配置信息(快捷鍵、插件等),等用戶換了一臺電腦,安裝該軟件後能夠立刻獲得同步。