sharky的點(diǎn)滴積累

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            56 隨筆 :: 104 文章 :: 10 評(píng)論 :: 0 Trackbacks
             近兩年來(lái)Java IDE的市場(chǎng)異常熱鬧,面對(duì)開(kāi)源社區(qū)Eclipse與日俱增的吸引力,曾經(jīng)的王者JBuilder感受到從沒(méi)未有過(guò)的壓力。Borland沉寂了一年之后,終于推出了JBuilder 2006,其開(kāi)創(chuàng)性的P2P對(duì)等協(xié)作功能和決定以Eclipse為基礎(chǔ)的重大調(diào)整預(yù)示著JBuilder正在實(shí)現(xiàn)戰(zhàn)略性的演化。

            從丑小鴨到天鵝的演化:Jbuilder的發(fā)展史

            JBuilder誕生于1997年,時(shí)至今日,已走過(guò)了8個(gè)年頭,先后發(fā)布了12個(gè)版本(JBuilder 2006的版本號(hào)為12)。在JBuilder的發(fā)展歷程中,創(chuàng)新,追逐最前沿的Java技術(shù)一直是JBuilder秉承的發(fā)展理念,快速升級(jí)、不斷地增強(qiáng)功能也是其區(qū)別于其他IDE的特色之一。

            Borland每個(gè)版本的升級(jí)大約在半年的時(shí)間內(nèi)完成。升級(jí)所用時(shí)間最長(zhǎng)的前三甲分別是JBuilder 2006/Peloton,JBuilder 3.0/3.5及JBuilder 2.0。

            在這三次升級(jí)中,Borland都對(duì)Jbuilder的發(fā)展方向做了戰(zhàn)略性調(diào)整。讓我們短暫回顧一下JBuilder的發(fā)展史:Borland在1997年推出JBuilder 1.0,1.0的版本市場(chǎng)反應(yīng)并不理想,原因是多方面的。首先Borland進(jìn)入Java IDE領(lǐng)域相對(duì)較晚,在Java IDE上的經(jīng)驗(yàn)不足,其次,Microsoft在30個(gè)月內(nèi)挖走了Borland 30多名重要雇員,除了眾所周知的Anders Hejlsberg之外,還包括研發(fā)副總裁Paul Gross,暫時(shí)還沒(méi)有找到合適的替代者。

            但不久之后,老天又開(kāi)始眷顧起B(yǎng)orland ,她將Java天才Blake Stone帶進(jìn)了Borland,彌補(bǔ)了其人才流失所造成的重傷(注:2004年Blake Stone也被微軟挖走)。Blake Stone旗幟鮮明,立志將JBuilder從原生的Window IDE改造成純Java的IDE。這一戰(zhàn)略性的轉(zhuǎn)變是重大而富有挑戰(zhàn)性的,1998年10月所推出的JBuilder 2.0并沒(méi)有完成這一宏偉的目標(biāo),但終于畢其功于一役于JBuilder 3.5。

            2000年3月14號(hào)對(duì)于JBuilder是一個(gè)值得永遠(yuǎn)記念的日子,因?yàn)锽orland于當(dāng)日推出了JBuilder 3.5,這是Borland的JBuilder小組在歷經(jīng)數(shù)年的不懈努力后,推出的第一個(gè)100%純Java血統(tǒng)的IDE;更重要的是Borland憑借JBuilder 3.5非凡表現(xiàn)實(shí)現(xiàn)了其稱霸Java IDE市場(chǎng)的夢(mèng)想。至此,Borland開(kāi)始雄踞Java IDE的頭把交椅,獨(dú)占鰲頭,把Symantec的Visual Café,IBM的VisualAge for Java,SUN的Workshop及Microsoft的Visual J++遠(yuǎn)遠(yuǎn)地甩到后面,實(shí)現(xiàn)了其命運(yùn)的大逆轉(zhuǎn)。

            從4.0版本到2005版本,JBuilder的發(fā)展更象是一場(chǎng)場(chǎng)戰(zhàn)術(shù)上的演進(jìn),推進(jìn)和提升的速度都相當(dāng)平穩(wěn)。當(dāng)然這之中也有許多出彩的表現(xiàn):如引入ALM(Application Lifecycle Management:軟件生命周期管理)、SDO(Software Delivery Optimization:軟件交付最優(yōu)化)、團(tuán)隊(duì)開(kāi)發(fā)、代碼審查,性能優(yōu)化(Optimizeit)等優(yōu)秀的IDE設(shè)計(jì)理念。

            JBuilder 2005 在去年9月發(fā)布,JBuilder 2006直到今年9月2號(hào)才發(fā)布,相比以前幾個(gè)版本的升級(jí),這次升級(jí)所用的時(shí)間是很長(zhǎng)的。從圖 1的JBuilder版本升級(jí)速度統(tǒng)計(jì)圖中,可以很明顯地看到這個(gè)不小的變化:

          鳳凰浴火:JBuilder2006新功能賞析
          圖 1 JBuilder 版本升級(jí)速度統(tǒng)計(jì)圖

             然而近兩年來(lái)在Java IDE的世界,Eclipse橫空出世,一路攻城掠地,勢(shì)如破竹,如巨大的磁鐵,迅速地吸引了大批的追隨者,成為Java IDE領(lǐng)域強(qiáng)勁的競(jìng)爭(zhēng)對(duì)手,更可怕的是它的吸引力和影響力還在快速攀升。Eclipse的成功吸引了大批JBuilder用戶,JBuilder 王朝出現(xiàn)了巨大的危機(jī)!JBuilder再次走在了十字路口。

              Jbuilder 2006 低谷中的自救

            JBuilder 2006于今年9月2日推出,這個(gè)版本應(yīng)該說(shuō)是JBuilder戰(zhàn)略調(diào)整中的一個(gè)過(guò)渡性版本,一如JBuilder發(fā)展史上的JBuilder 3.0一樣。在這個(gè)版本里,JBuilder帶給我們最大的驚喜就是"對(duì)等協(xié)作",整合分布式團(tuán)隊(duì)的協(xié)同工作能力是該版本最大的特色,筆者將另辟章節(jié)詳細(xì)介紹。

            根據(jù)Borland 2004年制定的一個(gè)JBuilder 發(fā)展線路圖,Borland將于2006年上半年推出另一款代號(hào)為Peloton的JBuilder 2006。Peloton將以開(kāi)源Eclipse作為其底層技術(shù)架構(gòu),目的就是整合與其他開(kāi)發(fā)商產(chǎn)品的協(xié)同能力(到時(shí)Eclipse可以用插件,JBuildre一樣可以用),以后JBuilder將調(diào)整到以Peloton為基礎(chǔ)的發(fā)展道路上來(lái)!

            在JBuilder的發(fā)展史上,3.0版本和2006版本的升級(jí)有著許多的相似之處,首先它們都花了1年多的時(shí)間;其次,它們都出現(xiàn)了兩個(gè)分支版本;還有,它們都是戰(zhàn)略性的升級(jí):前者將原生性的Window IDE打造成純Java的IDE,后者的底層技術(shù)架構(gòu)調(diào)整為Eclipse。

            這里我又要穿插一點(diǎn)Eclipse的歷史,IBM的Visual Age For Java原來(lái)是一個(gè)不錯(cuò)的Java IDE,但在JBuilder強(qiáng)勁攻擊下,Visual Age For Java的城堡唯余片片斷壁殘?jiān)?,遍體鱗傷的Visual Age For Java氣如游絲,眼睜睜地看著JBuilder遠(yuǎn)遠(yuǎn)地將自己拋到后面,終于在2001年12月, IBM宣布把Visual Age For Java 開(kāi)放給Eclipse計(jì)劃,結(jié)束了其5年來(lái)Java IDE市場(chǎng)上的角逐。歷史真是讓人玩味:想不到時(shí)不過(guò)4年,這位JBuilder曾經(jīng)的手下敗將戲劇性地演變成了富有侵略性的復(fù)仇者。

            但JBuilder是不會(huì)被擊倒的,Borland不但是一位身經(jīng)百戰(zhàn)的斗士,更是一位富有遠(yuǎn)見(jiàn)卓識(shí)的謀略家。Borland的決策者們一定深諳其前輩林肯的韜略:林肯說(shuō)過(guò)消滅你敵人最好的辦法就是讓其成朋友。這次,Borland將這句話發(fā)揮到極致了,讓Eclipse跨過(guò)朋友成為家人――JBuilder以Eclipse為基礎(chǔ)構(gòu)架。也許所有曾經(jīng)或正在為JBuilder和Eclipse孰優(yōu)孰劣而沫星四濺的爭(zhēng)辯家們都被開(kāi)了一個(gè)天大的玩笑:因?yàn)樗麄兊乃姓撟C,攻詰和現(xiàn)身說(shuō)法都變得毫無(wú)意義了。

            就象牛頓踩在開(kāi)普勒、伽利略、惠更斯、胡克等人的肩膀上一樣,當(dāng)明年的Peloton發(fā)布后,JBuilder則踩在Eclipse、TogetherSoft、TeraQuest Metrics、VMGEAR的肩膀上,并完成對(duì)他們的超越。

              對(duì)等協(xié)作 JBuilder 2006最具特色的新功能 

            9月2日發(fā)布的Borland JBuilder 2006創(chuàng)造性引入P2P對(duì)等協(xié)作功能,使開(kāi)發(fā)團(tuán)隊(duì)能夠跨越地域的限制進(jìn)行即時(shí)交互(chatting, editing, designing, and debugging),實(shí)現(xiàn)虛擬化團(tuán)隊(duì)編程(Virtual Peer Programming)。

            下面我們模擬兩個(gè)團(tuán)隊(duì)成員(Tom和Angel)在局域網(wǎng)內(nèi)的具體協(xié)作過(guò)程來(lái)說(shuō)明JBuilder 2006的對(duì)等協(xié)作新功能。

            1) Tom打開(kāi)JBuilder 2006,通過(guò)JBuilder 2006中新的菜單Collaborate菜單設(shè)置協(xié)作賬號(hào)的屬性: Collaborate->Peer to Peer Properties…->打開(kāi)Properties對(duì)話框,如圖 2所示:

          鳳凰浴火:JBuilder2006新功能賞析(3)
          圖 2 設(shè)置協(xié)作賬號(hào)的屬性對(duì)話框


            這里,Tom僅簡(jiǎn)單地設(shè)置了自己的名字,通過(guò)Choose Icon…按鍵可以選擇一個(gè)圖標(biāo)。

            2) Tom創(chuàng)建一個(gè)名為testPro的工程,在工程中通過(guò)File->New…->General->Application創(chuàng)建一個(gè)Application,其主入口類名為App,主窗體類名為MainFrame。

            3) Angel在局域網(wǎng)的另一臺(tái)機(jī)器上啟動(dòng)JBuilder 2006,如1)步一樣建立一個(gè)名為Angel的協(xié)作賬號(hào)。

            4) Tom將工程窗格切換到Peers的標(biāo)簽頁(yè)上,將發(fā)現(xiàn)JBuilder 2006已經(jīng)自動(dòng)探測(cè)到了Angel,并將Angel列在可選協(xié)作人員名單中,如圖 3所示:

          鳳凰浴火:JBuilder2006新功能賞析(3)
          圖 3 建立協(xié)作聯(lián)系


            Tom雙擊Peers標(biāo)簽頁(yè)中的Angel,JBuilder窗體右側(cè)出現(xiàn)一個(gè)Collaboration對(duì)等協(xié)作窗格。Tomo可以通過(guò)這個(gè)窗格和Angel進(jìn)行對(duì)話,進(jìn)行初步聯(lián)系。

            5) Tom單擊Collaboration窗格的鳳凰浴火:JBuilder2006新功能賞析(3) 圖標(biāo)將testPro.jpx工程共享給Angel,Angel的JBuilder中將馬上出現(xiàn)來(lái)自Tom共享工程的通知信息,提示Tom正要將testPro的工程共享給她,如圖 4所示:

          鳳凰浴火:JBuilder2006新功能賞析(3)
          圖 4 Angel被告知Tom正要共享工程給她


            Angel僅需點(diǎn)擊testPro.jpx的鏈接即可獲得Tom的testPro.jpx工程的共享權(quán)。當(dāng)Angel接受了Tom的共享工程后,Tom端的JBuilder自動(dòng)將testPro.jpx整個(gè)工程的文件發(fā)送給Angel,并在Angel的JBuilder中展現(xiàn)。此時(shí)Angel所看到的內(nèi)容和Tom是完全一樣的,可以稱其為T(mén)om JBuilder的"鏡像JBuilder",但此時(shí)Angel還不能對(duì)工程的文件進(jìn)行任何修改。Angel將工程窗格切換到Project標(biāo)簽頁(yè)上,可以看到這個(gè)文件現(xiàn)在處理Remote Read Only狀態(tài),如圖 5所示:

          鳳凰浴火:JBuilder2006新功能賞析(3)
          圖 5 Angel的工程窗格顯示共享工程的狀態(tài)


            在JBuilder 2006多人協(xié)作的環(huán)境中,同時(shí)只能有一人擁有編輯工程的權(quán)限,在獲取工程的編輯權(quán)限之前必須得到工程的令牌(Token)。工程的擁有者(我們的例子中是Tom)可以將令牌傳送給協(xié)作中的任何一個(gè)人,也可以從執(zhí)有者手中取回令牌。
           6) Tom在Collaboration窗格中點(diǎn)擊 鳳凰浴火:JBuilder2006新功能賞析(4)圖標(biāo),在下拉的菜單中點(diǎn)擊Angel,這樣,Tom就將工程令牌傳給Angel了,如圖 6所示:

          鳳凰浴火:JBuilder2006新功能賞析(4)
          圖 6 Tom將令牌傳遞給Angel

            7) Angel在得到令牌后,就擁有了編輯工程文件的權(quán)限。注意:工程窗格工程結(jié)構(gòu)樹(shù)文件后的標(biāo)識(shí)已經(jīng)從[Remote Read Only]轉(zhuǎn)變?yōu)閇Remote]。Angel對(duì)工程文件的任何編輯將會(huì)即時(shí)同步到Tom的JBuilder中。Angel打開(kāi)App.java文件,將第25~35行置為同步編輯狀態(tài),將screenSize變量改變?yōu)閟creenSize1,如圖 7所示:

          鳳凰浴火:JBuilder2006新功能賞析(4)
          圖 7 Angel對(duì)App進(jìn)行編輯

            Tom的JBuilder界面即時(shí)看到了Angel的這個(gè)調(diào)整,Angel還通過(guò)對(duì)聊窗口對(duì)Tom說(shuō):"我將screenSize變量調(diào)整為screenSize1",如圖 8所示:

          鳳凰浴火:JBuilder2006新功能賞析(4)
          圖 8 Tom看到了Angel的更改


            8) 對(duì)等協(xié)作不但可以同享編輯器,還可以共享UI設(shè)計(jì)器。Angel打開(kāi)MainFrame.java,并切換Design視圖頁(yè)上打開(kāi)UI設(shè)計(jì)器,對(duì)MainFrame的界面進(jìn)行設(shè)計(jì)。此時(shí)Tom的JBuilder也將自動(dòng)切換到MainFrame的設(shè)計(jì)窗口中和Angel的JBuilder保持同步。Angel在MainFrame的界面上添加了一個(gè)按鈕,如圖 9所示:

          鳳凰浴火:JBuilder2006新功能賞析(5)
          圖 9 Angel通過(guò)共享設(shè)計(jì)器設(shè)計(jì)界面

            Tom在自己的JBuilder中馬上也看到了這一變化,就好象幕后有一雙無(wú)形的手在操作在自己JBuilder中設(shè)計(jì)著MainFrame界面一樣。

            9) Angel完成了設(shè)計(jì)工作后,Tom通過(guò)Collaboration窗格中如下的操作收回編輯令牌:

           鳳凰浴火:JBuilder2006新功能賞析(5) 
          圖 10 Tom從Angel手中取回令牌


            收回令牌后,Tom即可以對(duì)工程進(jìn)入編輯了。同樣的,Tom對(duì)工程所做的任何編輯動(dòng)作將即時(shí)同步到Angel的JBuilder窗口中。

            10) 在這一步里,Tom要和Angel進(jìn)行共享調(diào)試的協(xié)作。Tom在工程窗格在App.java中右擊,在彈出的菜單中選擇Debug using "App",此時(shí)Tom的JBuilder調(diào)出調(diào)試信息窗格,Tom對(duì)程序進(jìn)行單步調(diào)試跟蹤,Angel的JBuilder也同時(shí)反映出相同的操作。雖然Angel此時(shí)不能進(jìn)行調(diào)試的控制(如單步運(yùn)行、跳過(guò)方法、移到下個(gè)斷點(diǎn)等),但她可以通過(guò)Add Watch窗口查看運(yùn)行期變量信息,如下圖所示:

          鳳凰浴火:JBuilder2006新功能賞析(5)
          圖 11 Angel在共享調(diào)試窗口查看運(yùn)行期變量
            11) 在完成一系列對(duì)等協(xié)作后,Tom可以通過(guò)Collaboration窗格的鳳凰浴火:JBuilder2006新功能賞析(5) 按鈕,收回工程共享的權(quán)限。

            對(duì)等協(xié)作除可以在協(xié)作成員間共享編輯器,設(shè)計(jì)器、調(diào)試器、并進(jìn)行對(duì)聊的功能外,JBuilder的對(duì)等協(xié)作還可以傳送文件,發(fā)送URL連接,發(fā)送運(yùn)行期的堆棧跡,此外令牌的執(zhí)有者還可以將當(dāng)前編輯器所處的程序代碼的位置通過(guò)Send Line Like發(fā)送給其他成員,使其他成員編輯器定位到相同的地方,如所示:

          鳳凰浴火:JBuilder2006新功能賞析(5)
          圖 12 編輯器位置協(xié)作定位

            這不啻為是一個(gè)細(xì)心的功能,因?yàn)閳F(tuán)隊(duì)成員位于不同地方,在協(xié)作時(shí),當(dāng)你希望其他成員轉(zhuǎn)向某個(gè)程序文件的某行代碼時(shí),往往需要花費(fèi)一番口舌,但有了這項(xiàng)貼心的功能一切變得一蹴而就了。

            此外JBuilder還允許對(duì)傳輸進(jìn)行安全的設(shè)置,對(duì)傳送的信息進(jìn)行加密和認(rèn)證,確保協(xié)作的安全。

            如果JBuilder端點(diǎn)分布于WAN上,JBuilder則使用一種稱為Jabber的開(kāi)源即時(shí)信息發(fā)送協(xié)議,為了和遠(yuǎn)程的端點(diǎn)協(xié)作,你必須在Jabber Server上創(chuàng)建一個(gè)帳號(hào),可以通過(guò)http://www.jabber.org來(lái)了解更多關(guān)于Jabber的信息。
             JBuilder 2006的其他新特性

            JDK 5.0的支持

            雖然在JBuilder 2005中已經(jīng)可以開(kāi)發(fā)基于JDK 5.0的程序,但JBuilder 2005自帶的JDK卻是JDK 1.4版本的,需要從SUN下載安裝并在JBuilder 2005中配置,才可以使用JDK 5.0。但JBuilder 2006自帶的JDK就是JDK 5.0,你無(wú)需再做任何的事情就可以使用了。

            J2EE和EJB的提升

            JBuilder 2006支持J2EE 1.4和EJB 2.1,并支持目前市場(chǎng)上最新的J2EE服務(wù)器,包括Tomcat 5.5,WebLogic 9.0,Websphere 6.0和JBoss 4.x。

            Web開(kāi)發(fā)的提升

            JBuilder 2006大力加強(qiáng)了對(duì)JSF的支持,包括新增了一個(gè)DTO/Fa?ade向?qū)?,用于?chuàng)建JSF的客戶端。JSF的流程設(shè)計(jì)器的功能得到了顯著的改善:現(xiàn)在你可以從流程設(shè)計(jì)器定位到另一個(gè)JSP的代碼上,可以從一個(gè)流程設(shè)計(jì)器轉(zhuǎn)到另一個(gè)流程設(shè)計(jì)器,此外流程設(shè)計(jì)器的ErrorInsight的功能得到了優(yōu)化。

            Struts是當(dāng)前最流行的Web層框架技術(shù),JBuilder 2006所支持的Struts版本提升到了Struts 1.2。

            Web services

            Apache Axis的web services工具箱更新到了1.2.1版本。好幾個(gè)Web Services的UI設(shè)計(jì)界面得到了調(diào)整以支持J2EE 1.4。JBuilder 2006現(xiàn)在同時(shí)支持1.0和1.1兩個(gè)版本的Interoperability (WS-I) 的Web Services測(cè)試工具。

            總結(jié)

            在歷時(shí)一年之久之后,Borland部分地完成了對(duì)JBuilder 2005的戰(zhàn)略升級(jí)。其開(kāi)創(chuàng)性的對(duì)等協(xié)作功能大大降低了分布式團(tuán)隊(duì)的協(xié)作成本和難度。對(duì)等協(xié)作使分布式團(tuán)隊(duì)跨越了地理上的限制,將團(tuán)隊(duì)的智慧和開(kāi)發(fā)力集中到了一起。那些因?yàn)榈赜虻南拗普郎?zhǔn)備打點(diǎn)行囊趕赴會(huì)戰(zhàn)點(diǎn)的開(kāi)發(fā)成員,有了JBuilder 2006的對(duì)等協(xié)作的幫助,就可以為省卻旅途顛簸之苦而歡呼了,老板也將因?yàn)楣?jié)省了一大筆差旅費(fèi)而暗自慶幸。

            當(dāng)然,最終完整版的JBuilder 2006還沒(méi)有推出,以Eclipse為骨架的這個(gè)JBuilder混血兒究竟有哪些驚世駭俗的表現(xiàn)?我們還在引頸期待中,但Borland這次令人眼花繚亂的組合重拳,已經(jīng)依稀讓我們看到了JBuilder 2006脫胎換骨后鳳凰涅槃的英姿。

          posted on 2005-10-19 15:09 sharky的點(diǎn)滴積累 閱讀(186) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 宾川县| 井冈山市| 突泉县| 泾川县| 巫溪县| 高邑县| 报价| 卢湾区| 锦屏县| 安岳县| 富民县| 绿春县| 华阴市| 陕西省| 屯昌县| 钟祥市| 虹口区| 海城市| 馆陶县| 慈溪市| 焉耆| 玉林市| 金华市| 且末县| 嘉黎县| 双辽市| 陆丰市| 苏尼特左旗| 社旗县| 岳普湖县| 龙海市| 万山特区| 繁峙县| 东兰县| 福海县| 酉阳| 高尔夫| 军事| 香港 | 乌审旗| 神农架林区|