Java 開發(fā)環(huán)境的過去、現(xiàn)在和將來(初稿,略有改動)
(特此感謝Kent Beck先生的鼓勵和陸廣先生的指點(diǎn))
1995年3月23日,San Jose Mercury News登出一篇題為"Why Sun thinks Hot Java will give you a lift"的文章,在那篇文章里預(yù)言Java技術(shù)將是下一個重大事件,這個預(yù)言現(xiàn)在看來并不僅僅是商家的宣傳伎倆,雖然文章是當(dāng)時(shí)Sun的公關(guān)經(jīng)理 Lisa Poulson安排撰寫的。從世人知道Java那一刻起到現(xiàn)在,算起來已經(jīng)過去整整十年,回顧過去的十年值得總結(jié)的東西可以有許多,但在這里筆者只想就Java 開發(fā)環(huán)境談些個人的想法與朋友們交流一下。
現(xiàn)在的軟件開發(fā)人員在整個軟件的開發(fā)生命周期里,也許會根據(jù)需要使
用各式各樣的開發(fā)工具來完成相對復(fù)雜的開發(fā)任務(wù),而在幾十年以前,人們還只是使用文本編輯器、編譯器和Debugger進(jìn)行開發(fā),對于這個階段的開發(fā)環(huán)境人們稱之為CLEs(Command Line Environments) 。而當(dāng)人們發(fā)現(xiàn)如果將那些單獨(dú)分開的開發(fā)工具集成起來就可以有效的提高開發(fā)效率時(shí),IDEs(Integrated Development Environments)就出現(xiàn)了。第一個IDEs也許可以追溯到1964年的Dartmouth Basic,盡管這有爭議,它是作為Dartmouth Time Sharing System的一部分,在John Kemeny 和 Thomas Kurtz指導(dǎo)下建立起來的,這套系統(tǒng)一直使用到1999年。盡管這40多年以來,開發(fā)人員的開發(fā)環(huán)境幾經(jīng)變化、不斷進(jìn)步,從早期的集成開發(fā)環(huán)境 IDEs到擴(kuò)展開發(fā)環(huán)境XDEs(eXtended Development Environments)再到協(xié)同開發(fā)環(huán)境CDEs(Collaborative Development Environments),歷經(jīng)了幾個不同的階段,但開發(fā)人員使用開發(fā)環(huán)境的目的始終就是一個:提高開發(fā)效率。Java的出現(xiàn)盡管只有十年,但其開發(fā)環(huán)境也大至經(jīng)歷了從CLEs到IDEs再到XDEs這三個階段,現(xiàn)在即將進(jìn)入CDEs階段。在上述Java開發(fā)環(huán)境發(fā)展過程中,有許多值得我們大家關(guān)注的地方。
Java開發(fā)環(huán)境的歷史回顧
縱觀過去十年Java開發(fā)環(huán)境的發(fā)展,大致可以粗略的劃分為如下幾個階段:
- 1995 命令行開發(fā)環(huán)境CLEs
- 1996 - 2000 集成開發(fā)環(huán)境IDEs
- 2001 - 2004 擴(kuò)展開發(fā)環(huán)境XDEs
- 2005 - 協(xié)同開發(fā)環(huán)境CDEs
1995年,不平凡的一年,這一年Java 獲得了成功??闪钊藢擂蔚氖窃?995年并沒有一個令人滿意的Java開發(fā)環(huán)境,開發(fā)人員在進(jìn)行Java編程時(shí),大多使用文本編輯器編輯源程序,比如,Emacs、Vi、Notepad 等,然后再使用命令行的方式進(jìn)行編譯處理。那時(shí)的Java開發(fā)環(huán)境還處于CLEs時(shí)代,開發(fā)效率非常低,這不能不說是Sun的一個失誤,但也預(yù)示著在Java開發(fā)工具上會有一番激烈的競爭。與Java世界即將開始的開發(fā)工具大戰(zhàn)不同,在Smalltalk世界里勝負(fù)結(jié)果似乎已經(jīng)明朗,IBM的 Visual Age for Smalltalk、 ParcPlace的ObjectWorks和Digitalk的Visual Smalltalk三足鼎立的格局那時(shí)已經(jīng)被打破,IBM的Visual Age for Smalltalk所占市場分額越來越大,而當(dāng)時(shí)IBM進(jìn)入Smalltalk市場僅有兩年多的時(shí)間。IBM之所以在很短的時(shí)間超越老牌的 Smalltalk 廠商ParcPlace和Digitalk,其中一個重要原因是IBM直接將其產(chǎn)品委托給一家由軟件精英組成的公司進(jìn)行開發(fā),這家公司就是由軟件開發(fā)大師級的人物Dave Thomas( Bedarra-Dave)創(chuàng)建的OTI( Object Technology International)公司。IBM在1993年進(jìn)入Smalltalk市場的第一個產(chǎn)品ENVY/400就是OTI為其開發(fā)的,而其后包括 Visual Age for Smalltalk在內(nèi)的多種產(chǎn)品開發(fā)OTI都參與了。為了抗衡IBM,ParcPlace和Digitalk兩家公司在Java誕生的那一年進(jìn)行了合并,成立了名為ParcPlace-Digitalc的公司,但事后再看這次合并,不過是徒勞之舉罷了?,F(xiàn)在各廠家的Smalltalk 開發(fā)環(huán)境中都或多或少的內(nèi)置了ENVY,而隨著IBM進(jìn)軍Java開發(fā)工具市場,ENVY的相關(guān)技術(shù)也被從Smalltalk世界帶入到Java開發(fā)環(huán)境中。
1995年也是Smalltalk作為第5代編程語言從 Xerox Palo Alto研究中心走向市場的10周年,Dave Thomas為此寫了一篇題為"Ubiquitous Applications:Embedded Systems to Mainframe"的論文,作為Smalltalk市場化10周年的總結(jié),文中介紹了Smalltalk是如何利用虛擬機(jī)實(shí)現(xiàn)從嵌入式到大型機(jī)廣泛應(yīng)用開發(fā)的,而那時(shí)Java世界的人們還在為Java虛擬機(jī)的拙劣性能而苦惱,那時(shí)也許沒有人會想到現(xiàn)在Java的普及程度早已超越了Smalltalk。
有人稱1996年為互聯(lián)網(wǎng)年,有人卻稱之為Java年,還有人稱之為Web開發(fā)年,但不論如何稱呼1996年,它都反映了一個事實(shí): Bill Joy將Java與互聯(lián)網(wǎng)相結(jié)合的策略取得了成功。這一年的9月Sun推出了其Java開發(fā)環(huán)境-Java WorkShop,這是一款基于瀏覽器的Java開發(fā)工具,但由于當(dāng)時(shí) Java在許多方面還不成熟,所以實(shí)際上Java WorkShop并不成功,同年發(fā)布的Symantec Visual Cafe由于還是采用C/C++語言進(jìn)行開發(fā),所以性能與成熟度上就比WorkShop好得多。提到Visual Cafe就不能不提Eugene Wang,因?yàn)镋ugene Wang常常是與計(jì)算機(jī)間諜這個詞同時(shí)出現(xiàn)的人物,有人甚至講當(dāng)時(shí)Symantec的老板Gordon Eubanks與Eugene Wang簽約時(shí),也同時(shí)簽下了監(jiān)獄里的一個單元。圍繞著Eugene Wang的間諜案發(fā)生的種種事情,將Borland和Symantec兩家公司不為人知的陰暗面展現(xiàn)在公眾面前,對兩家公司的聲譽(yù)都帶來了損害。為避免雙方商業(yè)利益繼續(xù)遭受損失,最后這個間諜案以 Eugene Wang向法庭交納了一筆罰款而不了了之。Visual Cafe就是由Eugene Wang進(jìn)行主要策劃的,它是在同一年發(fā)布的Java開發(fā)環(huán)境中,唯一解決了與數(shù)據(jù)庫連接問題的開發(fā)環(huán)境,帶有一套可以與數(shù)據(jù)庫相連接的組件,無需太多編程使用拖拽的方式就可完成大部分工作,這一優(yōu)點(diǎn)使得Visual Cafe受到了Java開發(fā)人員的歡迎。這一年IBM收購了OTI公司,從而得到了Dave Thomas的弟子John Duimovich、Dave Thomson、Mike Wilson等一大批軟件精英,這之中還包括"生活在技術(shù)刀鋒上的開發(fā)者"Brian Barry。
1997年,由于微軟壟斷案,使得微軟在Java開發(fā)環(huán)境上的努力受到了限制,Visual Cafe由于界面直觀易用,可以很容易地連接各種數(shù)據(jù)源等功能再次受到開發(fā)人員的歡迎。這一年IBM發(fā)布Visualage for Java,它是用Smalltalk編寫的吸收了許多ENVY的設(shè)計(jì)思想,比如,Visualage for Java是面向代碼庫的開發(fā)環(huán)境,它提供代碼庫和項(xiàng)目管理以便于開發(fā)團(tuán)隊(duì)在 C/S環(huán)境下進(jìn)行項(xiàng)目開發(fā)。但由于大多數(shù)Java開發(fā)人員比較熟悉面向文件的開發(fā)環(huán)境,還不太習(xí)慣面向代碼庫的開發(fā),再加上Visalage for Java對系統(tǒng)資源的要求比較高等因素,使得Visualage for Java一開始未被Java開發(fā)人員所認(rèn)可。
1998年至2000年比較成功的Java開發(fā)環(huán)境是JBuilder,這是由于Borland較好的把握住 J2SE、J2EE和J2ME發(fā)布后,Java技術(shù)升級的時(shí)機(jī),全面支持Java1.1和Java1.2開發(fā)平臺,它還提供了多種工具方便用戶從舊的平臺遷移到新的Java平臺。JBuilder本身80%是基于JDK1.2進(jìn)行開發(fā)的,它支持JavaBeans, Enterprise JavaBeans, JDBC等方面的應(yīng)用開發(fā),可以連接多種關(guān)系數(shù)據(jù)庫。為支持分布式應(yīng)用開發(fā),JBuilder還集成了 VisiBroker ORB、JSP server、數(shù)據(jù)庫和EJB AppServer,并提供Open Tools API便于第三方工具集成。上述種種的優(yōu)點(diǎn)使得JBuilder一舉超越Visual Cafe,成為當(dāng)時(shí)最受歡迎的Java開發(fā)環(huán)境。在眾多Java開發(fā)環(huán)境中,1999年IBM發(fā)布的VisualAge for Java Micro Edition是比較有特色的開發(fā)環(huán)境,它是由Erich Gamma和與Erich Gamma有"焦不離孟、孟不離焦"之稱的John Wiegand共同進(jìn)行設(shè)計(jì)的,采用了Java 擴(kuò)展機(jī)制,并集成了Junit測試框架,其當(dāng)時(shí)所采用的架構(gòu)深深地影響了后來Eclipse1.0所采用的架構(gòu)。同時(shí),通過 VisualAge for Java Micro Edition的開發(fā),那些來自"未來世界"(Smalltalk們總認(rèn)為他們來自計(jì)算機(jī)的未來世界)的軟件精英們,全面徹底地對 Java技術(shù)進(jìn)行了評估,得出了許多結(jié)論性的東西,這之中包括現(xiàn)在鬧得沸沸揚(yáng)揚(yáng)的Swing和SWT對比。此外,Sun將其收購的NetBeans變成了開源的Java IDE也是一件不大不小的事情。
縱觀1996年至2000年這五年時(shí)間里,隨著Java及其相關(guān)開發(fā)應(yīng)用的發(fā)展,Java開發(fā)環(huán)境也不斷的完善,從CLEs進(jìn)入到IDEs階段。為了提高Java開發(fā)人員的開發(fā)效率,Java開發(fā)環(huán)境主要從兩個方面進(jìn)行改進(jìn)與提高。一方面是提高集成在Java IDEs當(dāng)中開發(fā)工具的性能和易用性,比如從最初的代碼編輯器、編譯器、Debugger等開發(fā)工具發(fā)展到增量編譯器、組件瀏覽器、自動編碼和用戶界面的可視化編輯器等,以此減少Java 開發(fā)人員輸入代碼的工作量、節(jié)省編譯時(shí)間,將Java 開發(fā)人員寶貴的時(shí)間花費(fèi)在思考問題上而不是輸入代碼上。另一方面是將Java開發(fā)環(huán)境盡可能的覆蓋到整個軟件的開發(fā)生命周期,比如,將源代碼的版本控制工具集成進(jìn)Java IDEs當(dāng)中,這樣做的好處是Java開發(fā)人員無需離開開發(fā)環(huán)境就可以完成大多數(shù)實(shí)際工作,節(jié)省進(jìn)行不同工具之間的切換時(shí)間和適應(yīng)這些工具的學(xué)習(xí)時(shí)間,提高了開發(fā)效率。隨著基于WEB,采用N-層結(jié)構(gòu)的應(yīng)用開發(fā)成為Java開發(fā)人員主要從事的開發(fā)任務(wù),Java開發(fā)環(huán)境需要支持越來越多的技術(shù),比如,XML、 JSP、EJB和CORBA等,這就造成了Java IDEs的規(guī)模變得越來越大,許多Java開發(fā)環(huán)境都集成了數(shù)據(jù)庫、JSP Server和AppServer,軟件的研究人員將上述IDEs不斷膨脹的現(xiàn)象稱為"IDEs大爆炸"。
"IDEs大爆炸"現(xiàn)象發(fā)生以后,有關(guān)Java開發(fā)環(huán)境是走少而精的發(fā)展方向,還是走大而全的發(fā)展方向就成了廣大Java開發(fā)人員關(guān)注的問題。2001年Java開發(fā)人員達(dá)到了200萬,成為每個軟件供應(yīng)商都無法忽視的力量,這一年JetBrains推出了Java開發(fā)環(huán)境少而精的代表: IntelliJ IDEA。 IntelliJ IDEA明確的表示只做最好的Java代碼編輯器,不做什么文件都可以編寫的編輯器。它關(guān)注Java開發(fā)人員的工作實(shí)際并將這些工作進(jìn)行了優(yōu)化,比如編寫 try/catch語句結(jié)構(gòu)只需簡單的點(diǎn)兩下鼠標(biāo)。IntelliJ IDEA提供的活動模板可以擴(kuò)展公共代碼片斷,語法加亮及其各種各樣的快捷方式,使得開發(fā)人員可以專注于問題的解決。IntelliJ IDEA另一個特點(diǎn)是其編輯器具有重構(gòu)功能,可以進(jìn)行XP式的重構(gòu),適用于Java開發(fā)人員的敏捷式開發(fā)。由于減掉了一些可有可無的工具,所以價(jià)格上相對合理公道。當(dāng)年IntelliJ IDEA擊敗JBuilder成為最受Java開發(fā)人員歡迎的Java開發(fā)環(huán)境,即便是Martin Fowler這樣大師級的人物也喜歡使用IDEA,由此可見IDEA的優(yōu)秀程度。不過2002年隨著JBuilder將大而全的功力再提升一步,將UML 建模工具、JUnit測試框架以及Apache Struts等開發(fā)工具集成進(jìn)來,大而全的發(fā)展方向又一次受到Java開發(fā)人員追捧。最全還是最好似乎使Java開發(fā)人員在選擇Java 開發(fā)環(huán)境時(shí)處于兩難狀況,但實(shí)際上當(dāng)Eclipse1.0發(fā)布時(shí),這個問題已經(jīng)得到了初步的解決,最好和最全是可以兼顧的,而Eclipse1.0的發(fā)布也標(biāo)志著Java 開發(fā)環(huán)境進(jìn)入XDEs時(shí)代。
Eclipse的出現(xiàn)不是從天上掉下來的,也不是某個天才拍腦袋想出來的,它是一群軟件精英們集體智慧的結(jié)果。早在1998年IBM就打算開發(fā)新一代的工具平臺以便將它現(xiàn)有的各種開發(fā)工具統(tǒng)一起來,并減少開發(fā)各種工具時(shí)重復(fù)的勞動,同時(shí)希望在新的平臺上建立新的Java開發(fā)環(huán)境。經(jīng)過一段時(shí)間的準(zhǔn)備, IBM開始建立起一個開發(fā)團(tuán)隊(duì),人員構(gòu)成主要來自VisualAge for Java Micro Edition和VisualAge for Java兩個項(xiàng)目的開發(fā)人員,選擇的標(biāo)準(zhǔn)是過去10年至少開發(fā)過5到6個IDE。在開發(fā)Eclispe的過程中,開發(fā)人員借鑒了過去的成功經(jīng)驗(yàn),這包括:
- ENVY/Smalltalk-增量編譯
- Hoops-用戶可定制
- VA/java-如何使開發(fā)環(huán)境易于使用的經(jīng)驗(yàn)
- Team/v-API先行
- Sniff-如何處理 C++的經(jīng)驗(yàn)
- VA/microED-Java 擴(kuò)展機(jī)制的架構(gòu)
特別是采用了Java 擴(kuò)展機(jī)制的架構(gòu)一條,使得Eclipse具有良好的可擴(kuò)展性,Java開發(fā)環(huán)境進(jìn)入XDEs時(shí)代。不過軟件精英們先進(jìn)的思想要讓廣大的Java開發(fā)人員所接受,還需要一個過程。為此IBM聯(lián)合了9家公司共同成立了一個開源組織Eclipse基金會,將Eclipse提供給開發(fā)人員使用,并在開源社區(qū)的幫助下進(jìn)一步完善Eclipse本身。Eclipse在最初設(shè)計(jì)時(shí),插件模型是靜態(tài)的,不能實(shí)現(xiàn)插件的即插即用功能,即便是大受歡迎的 Eclipse2.1也還是靜態(tài)的。所以到2004年發(fā)布Eclipse3.0時(shí),Eclipse進(jìn)行了重大改進(jìn),采用OSGi 的插件模型,初步實(shí)現(xiàn)了插件的即插即用功能,至此一個完美的、可擴(kuò)展的開發(fā)環(huán)境展現(xiàn)在Java開發(fā)者面前,這時(shí)Java開發(fā)人員已經(jīng)達(dá)到300萬。
Java開發(fā)環(huán)境的現(xiàn)狀
2004年Eclipse3.0的發(fā)布極大刺激了Eclipse用戶的增長,據(jù)Evans Data Corporation的調(diào)查EMEA(Europe, Middle East 和 Africa )地區(qū)的Eclipse用戶增加了60%,亞太APAC(Asia Pacific)地區(qū)的Eclipse用戶增長了70%,而北美地區(qū)的Eclipse用戶增加了90%。O‘REILLY2004年問卷調(diào)查顯示使用 Eclipse的用戶竟然達(dá)到70%,但這顯然有感情因素在里頭。經(jīng)過一年以后,Java開發(fā)人員現(xiàn)在使用Java開發(fā)環(huán)境的狀況是如何的呢?看了下面的表格里的數(shù)據(jù)也許可以了解一個大致的狀況。
表1 2005年Java開發(fā)人員使用Java開發(fā)環(huán)境的狀況
來源
| JSurfer網(wǎng)站
| Servlets網(wǎng)站
| CSDN網(wǎng)站
| O‘Reilly網(wǎng)站
|
人數(shù)
| 2509
| 5592
| 1000
| 496
|
Eclipse | 37.31%
| 42.18%
| 54.1%
| 35.6%
|
IntelliJ IDEA | 24.91%
| 9.87%
| 6.5%
| 13.9%
|
NetBeans
| 10.48%
| 12.89%
| 3.9%
| 18.7%
|
JBuilder | 6.94%
| 11.85%
| 30.7%
|
|
JDeveloper | 1.79%
| 3.72%
| 0.9%
|
|
Websphere Studio App Developer |
| 6%
| 2.4%
|
|
Emacs
| 4.98%
| 2.82%
|
| 5.8%
|
Vi/Vim
|
| 3.83%
|
|
|
Weblogic Workshop |
| 0.87%
| 0.5%
|
|
Forte | 1.24%
|
|
|
|
AnyJ | 0.20%
|
|
|
|
CodeGuide | 1.16%
|
|
|
|
Elixir IDE | 1.39%
|
|
|
|
jEdit | 7.25%
|
|
|
|
不使用IDE
|
|
| 7.6%
|
|
未使用Java
|
|
|
| 15.1%
|
其它
| 2.35%
| 5%
| 4.3%
| 10.6%
|
首先需要指明的是上述的數(shù)據(jù)并不是當(dāng)前Java用戶使用Java開發(fā)環(huán)境的準(zhǔn)確反映,但我們可以從中了解一個大致的狀況?,F(xiàn)在的 Java環(huán)境可以分為三個集團(tuán),第一集團(tuán)是Eclispe它大約占據(jù)1/3的份額,第二集團(tuán)是 IntelliJ IDEA、NetBeans 和JBuilder占據(jù)另外1/3的份額,相互之間旗鼓相當(dāng),第三集團(tuán)是以JDeveloper和WSAD為代表的十幾種Java開發(fā)環(huán)境占據(jù)剩下的 1/3份額,但每種開發(fā)環(huán)境占總份額的比重不超過5%。我們考察Eclipse、intelliJ IDEA、NetBeans 和JBuilder這些主流開發(fā)環(huán)境,可以發(fā)覺它們有一個共同的特點(diǎn)那就是可擴(kuò)展,盡管在實(shí)現(xiàn)手段上各有不同。這就是為什么稱現(xiàn)在的Java開發(fā)環(huán)境為XDEs(eXtended Development Environments)的原因,IDEs已經(jīng)死亡了4年,專業(yè)的開發(fā)人員需要了解這個事實(shí),因?yàn)閄DEs也快死了。
總的講20年來軟件工程的發(fā)展變化很小,現(xiàn)在許多為人所熟知的概念和方法都是在20年以前奠定下的基礎(chǔ)。盡管Gerald Weinberg等人要求特別關(guān)注軟件開發(fā)中人的因素,但無論是過去的IDEs也好,還是現(xiàn)在的XDEs也罷,它們有一個共同的出發(fā)點(diǎn):僅僅注重提高個人的開發(fā)效率?,F(xiàn)在的Java開發(fā)環(huán)境,在如何提高個人開發(fā)效率上做了許多工作,比如,增量編譯器、組件瀏覽器、可視化編輯器等,但是我們知道現(xiàn)在的Java開發(fā)人員主要開發(fā)復(fù)雜的N-層Web應(yīng)用,這需要知道多種編程語言、運(yùn)行平臺以及相關(guān)的各種組件和Web服務(wù)技術(shù),由于影響因素眾多,開發(fā)人員很難單獨(dú)完成全部的工作。一般以Web應(yīng)用為核心的開發(fā)團(tuán)隊(duì)常常包括項(xiàng)目經(jīng)理、測試工程師、網(wǎng)絡(luò)工程師,架構(gòu)師,軟件工程師和內(nèi)容編輯等角色,有些項(xiàng)目的人數(shù)會達(dá)到幾十甚至上百人,軟件開發(fā)已經(jīng)成為一個集體項(xiàng)目,成員之間的合作與個人英雄同樣重要。
由于市場的壓力,一個軟件企業(yè)不僅要提高開發(fā)人員個體的工作效率,還要提高整個開發(fā)團(tuán)隊(duì)以及整個企業(yè)的開發(fā)效率,但在現(xiàn)有的Java 開發(fā)環(huán)境XDEs下無法完全做到這些,所以新一代開發(fā)環(huán)境CDEs (Collaborative Development Environments)就產(chǎn)生。Grady Booch和Alan W. Brown的研究表明一個程序員一天工作時(shí)間的分配是這樣的:分析占16% (從 5% 到 40%不等), 設(shè)計(jì)占14% (從 1% 到 40%不等),編程占16% (從0% 到 60%不等), 測試占10% ,打電話占 3% ,閱讀占7% (電子郵件,文檔,月刊和雜志),參加開發(fā)會議占 10% ,無關(guān)的會議占 7% 。從這些數(shù)據(jù)可以發(fā)現(xiàn),開發(fā)人員用于交流的時(shí)間約占工作時(shí)間的1/3,開發(fā)人員的相互交流非常重要??墒乾F(xiàn)有的主流Java開發(fā)環(huán)境一般僅將分析、設(shè)計(jì)、編程和測試等工具集成進(jìn)來,卻未包括用于交流的工具,這顯然不合理。因此,所謂CDEs就是將用于人與人、人與團(tuán)隊(duì)以及團(tuán)隊(duì)與團(tuán)隊(duì)進(jìn)行交流的工具集成進(jìn)來的開發(fā)環(huán)境,比如,CDEs常具有發(fā)送電子郵件、進(jìn)行及時(shí)通訊和屏幕分享等功能,通過實(shí)現(xiàn)無損耗過程的交流提高開發(fā)團(tuán)隊(duì)的開發(fā)效率。
現(xiàn)在已經(jīng)商業(yè)化的 CDEs是CodeBeamer Collaborative Development Platform和CodePro AnalytiX,上述兩款軟件都提供Eclipse的插件,可以與Eclipse集成在一起,使Eclipse升級成為一個CDEs,從而提高Java 開發(fā)人員的開發(fā)效率,而Eclipse基金會開展的兩個開發(fā)項(xiàng)目 Stellation和 Koi都是希望Eclipse具有一定的協(xié)同功能。此外,GILD (Groupware-enabled Integrated Learning and Development)、Hipikat以及IBM的Jazz也是值得關(guān)注的研究項(xiàng)目。大家肯定知道Borland已經(jīng)宣布開發(fā)基于Eclipse 的新版JBuilder-"Peloton",Peloton就是一個CDEs(Collaborative Development Environments),當(dāng)它明年上半年發(fā)布時(shí),就意味著Java開發(fā)環(huán)境進(jìn)入CDEs時(shí)代,現(xiàn)在Java開發(fā)環(huán)境還處于 XDEs與CDEs交替的階段。 Java開發(fā)環(huán)境的未來
在可以看得見的將來,Java的開發(fā)環(huán)境還會是以CDEs的形式存在。開源組織或開發(fā)工具供應(yīng)商將會努力為軟件的開發(fā)創(chuàng)建一個絕對光滑的平面 (frictionless surface),實(shí)現(xiàn)無損耗的開發(fā)過程,以提高開發(fā)效率。為了實(shí)現(xiàn)無損耗的開發(fā)過程,Java的開發(fā)環(huán)境將會關(guān)注以下幾個方面:
- 起步階段方面
- 協(xié)作開發(fā)方面
- 維護(hù)開發(fā)團(tuán)隊(duì)有效溝通方面
- 多個任務(wù)的時(shí)間協(xié)調(diào)方面
- 相互協(xié)商方面
- 資料有效性方面
上述6個方面是最容易出現(xiàn)損耗的地方,如果出現(xiàn)了損耗將會浪費(fèi)時(shí)間和金錢,降低整個團(tuán)隊(duì)的開發(fā)效率。比如,每個Java開發(fā)人員都有這樣的經(jīng)歷,當(dāng)一個新的項(xiàng)目開始時(shí),總要有一個了解的過程,而進(jìn)入新的開發(fā)團(tuán)隊(duì)時(shí)也需要一個適應(yīng)過程,這些都叫起步損耗。在起步階段花費(fèi)的時(shí)間越少,起步損耗就越少,而開發(fā)的效率就越高。所以減少6個方面的損耗相應(yīng)地就是提高了開發(fā)效率,這就是CDEs比XDEs開發(fā)效率更高的奧秘。未來的Java開發(fā)環(huán)境也許具有下述功能:
- 及時(shí)通訊功能
- 舉辦網(wǎng)絡(luò)會議功能
- 集中的信息管理功能
- 應(yīng)用程序共享功能
- 搜索與查詢功能
- 屏幕共享功能
- 任務(wù)列表功能
- 文檔的流轉(zhuǎn)功能
- 在線投票功能
- 電子公告功能
- 計(jì)劃與日歷功能
- 時(shí)間提示功能
- 工作流程安排功能
- 電子郵件功能
- ...
但這里必須承認(rèn)未來Java開發(fā)環(huán)境是如何具體去實(shí)現(xiàn)無損耗的開發(fā),還需要時(shí)間給予答案,因?yàn)楝F(xiàn)在所能采用的方法未必是最好的,比如,使用面向文件的 CVS進(jìn)行協(xié)同開發(fā)就有需要改進(jìn)的地方。
總結(jié)
羅里羅唆一大堆,歸納起來不過就是:一個目的、三種手段以及一條規(guī)律。
一個目的:十年Java開發(fā)環(huán)境的演變,其目的就是為了提高開發(fā)效率。
三種手段:
- 提高集成在Java 開發(fā)環(huán)境中開發(fā)工具的性能和易用性
- 將Java開發(fā)環(huán)境盡可能的覆蓋到整個軟件的開發(fā)生命周期
- 集成人與人、人與團(tuán)隊(duì)以及團(tuán)隊(duì)與團(tuán)隊(duì)進(jìn)行交流的工具
一條規(guī)律:軟件開發(fā)環(huán)境的發(fā)展過程是從CLEs到IDEs再到XDEs最后進(jìn)入CDEs,這是由Grady Booch總結(jié)出來的,套在Java開發(fā)環(huán)境上也適用。 參考文獻(xiàn)
1. Grady Booch and Alan W. Brown, "Collaborative Development Environments", Advances in Computers 59, Aug. 2003.
2. Li-Te Cheng,Cleidson R. B. de Souza,Susanne Hupfer,John Patterson, Steven Ross, "Building Collaboration into IDEs", ACM Queue vol. 1, no. 9 - December/January 2003-2004
3. J. des Rivie` res,J. Wiegand, "Eclipse: A platform for integrating development tools", IBM System Journal,Volume 43, Number 2, 2004
4.The Java Extension Mechanism.
5. Grady Booch, "History of Development Environments", January 29, 2004
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。