摘要:
2006年的Java IDE市場如果可以用混亂來形容的話,那接下來,在2007這一年里,更進一步的爭奪將會愈演愈烈。Eclipse從開發(fā)工具向框架級邁進,NetBeans的極力推廣,Jbulider改換門庭歸來,誰會在這場Java IDE中勝出,現(xiàn)在還很難得出結(jié)論。 2006年的Java IDE市場如果可以用混亂來形容的話,那接下來,在2007這一年里,更進一步的爭奪將會愈演愈烈。Eclipse從開發(fā)工具向框架級邁進,NetBeans的極力推廣,Jbulider改換門庭歸來,誰會在這場Java IDE中勝出,現(xiàn)在還很難得出結(jié)論。最有可能的現(xiàn)象則是這三種Java IDE將會長期存在,就如數(shù)據(jù)庫市場中Oracle、SQL Server和DB2一樣。
對近期數(shù)據(jù)調(diào)查分析不難看出,NetBeans的市場份額有了明顯的增長, Jbulider之前的退出也讓NetBeans和Eclipse的對恃提前來臨。但隨著JBuilder脫離Borland而正式成為CodeGear公司的主力Java開發(fā)工具,JBuilder有機會重返Java開發(fā)工具王者的地位,三國鼎立的局面可能會再度呈現(xiàn)。
一、Eclipse 從傳統(tǒng)開發(fā)工具向框架級邁進
Eclipse一經(jīng)出現(xiàn)就以其快速,豐富的特性贏得了認可,其主要的屬性有:1.快速的性能 ;2.重構(gòu)功能 ;3.快速修復錯誤 ;4.調(diào)整/組織導入包;5.彈出窗口進行代碼自動裝配。由于功能強大,Eclipse一度成為Java IDE領(lǐng)域的霸主。
最近幾年Eclipse的卓躍表現(xiàn),我們應該不再只是把它作為一個一個Java IDE的開發(fā)平臺,而是一個平臺框架,各種各樣的插件都可以安裝在它上面,從而形成了各種各樣的工具,甚至其中很多技術(shù)已經(jīng)與Java開發(fā)沒有任何關(guān)系。
IBM新近推出的 Rational Application Developer(RAD)V7.0就是最好的證明。它是一款基于Eclipse開源框架的產(chǎn)品。
Eclipse新的框架方向已經(jīng)引起了業(yè)內(nèi)人士的關(guān)注:最初的Java IDE概念在逐步淡化。這種感覺或許有它的正確性,但是這種感覺又會被這樣一個事實所抵消:Eclipse是目前全球擁有最大的Java插件社區(qū)。
RAD 7在Eclipse基礎(chǔ)上增加了多個模塊。由于出自IBM的豪門之作,其中許多模塊都帶有面向企業(yè)應用程序開發(fā)的成分,其中包括portlet和portal開發(fā)工具和對多種數(shù)據(jù)庫的支持。
在數(shù)據(jù)庫支持方面,自然少不了對IBM DB2的支持,使用RAD 7可以編寫用戶自定義功能(UDF)、存儲過程和SQL J代碼,所有這些功能在所有的IDE產(chǎn)品中都是獨一無二的。
但是,在圖表和建模功能卻相對有限:RAD 7僅支持兩種UML圖表(而NetBeans是八種,JBuilder是九種)。要想使用來自IBM的全面圖表功能支持,IBM的Rational Software Architect工具是不得不購買的。
使用RAD 7,你可以開發(fā)Web服務和Web服務客戶端,產(chǎn)生WSDL,甚至針對一個專門的統(tǒng)一描述、發(fā)現(xiàn)和集成 (UDDI)服務進行單元測試。還有,它還支持IBM的DADX,這是一種Web服務所使用的DB2 XML擴展。
在代碼編寫方面,RAD 7提供了一個靜態(tài)分析工具,具有IBM制定的關(guān)于Java缺點和編碼錯誤的200條規(guī)則。雖然本次評選中的其他IDE也提供了更多的規(guī)則,但是IBM的解決方案對錯誤進行標記的功能是其他產(chǎn)品所無法比擬的。
通過提供針對這些規(guī)則進行非常詳細的理由闡述和相應的解決辦法,使這些規(guī)則的作用率被大大提升。
在文檔幫助方面RAD能集合這么豐富的幫助信息,是IBM在文檔方面長期所具有傳統(tǒng)優(yōu)勢的結(jié)果。在RAD中可以把用戶鏈接到全面的開發(fā)指南或者鏈接到IBM的網(wǎng)站來查找更豐富的資源,IBM網(wǎng)站在開發(fā)社區(qū)上,向來以具有豐富的技術(shù)文章而著稱。
存在的缺陷
人無完人,RAD也不是完美的無懈可擊,缺點與優(yōu)點并存,假如應用程序需要一個腳本語言來把不同的部分連接在一起的話,RAD 7具有對Jython語言(基于Java的Python)的內(nèi)置支持。不幸的是,這個IDE工具不能自動識別出什么是Jython語言和什么是Java語言,盡管從句法上來說,這兩種語言是完全不同的。但是這個小小的缺陷會導致某些誤操作的發(fā)生。
這個缺陷雖然非常小,卻可以讓人們以小見大,安裝RAD 7的軟件是一一件苦差事。必須要得到來自IBM的幫助后,才能夠正確安裝這個產(chǎn)品。
另外,因為IBM沒有發(fā)布相應的字典,對注釋和程序內(nèi)容進行拼寫檢查的設(shè)置選項不能正常工作,;如果起用了這個功能,它會標記所有的單詞為誤拼。代碼校驗工具有時候也會給出錯誤的糾正。對話框中的動態(tài)幫助經(jīng)常將用戶帶到錯誤的幫助頁面中,你不得不通過導航再去尋找正確的幫助頁面。
隨著時間的發(fā)展,這些積累起來的問題影響了人們對這款產(chǎn)品的期待和使用。
對這個工具還有一點讓人遺憾的地方:在支持Java標準方面,IBM已經(jīng)遠遠落后于其他廠商。只有這一款不支持Java EE 5或Java SE 6。
對于那些IBM的忠實用戶來說,我推薦使用RAD 7,因為它可以很好的支持來自IBM的其他產(chǎn)品,尤其是DB2和WebSphere。另外,對于那些不同國家的開發(fā)者使用相同的IDE用戶來說,也會非常喜歡RAD 7,因為它提供了多國語言版本的支持。但是,考慮到相對較高的價格和上面我所說的缺點,用戶在開始掏出銀子購買這款產(chǎn)品前,一定要慎重的考慮一下。
二 Sun的開源產(chǎn)品NetBeans
Sun的NetBeans是唯一一款完全開源的產(chǎn)品,可以免費的從netbeasn.org下載。與其他工具不同的是,NetBeans要求你進行一些簡單的“組裝”工作;從一個核心NetBeans平臺開始,根據(jù)你的需要來增加不同的程序。
目前,Sun提供了一個企業(yè)包和一個Visual Web pack包,還有一個實現(xiàn)J2ME編程的移動程序包和一個C/C++程序包,還有一個單獨的程序包NetBeans Profiler。這些程序包是常用IDE插件的擴展,通常用它們來提供一些不錯的新功能。
幾年前得NetBeans更像一仿制IDE的跟風者,與其他的Java IDE產(chǎn)品不在同一個起跑線上。但是現(xiàn)在的情況卻發(fā)生了很大的變化,NetBeans的廣泛流行已經(jīng)說明了這點:根據(jù)國外一家調(diào)查公司在2006年12月的一次調(diào)查顯示,NetBeans在去年獲得了長足的進步,現(xiàn)在它已經(jīng)僅次于Eclipse,是第二大Java IDE工具。
對于企業(yè)計算來說,NetBeans提供了很多有用的功能,包括對Java EE 5的支持,是通過Sun的Glassfish項目實現(xiàn)的。這個IDE有很多好的工具支持基于服務的企業(yè)開發(fā),尤其是在SOA方面。 舉個例子來說,NetBeans是本次IDE中唯一的支持BPEL圖表和建模功能的產(chǎn)品。
缺乏對通用產(chǎn)品的支持
但是,NetBeans的企業(yè)服務支持方面的優(yōu)勢由于缺乏對通用產(chǎn)品的支持而被抵消。NetBeans不支持IBM的WebSphere應用服務器,還有,除了JavaDB之外它缺乏對其他數(shù)據(jù)庫的完整支持,對于這一點我們需要澄清一下:NetBeans可以支持任何JDBC的數(shù)據(jù)庫,但是它只支持JavaDB數(shù)據(jù)庫應用程序的部署文件和利用一些DBMS(數(shù)據(jù)庫控制和管理)特定的功能。
NetBeans的協(xié)作功能也非常不錯。NetBeans具有一些內(nèi)置的工具來實現(xiàn)開發(fā)者之間的實時協(xié)作,包括交談和代碼共享功能。
NetBeans的設(shè)計是基于服務器的。你可以搭建你自己的服務器來實現(xiàn)這種交流,或者免費使用Sun提供的一個服務器,對于后者你只需要簡單的登錄到Sun的服務器上,你群組中的所有開發(fā)者就會被顯示出來,還有他們的登錄狀態(tài),這一點與與我們使用的即時通訊(IM)工具頗有幾分相似。
在圖形化設(shè)計方面,NetBeans捆綁了Matisse(基于GUI的創(chuàng)建器),這是當前世界上最好的圖形化用戶界面布局設(shè)計工具之一。當你通過拖拽一些小工具到面板和對話框中,他們被自動的正確放置。當你執(zhí)行拖拽操作的時候,會彈出最佳和可選位置的指導。然后Matisse從設(shè)計模式產(chǎn)生相關(guān)的代碼。
由于Matisse只支持Swing,它使得NetBeans這個IDE工具非常適合于那些從事大量基于Swing界面設(shè)計的用戶。幸運的是,由于Swing性能和外觀感覺上的穩(wěn)步上升,這已經(jīng)不能算是一個缺陷了。
NetBeans依賴Ant文件來存放項目配置數(shù)據(jù)。這樣NetBeans具有一個重要的優(yōu)勢:在使用多Java IDE的團隊中,任何其他IDE都能加載和運行NetBeans項目,而不用進行一些轉(zhuǎn)化工作,實現(xiàn)不同IDE平臺之間的代碼互操作性。
使用Ant文件方式也有一個缺點:NetBeans只支持單一的runtime配置。大多數(shù)其他IDE可以讓你選擇多Runtime配置;而NetBeans沒有,每次你想修改你的應用程序的參數(shù)的時候,你必須手動修改一個配置,不過幸運的是,即將到來的NetBeans 6.0將要修正這個問題。
三 JBuilder 2007 王者歸來
在Java IDE的口碑和功能方面,JBuilder 2007的表現(xiàn)無疑是最好的。這個版本是JBuilder投入Eclipse平臺以來的首個版本,它是由Borland分公司CodeGear發(fā)布的。 JBuilder 2007展現(xiàn)了一個具有很多創(chuàng)新功能且非常強大的IDE工具。
在Java編程方面,JBuilder具有三種不同的代碼監(jiān)督和分析設(shè)置:開源的PMD、Findbugs和Borland自己的代碼檢查工具,這些方式相互配合使用,把功能發(fā)揮到了極至。同樣JBuilder 2007也有自已的不足之處,缺乏RAD 7產(chǎn)品中的問題描述和體貼的推薦操作等功能。
JBuilder還集成了一個分析評估程序,這個分析評估程序在所有IDE產(chǎn)品中也是最好的,它產(chǎn)生了超過80多種不同的評估機制,并以圖表或電子表格的形式展現(xiàn)。令人好奇的是,它的評估程序并不包含可維護性的索引,你可以關(guān)閉不感興趣的機制,并設(shè)置你要跟蹤的線程。
JBuilder還可以對評估機制進行快照保存功能,因此你可以把代碼的當前狀態(tài)和此前運行的代碼進行比較,以確保程序朝著正確的方向發(fā)展。
同時,CodeGear還整合了JBuilder的Optimizelt(代碼測試工具)套裝工具,這是一款Borland提供數(shù)年的獨立產(chǎn)品。Optimizelt提供了高分辨視圖來查看軟件的性能和內(nèi)存消耗情況。同時它還包含代碼覆蓋分析(盡管只是基于類覆蓋的分析,而不是逐行代碼的分析),還有一些功能是用來了解底層所發(fā)生的問題,其中也包括對每線程數(shù)據(jù)的查看。
令人印象深刻的協(xié)作功能
JBuilder 2007還在協(xié)作功能方給予了很大的支持。它具有一個開發(fā)者導向的消息系統(tǒng),對代碼檢查和開發(fā)者之間的交流非常有幫助。不幸的是,它使用了一個對等設(shè)計模式,只支持同一個網(wǎng)段的對端用戶。
對于團隊協(xié)作方面,JBuilder提供了TeamInsight這個設(shè)置容易的portal(交互平臺)服務器,它包含了一些關(guān)鍵的開源工具:Subversion、Bugzilla、Continuum和Xplanner等。這個portal服務器可以通過Web界面或JBuilder來訪問,同時也包含了很多項目報表和分析工具,這也是其它的IDE團隊無法比擬的。
考慮到Borland第一次在Eclipse平臺上發(fā)布IDE工具,JBuilder 2007所獲得成就非常值得稱道。唯一稍顯的不足是很多幫助圖標并沒有發(fā)揮作用。同時沒有針對JSP或JSF提供可視化編輯器(不過據(jù)說很快將增加這部分功能)。
并且該產(chǎn)品還不能對使用DB2的應用程序產(chǎn)生部署文件,這是一個足以致命的缺失功能。并且目前的版本只支持Windows,Linux和Mac版本要等到五月份才可能發(fā)布。
三國鼎立之勢 對用戶有利
繼續(xù)回到本文最開始所得出的結(jié)論,這三種Java IDE產(chǎn)品相比較其實并沒有誰有絕對的優(yōu)勢強于其它兩者,對于用戶而言,這應該是我們最愿意看到的一點。不斷的競爭讓這些IDE產(chǎn)品變的更強大更易用,從而也有了更多更好的選擇。
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。