熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

四大頂級Java編程工具橫向對比

2022-06-13   來源: Java核心技術 

  好的程序員總是對開發環境有著不同尋常的熟悉有的人可能對完整的IDE熟悉它們也是本文的重點還有人可能會emacs或 vi/vim這樣的編輯器熟悉但據調查發現開發人員每隔幾年就會轉移到新的IDE有可能是項目需要或跳槽到了新公司或是自己的偏好發生了轉移

  許多開發人員在選擇新的編程工具時總會犯難為了解開你心中的疑團本文就對流行的Java開發工具做一次全面的橫向對比看完本文說不定就不再犯難 了好吧首先請各位選手登台亮相吧它們分別是EclipseJetBrains IntelliJ IDEANetbeans和Oracle JDeveloper這些工具都很優秀對重構語法檢查和調試的支持都很好大都能直接從IDE將項目部署到服務器並能進行遠程調試單獨對比它們 的功能已經沒有什麼意義了因為它們都支持插件我們更注重的是易用性文檔和幫助系統的質量以及插件的數量和質量提到插件就不得不提Eclipse 基金會長期以來它都信奉和推崇插件Eclipse的插件數非常豐富每次發行新版本都會同步推出大量的新插件

  Netbeans和 IntelliJ IDEA也有很多的插件但它們更注重用戶體驗JDeveloper同樣易於使用不過插件數量就少一些此外它和Oracle的軟件堆棧聯系緊密 從商業角度出發更有吸引力但也正因為如此JDeveloper才沒有出現較大的插件生態系統

  四大頂級Java編程工具橫向對比
總分對比

  這些IDE都支持Java開發中用到的通用語言(JSFHTMLCSSXML等)有些還支持JVM腳本語言(如Groovy和JRuby)甚 至是非Java語言(如C/C++PHP)和建模語言(UML)下表顯示了這些IDE默認安裝支持的主要語言清單

  四大頂級Java編程工具橫向對比
支持的開發語言對比

  下表顯示了所有IDE對Java SE和企業開發以及對Java ME嵌入式和Android移動開發和的支持良好程度(這裡不涉及任何第三方輔助增強工具如果要加入第三方的工具Eclipse對Java ME的支持將有所改善)

  四大頂級Java編程工具橫向對比
對開發平台支持的對比

  在本次評測中我們特別注重易用性和編碼能力我們認為它們是決定生產力和用戶滿意度的主要因素它們和插件一樣重要在記分卡上會有所反映我給每個因素設置了不同的權重如果你不同意我的評估結果你可以根據你的看法進行修改並得出你自己的排名

  Eclipse

  Eclipse是所有Java IDE中最突出的一員其用戶量和插件規模都是無人能敵的這一切首先要感謝其創始公司IBMIBM將其開源成立獨立的基金會並提供持續的資助其 它廠商和社區也可以為Eclipse做貢獻事實證明這個決策是非常英明的Eclipse社區非常活躍並為其貢獻了大量優秀的插件

  Eclipse廠商獨立性的好處很快就有了回報Google公開宣布Eclipse成為Android開發的首選平台曾經Netbeans也成為 Google的熱門候選但Oracle最近針對Android中使用的Java虛擬機而起訴Google讓Google徹底斷了這個想法

  最新版本是今年月發布的代號太陽神它加入了很多新的功能稍後我會提及它們Eclipse是自成一格的IDE其界面布局和其它IDE有 著很大的不同其中最重要的一個概念就是透視圖根據不同的行為顯示的透視圖可能不一樣這種設計是為了滿足豐富的插件使用因此其界面布局有時會發生 很大的變化

  在基本的Java開發環境中Eclipse放棄了一些約定它要求用戶遵循它的規則例如在創建項目前需要先創建一個 工作區項目是創建在工作區之下的你也可以在工作區下面創建工作集對工作區的依賴意味著項目的遷移是件麻煩事向導提示往往讓人犯暈放手去做的 思想在Eclipse中行不通幾乎所有事情都需要填寫對話框或選擇項要麼無法區分或不直觀

  四大頂級Java編程工具橫向對比
