1. NetBeans與Creator同室操戈
最近這段時間,Sun旗下兩款Java集成開發(fā)環(huán)境,上演著一出同室操戈的“喜劇”。一款是老牌勁旅NetBeans,另一款則是后起之秀Sun Java Studio Creator。NetBeans的“老牌”,從它的歷史可以追溯到十一年前的一九九六年可見一斑。而“勁旅”一詞,資深的Java程序員們肯定會點頭同意。相比之下,Sun Java Studio Creator要年輕許多,這個后來者是二零零一年才被提上Sun的議事日程的,而那時,前輩NetBeans已經(jīng)5歲了。不過,Creator的成長十分茁壯,在Java Web應(yīng)用開發(fā)領(lǐng)域,有著相當(dāng)不錯的表現(xiàn),因此,稱其為后起之秀絲毫也不為過。
NetBeans與Creator都是Sun寄予厚望的兩款Java IDE,一直備受Sun的呵護。手心是肉,手背也是肉。在過去的幾年中,Sun似乎未曾偏愛過其中任何一個,兩碗水端得很平。NetBeans照舊邁著老牛般沉穩(wěn)的步伐,隨著Java平臺的更新?lián)Q代,不緊不慢地推出新的版本。又或當(dāng)Sun發(fā)明一個什么新技術(shù)時,NetBeans也隨聲附和地往自己身上添加一個插件,保持著和Sun的一致步調(diào)。與NetBeans對新技術(shù)兼融并蓄來者不拒的寬容態(tài)度不同的是,Creator在眼花繚亂的新技術(shù)面前表現(xiàn)得相當(dāng)?shù)ǎ四切┯兄诳焖倏梢暬_發(fā)的技術(shù)以外,Creator并不一味追隨Java的時尚潮流,而是以Sun為其設(shè)定的目標(biāo)為準(zhǔn)繩和尺度,衡量著哪些技術(shù)應(yīng)該包含進來,哪些技術(shù)則應(yīng)該大膽放棄。
Sun的意圖是相當(dāng)明顯的,NetBeans是為Java高手打造的精良武器,而Creator則是專為Java初學(xué)者搭建的游樂場。NetBeans采用最新的技術(shù),支持最新的平臺版本,一個資深的Java程序員,在NetBeans中如魚得水,可以完成任何Java理論上能完成的工作,開發(fā)出精巧的、散發(fā)著Java咖啡濃香的、讓Java專家們頜首稱贊發(fā)出會心一笑的應(yīng)用程序。Creator則沒有這么嚴(yán)謹(jǐn)了,初學(xué)者無需太多的Java背景知識,一本書沒看完就可以充滿信心地投入Creator的懷抱。在Creator的游戲場上盡情玩耍,或爬或行,或跳躍或匍匐。只要能摘到Java樹上的那枚青果,你的程序就算編出來了,至于是否符合體系結(jié)構(gòu)的要求,有沒有冗余或者缺欠的代碼,都不太重要。
NetBeans和Creator如此相安無事多年后,平衡終于被打破,Sun開始在兩者之間猶豫不決。隨著版本的更新,NetBeans和Creator逐漸偏離了預(yù)期的軌道。一方面,NetBeans的用戶不再滿足于過分追求純粹的Java味道,快速可視化開發(fā)所帶來的效率的提高,讓他們對NetBeans的易用性提出了新的要求;另一方面,隨著Java EE 5的發(fā)布,Sun啟動了簡化Java開發(fā)的戰(zhàn)車。新技術(shù)的推出,無不朝著易用性方向發(fā)展,越來越多的初學(xué)者,經(jīng)過簡單的培訓(xùn),同樣可以編寫出有板有眼的、讓Java高手挑不出大毛病的Java程序——Creator下JSF應(yīng)用的開發(fā)就是一個明證。種種跡象表明,NetBeans和Creator已經(jīng)開始出現(xiàn)某種程度的重疊,Creator能做的,NetBeans也能做到,Sun漸漸陷入為同一個市場維護兩條功能相似的產(chǎn)品線的尷尬境地。作為一個商業(yè)公司,這顯然不符合經(jīng)濟原則,資本對利潤的追求,股東對紅利的期待,或許會迫使Sun痛下斷其一臂的決心。
2. Sun與NetBeans姻緣契合
NetBeans是作為一個教學(xué)項目于一九九六年啟動的,當(dāng)初的名稱并非NetBeans,而是叫做Xelfi。老程序員們一定不會忘記一九九六年,那時有個譽滿全球的IDE,那就是Borland公司的Delphi。很明顯Sun是受到了Delphi成功的啟示,Xelfi項目的目標(biāo)正是開發(fā)一個類似于Delphi的Java IDE,而且,為了證明Java的無所不能,這個IDE本身的開發(fā)語言毫無懸念地選擇了Java語言。很快,Xelfi的第一個預(yù)覽版本在一九九七年發(fā)布,雖然是個不成熟的產(chǎn)品,卻給當(dāng)時的Java IDE領(lǐng)域帶來一股清新的空氣。要知道,那時還是字符界面IDE的王國,尤其是對Java語言來說,Xelfi是第一個圖形化的Java IDE,其意義重大而深遠(yuǎn)。
參加Xelfi項目的那批學(xué)生是幸運的,也是敏銳的,他們意識到Xelfi的商業(yè)價值,于是在畢業(yè)后,他們決定將Xelfi進行到底。找朋友、托關(guān)系,他們或求或借,終于弄到Web空間,一家以Xelfi為核心的公司成立了。Xelfi是一個令人非常感興趣的項目,幾乎所有參加過Xelfi的學(xué)生都參與到了NetBeans中,直到今天,在NetBeans的郵件列表中,仍然可以看到他們的名字。
要使Xelfi運作起來,必須將其作為一項商業(yè)活動來進行。來自企業(yè)家Roman Stanek的投資,將Xelfi推上了商業(yè)化的軌道。有趣的是,Xelfi最初的商業(yè)目標(biāo)是開發(fā)具有網(wǎng)絡(luò)功能的JavaBeans組件。Xelfi的架構(gòu)設(shè)計者Jarda Tulach給這種組件命名為NetBeans,IDE的目標(biāo)就是協(xié)助開發(fā)NetBeans——這就是NetBeans這個名字的來龍去脈。后來,Sun的EJB標(biāo)準(zhǔn)發(fā)布,具有網(wǎng)絡(luò)功能的JavaBeans成為現(xiàn)實,用Xelfi來開發(fā)具有網(wǎng)絡(luò)功能的JavaBeans已是多余。與Sun去競爭顯然是不理智的,因此,Xelfi決定接受EJB規(guī)范,不過NetBeans這個名稱被保留了下來。
一九九九年春,NetBeans DeveloperX2發(fā)布,支持Swing。不過,這時的NetBeans一直受到性能問題的困擾,這主要是因為Java平臺本身的性能不高。直到一九九九年秋,當(dāng)Sun發(fā)布JDK1.3,大幅優(yōu)化了Java平臺的效率后,NetBeans DeveloperX2才成為Java IDE的一個可以考慮的選擇。這年的夏天,NetBeans的開發(fā)小組對NetBeans DeveloperX2的結(jié)構(gòu)進行了重新規(guī)劃,這個更模塊化的NetBeans結(jié)構(gòu),成為此后NetBeans發(fā)展的基礎(chǔ)。
也許,一九九九年對于NetBeans來說,最重要的事件莫過于Sun的介入了。當(dāng)NetBeans的開發(fā)小組努力工作的時候,Sun正在為市面上缺少好用的Java IDE而發(fā)愁,因此,NetBeans引起了Sun的注意。作為Java的發(fā)明者,Sun的一舉一動備受矚目,當(dāng)Sun把目光投向NetBeans,開發(fā)小組有種夢想成真的感覺。成為Java發(fā)明者的旗艦開發(fā)工具,多少公司為此奮斗多年也未能如愿,NetBeans的不懈努力終于迎來了豐厚回報。是年秋天,一個收獲得季節(jié),當(dāng)NetBeans的下一代產(chǎn)品投入beta測試時,NetBeans與Sun的合作協(xié)議簽訂了。