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