Eclipse IDE的Java編碼界面

  例如在未安裝Groovy插件前將一個混合了Groovy和Java的項目導入到Eclipse如果你點擊Groovy文件進行編輯對彈出一個 菜單包含四個選項文本編輯器系統編輯器本地編輯器和默認編輯器因為沒有提供任何幫助或提示信息在這裡就只能靠猜的方法選擇了事情還沒完如 果你選擇系統編輯器Eclipse開始運行腳本而不是打開編輯它總之開發人員需要有豐富的經驗才能很好地駕馭好Eclipse不要迷戀向導是真 理

  要摸清Eclipse的底細用戶得嚴重依賴於幫助系統這麼多年來Eclipse的幫助系統確實進步了不少但仍然有不足之 處此外Eclipse早期版本會虛假報告錯誤數量不過現在這一現象已基本得到消除雖然每次發布新的版本都會修復一些問題但其核心的編輯功能應該 重寫和重新設計

  我還要補充一點在Java開發領域Eclipse的設計問題必須要改進了現在它面對的競爭對手一個也不差它的 那些缺點更能說明問題在其它領域如C開發原本就鮮有優秀的IDE因此抱怨的聲音也很少Eclipse現在也是Linux下C/C++開發的主要 IDE

  盡管存在問題使用Eclipse的插件可以獲得無限的擴展性這也是為什麼許多插件開發人員力挺Eclipse的原因許多 優秀的Eclipse插件在其它IDE中是找不到的因為這些插件的開發者不願意移植如著名的任務管理器Mylin你只能在Eclipse中享用它

  過去Eclipse插件管理一直被用戶诟病因為插件之間的依賴性太強了Eclipse已經意識到問題的嚴重性並在逐漸解決這些問題今年發布了Eclipse Marketplace一舉解決了尋找插件的困難

  JetBrains IntelliJ IDEA

  JetBrains的IntelliJ有兩種版本付費和免費的開源社區版本本文用於比較的是其付費版本社區版只提供了基本的編輯功能 IntelliJ IDEA比其它IDE的速度要快因此吸引了大批忠實用戶對於初學者IntelliJ的開發人員經常關注Java社區的一舉一動因此他們總能以最快 的速度添加對新的熱門產品的支持如IntelliJ是第一個為Groovy和Grails提供強大支持的IDE也是第一個為JavaScript提 供高級支持和調試功能的IDE即使它不是第一個提供支持的也會爭取是第二個或是提供更好的支持IntelliJ可與Ant和Maven無縫集成 支持Spring並能夠從Java編碼跳躍到Adobe Flex和PHP

  IntelliJ IDEA憑借其獨樹一幟的功能贏得了眾多用戶如幾年前它率先推出用於單元測試的結果對比窗口在進行單元測試時可以並排對比預期結果和實際輸出這在當時可是非常拉風的功能

  即便是如今它的功能也比其它競爭對手更優秀有些功能完全是獨一無二的例如它提供的重構工具就比其它IDE強大得多此外它內置的語法檢查器不 僅可以揪出明顯的語法錯誤還可以出問題那些寫得不好但可以正常運行的代碼在它靈敏的嗅覺下暴露無遺這樣的代碼實現包括簡單功能復雜化只 有一個為的條件等IntelliJ還提供了代碼覆蓋工具它能在IDE中顯示測試時哪些代碼被執行過了IntelliJ還捆綁了開源的EMMA 產品

  四大頂級Java編程工具橫向對比
