條件
開源社區開發的工具鞏固了Java在開發人員市場中的領先地位。
毫無疑問,開源使Java得到了巨大的實惠。Java語言和平台賴以發展的JCP(Java社區進程)似乎在以蝸牛的速度前進。委員會的審查和批準是個緩慢且需深思熟慮的過程,Java畢竟是領先公司專屬應用程式平台,因此它應當緩慢演化,哪怕需求十分緊迫。為解決一些問題而造成另一些問題從來不是一種好的解決辦法。
然而,與其相對的開源社區卻一直在飛速前進,推出大量的重要創新。目前,企業Java基本工具全部是開源產品:Ant(用於開發應用程式)、Hibernate(用於將資料儲存在硬碟上)、JUnit(用於裝置測試)和Maven(用於繼續的整合),更不用說得到高度重視的Eclipse和NetBeans開發環境和PMD原始碼驗證程式了。
Java開發人員還從幾種開源架構中受益,如JSF(JavaServer Faces)、Spring和Struts。再有就是眾多的容器(container):Apache Tomcat、Geronimo、Jetty、Jonas和Resin,更不要說很多用於嵌入式應用的小容器了。開源是Java世界想像力和生產力的巨大源泉。
在這兩股河流——JCP與開源——之間站著3大企業Java技術供應商:BEA、IBM和Sun Microsystems。他們都是一隻腳站在開源工具河流中,另一隻腳站在非開源工具河流中。雖然很多IBM工具是專有的,但它一直是Java和開源社區的主要貢獻者。BEA最近非常積極地實施其“混合”戰略,積極支援開源產品。此外,BEA還向多個開源項目捐獻代碼和程式。
Sun有點特立獨行。狂熱的開源支援者一直逼迫Sun開放Java原始碼,希望加速這種平台中的創新,但Sun卻行動緩慢。這樣做是有一定道理的:開放Java代碼可能會將Java分裂為不同的版本,從而減少Java引以為榮的可移植性。但開源社區一直尖銳地攻擊Sun的這種立場。
鑒於Sun對開源的長期貢獻,這就將它置於一種奇怪的境地。Sun仍是惟一一家開放其作業系統和全部生產力套件原始碼的公司。實際上,它開放了很多Java技術的原始碼。因此,Sun在8月份舉行的LinuxWorld上透露——也許有點勉強——除推出一個供開發人員跟蹤其進展的社區網站外,它打算開放Java庫和Java虛擬機器。
從長期看,向開源發展的這股強大的力量能使Java受益嗎?除了其緩慢的開發進展外,Java的一部分成功歸功於Sun所起到的管家作用。通過開放Java原始碼剝奪Sun的這一角色可能導致Java平台的大大加強,也可能最終傷害它。