1. 程式人生 > >【高軟作業2】:Java IDE調研分析

【高軟作業2】:Java IDE調研分析

net 依賴 信息 font 分享 基本 詳細信息 語義 network

一 序言

隨著軟件項目開發需求的增多,擁有一款優秀的、順手的IDE(Integrated Development Environment)對程序員來說顯得格外重要。本文就Java程序開發,選擇了3款IDE來做調研分析,其中兩款比較有代表性的是:Eclipse、IntelliJ IDEA,另外一款是我個人比較喜歡的輕量級編輯器:Sublime Text 3。下面是這些工具的下載地址:

  • Eclipse:https://www.eclipse.org/downloads/
  • Sublime Text:http://www.sublimetext.com/3
  • IntelliJ IDEA:https://www.jetbrains.com/idea/download/#section=windows

二 簡介

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 IDEA

  • 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 Text

  • Sublime Text 是一個代碼編輯器,由程序員Jon Skinner於2008年1月份所開發出來,它最初被設計為一個具有豐富擴展功能的Vim。
  • Sublime Text 為收費軟件,建議有能力的人付費使用,以支持開發者。不過不購買也可以一直使用。

4. 版本發布史

我從官網中獲取各IDE版本發布歷史,統計在一張表上,由於發布規格不一樣,所有只用了數字代號來表示。如下:

技術分享圖片

從上表可以看出:

  • Eclipse發布比較穩定,每年都會出一個版本(包括後序更新版本)。
  • IntelliJ IDEA出現的最早,前期發布穩定,後期版本叠代很快。(個人覺得2015、2016、2018這3年發布的版本號和發布時間有點混亂,但官網就是這麽寫的)
  • Sublime Text出現的最晚,Sublime Text 2在2013年後就沒有更新,轉向了Sublime Text 3。其發布的顯著特點就是:更新快!

三 比較

1. 使用前準備

不像Eclipse和IntelliJ IDEA,Sublime Text 3初始是一個文本編輯器,要讓它變成Java IDE需要安裝些插件。教程可參考:https://blog.csdn.net/coderbean/article/details/50582624

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. 開發者社區

  • Eclipse 是開源項目,擁有龐大的開發者社區致力於項目與插件的開發,其中不乏專業的開發者社區,如:IBM developerWorks、Oracle Eclipse 開發人員中心,還有來自世界各地的開發者齊聚GitHub為其貢獻自己的知識和才華(Eclipse GitHub)。
  • IntelliJ IDEA
    • 旗艦版:由於旗艦版並不開源,開發者基本都是JetBrains公司的員工(JetBrains Product Support)。
    • 社區版:社區版是開源且免費的(只是功能不如旗艦版強大),除了JetBrains的員工外,還有來自各地的開源愛好者參與開發(JetBrains GitHub)。
  • Sublime Text 雖然不是開源的,但其社區倒是很活躍(眾多插件開發),如:官方論壇(Sublime Forum)、SublimeText GitHub 等。

五 結尾

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。
  • 配置信息線上同步。每次重新安裝軟件都要重新配置一遍,這樣很煩。可以像眾多瀏覽器一樣,讓用戶登陸賬號,然後記錄用戶的配置信息(快捷鍵、插件等),等用戶換了一臺電腦,安裝該軟件後可以馬上得到同步。

【高軟作業2】:Java IDE調研分析