IntelliJ IDEA有兩個並排的編輯器

  IntelliJ還有一個很獨到的功能那就是高亮顯示重復的代碼在一個很大的代碼庫中要找出重復的代碼可不是件容易的事情它還提供了一個依賴分析工具可以准確地顯示出方法之間的依賴關系

  IntelliJ往往會預先考慮到很多需求例如這裡提到的所有IDE都有一個相同的彈出式功能當你在編輯器中輸入方法的名稱時會彈出一個輔助窗 口這個功能也被稱為自動完成在IntelliJ中它會借助代碼上下文信息猜測你要使用的函數並將其置於列表頂部因此使用箭頭鍵向下滾動的幾率就 小多了最不可思議的是它的准確率很高這是一個非常人性化的功能

  說了這麼多的優點難道IntelliJ就沒有缺點了嗎當然不 是抱怨最多的就是缺乏良好的文檔支持如果遇到問題可能沒有人能幫得上忙要弄清楚其高級功能也不容易幸運的是開發商會回答電子郵件提問但要想得 到正確的答案一次只能問一個問題由於開發商在俄羅斯因此還需要忍受時差IntelliJ的第二個問題是啟動時間過長雖然在中有所改善但 啟動速度仍然緩慢除了這些問題IntelliJ是一個優秀的IDE與其它競爭對手比起來它是一款成功的商業產品

  NetBeans

  過去年中NetBeans的市場占有率上升很快據位於紐約的BZ市調公司發布的年度Java IDE調查報告顯示 NetBeans在受訪者中的使用比例是%今年這一數字翻了一番達到了%它是這個期間上升最大的Java IDE在總的普及程度方面NetBeans僅僅次於排名第一的Eclipse

  NetBeans取得今天的成績是和它的前主人 Sun微系統公司悉心關注分不開的當今年早些時候Oracle收購Sun時Java社區對NetBeans的命運非常關注特別是當Oracle宣布 不再繼續支持Sun的開源項目時如OpenSolaris和Kenai托管項目關注度更是達到了前所未有的高度

  Oracle開發 工具產品管理老大Duncan Mills傳達了Oracle的旨意NetBeans將會繼續保留他說我們會積極支持JDeveloper和 NetBeansJDeveloper主要用於內部和企業用戶特別是那些需要Oracle融合中間件解決方案的用戶而NetBeans主要為那些想 開發其它技術的用戶提供我們希望他們最終遷移到Oracle解決方案和JDeveloper

  NetBeans最突出的優點是它的 易用性輕盈和簡潔訪問它的下載頁面就可以感受到這種氛圍例如下載NetBeans時你會看到它提供了多種預配置的版本你只需要選擇合適的下載 即可Eclipse也有類似的體貼之處而IntelliJ和JDeveloper只提供了粗暴的下載鏈接

  四大頂級Java編程工具橫向對比(2)
NetBeans編輯器下方是從代碼抽取的未完成任務列表

  NetBeans支持JRuby和JavaFX這是其它IDE所忽略的當然NetBeans也是支持C/C++和PHP的JRuby最初是由 Sun開發的這也是為什麼NetBeans要支持它的緣故JRuby重要開發人員Charles Nutter最近告訴我在語言支持方面NetBeans有不可逾越的優勢它也支持桌面腳本語言JavaFXOracle也表示會堅定不移地推動這 項技術的發展但引來的質疑聲也很大因為JavaFX在用戶中間的反響並不好NetBeans一度停止了對UML圖的支持但幸好現在又提供了

  NetBeans早在幾年前就經過了完全重新設計保留了簡單易用的導航它和IntelliJ不一樣IntelliJ是在輸入時執行語法檢 查NetBeans是在後台不斷編譯Eclipse有一個配置選項也可以提供類似的功能這意味著一旦你完成編碼就可以運行代碼 了NetBeans也可以在後台為每個項目創建一個Ant生成文件對開發人員來說Ant生成文件是一個非常有用的資源開發人員可以用它精確地控制 IDE的生成過程

  NetBeans還附帶了一個分析器一個Juint單元測試生成器以及一個國際化字符向導對於企業級開發它 提供了綁定Tomcat或GlassFish Open Server的下載選項為了監控運行的應用程序NetBeans集成了對JMX(Java管理擴展)和Jconsole的支持

  NetBeans的插件數量遠遠少於Eclipse和IntelliJ IDEA的插件數量相當其中好多插件都是從Eclipse平台移植過來的正如我前面提到的許多Eclipse插件開發者現在都不再往其它平台移植 了但如果NetBeans繼續以最近年的速度增長也許情況會有所變化就目前而言插件是NetBeans最大的弱項其它方面NetBeans算 得上是最用戶友好的IDE了

  Oracle JDeveloper Studio g ()

  Oracle的JDeveloper Studio和這裡比較的其它產品有很大不同那句走自己的路讓別人去說吧的名言用來形容它最合適不過了首先它不是免費的源代碼不對外開放確切地說它更像是Oracle的內部開發工具

  受Oracle的影響JDeveloper在某些方面顯得非常狹隘但它也有其獨到之處有趣的是Oracle公司其它產品的版本號永遠不能超過其核心產品 – 數據庫的版本號因此我們經常看到Oracle產品的版本號都很長很長

  JDeveloper的安裝很簡單但最終在系統中注冊的產品名稱居然是Oracle融合中間件大多數人認為開發工具不屬於中間件范疇但 Oracle堅持這樣分類估計是想強調其對中間件開發的支持強度例如JDeveloper為ADF(應用程序開發框架)和Java Server Faces(JSF)組件集提供了許多支持也支持TopLink(Oracle從BEA收購取得的持久化層)JDeveloper也提供了大量的 Java EE工具包括一個Weblogic Server的嵌入式版本它可以在IDE內啟動和管理

  如果從上到下全部使用Oracle軟件堆棧中的產品JDeveloper一定不會讓你失望例如你可以將ADF中的Oracle JSF組件切換成其它廠家的你還可以做一些所見即所得的UI開發

  四大頂級Java編程工具橫向對比(2)
