条件
开源社区开发的工具巩固了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平台的大大加强,也可能最终伤害它。