成功的必要条件:开源思想推动创新
人们经常说开源没有创新,而是模仿。这肯定是专有软件行业希望你相信的。看一看目前企业中使用的一些最著名的开源项目中的活动,让你不由得不同意。
例如,尽管开源数据库令人难以置信地广泛用于各类关键任务应用,但不管是MySQL还是PostgreSQL,实际上没有做任何IBM、Microsoft、Oracle和Sybase多年来没做过的事情。同样,OpenOffice.org生产力套件是一个给人留下深刻印象的社区驱动的开发的例子,但它惟一的真正目的是创建免费的、基于标准的Microsoft Office的克隆。甚至Linux自己也是作为免费软件改写Unix的尝试。
但是,所有这些都不能否定开源开辟了一条属于自己的新路而非只是跟在别人后面的事实。Apache Web服务器就是最好的例子。Apache自1995年诞生国家超级计算应用中心的httpd后,就一直是用户的首选Web服务器。据网站与服务器监测机构Netcraft说,目前62%的Internet网站使用Apache,而使用Microsoft IIS(Internet信息服务器)的网站只有31%。
然而正如Microsoft的Internet Explorer所证明的,流行程度并不是惟一衡量性能的指标。Apache常常是安装在大多数Linux服务器上的缺省Web服务器,而它的成功并不只是由于人们熟悉它或缺少竞争对手。更确切地说,它具有稳定性、高性能、一流的安全纪录以及使它具有比商用竞争对手更多功能的各种特性与扩展程序。Apache实际上开辟了Web服务器软件市场并处于领先地位。5年后,IIS无疑将以这种或那种形式存在于市场上,但Apache仍将是领先产品,进一步拓展Web服务器的功能。
这类协作创新的例子在IT领域中比比皆是。在软件业中,无数的开发商、个人和公司在试验开源方式。理由之一是因为社区驱动的开发使软件产品能够有机地发展。正如Eric S. Raymond在其开创性的著作《大教堂与集市》中所说的:“每一个软件杰作都开始于满足某个开发人员的个人需要。”当一群开发员以开源方式协作时,每一位开发员都有着独特的个人需要,其结果是软件不断扩展,填补专有产品没有涉及的这些功能领域。
开源赋予Java生命
开源社区开发的工具巩固了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虚拟机。
[解决办法]
谢谢指点,学习中,
[解决办法]
顶
[解决办法]
帮顶
[解决办法]
up