JDeveloper編輯器底部面板用於管理嵌入的Weblogic Server實例

  JDeveloper和其它IDE比起來其響應速度較快幫助信息也很全按下幫助組合鍵屏幕很快彈出相關的幫助信息在這方面它提供的幫助信息 和其它IDE比起來其上下文感應能力更強JDeveloper也內置了分析器可以測量性能和內存消耗它的語法檢查器還發現了一向自诩的 IntelliJ IDEA的代碼校驗工具未能發現的錯誤功夫不負有心人Oracle在這方面下了大力氣效果就是不一樣

  JDeveloper的弱項是缺乏一個強大的插件生態系統這和Oracle此前忽略該領域的決策息息相關不過現在Oracle已經醒悟了雖然 JDeveloper也有不少插件了但大部分都是公司自己寫的幾乎看不到第三方貢獻的插件我找了很久都沒有發現代碼覆蓋分析插件這是阻礙 JDeveloper發展的一個重大限制

  Oracle清楚地表明JDeveloper將繼續作為公司的主要開發環境對於那些致力於Oracle軟件堆棧開發的組織而言JDeveloper是不二之選

  下表對幾個流行的Java IDE做了一個概述

   Java IDE 平台 成本 總結 Eclipse Java Mac OS XWindowsLinux 免費 Java IDE市場的絕對領導者每年一次重大發布第三方插件非常豐富但Eclipse難學難用簡單任務被復雜化 JetBrains IntelliJ IDEA JDK Mac OS XWindowsLinux $ 本次評測唯一的商業軟件其功能完善易用但文檔仍然不夠完善 NetBeans JDK WindowsMac OS XLinux 免費 一款優秀的易於使用的完整IDE支持除Java外的許多編程語言其插件沒有Eclipse多功能沒有IntelliJ IDEA完善 Oracle JDeveloper Studio g JDK WindowsMac OS XLinux 免費 一個穩定的閉源的Java IDE良好的企業級開發支持和Oracle其它產品結合緊密插件數量很少幾乎都是官方提供的

  其它IDE

  為什麼有這麼多廠商和開源愛好者為Java編寫IDE仍然是個迷之前我們曾介紹了款Python開發工具Java IDE領域也毫不示弱但Java已經很成熟了因此現在已經很少出現新的IDE下面這些曾經資深的開發環境都面臨退役了

  Embarcadero JBuilder目前該產品的最近一個更新版本還是JBuilder 根據Embarcadero公司的發言人表示年從Borland公司買下其IDE產品線後改名為CodeGear了鑒於公司還在 開發其它IDE如Delphi因此可以認為JBuilder已經走到了生命的盡頭

  Genuitec MyEclipseMyEclipse是一個基於Eclipse捆綁了一組插件的訂閱產品前面我們曾提到Eclipse插件的尋找安裝和管理都 很繁瑣而MyEclipse正是為此而生Genuitec也開發一些自己獨有的插件MyEclipse的訂閱價格每年從$$不等包括 技術支持費用

  IBM Rational Application Developer這個IDE(即著名的RAD)是IBM推出的一系列開發環境中的一部分RAD和它的兄弟們都是基於Eclipse構建的簡而言之 就是在Eclipse基礎上換了一張皮加入了一些自己的東西如架構師版本提供了UML建模工具商業開發版本支持IBM的GL等如果你在使用 WebSphere這些工具的威力就可以顯示出來了但大多數功能和MyEclipse及其他免費的IDE並沒有多大區別


From:http://tw.wingwit.com/Article/program/Java/hx/201311/26792.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.