近年来,一种新的思潮在国际上受到越来越多的关注,已经取得丰硕成果,而且将对整个软件产业格局产生重大深远影响,这就是所谓开放源码思想。
开放源码的基本思想很简单,最初由于计算机硬件造价昂贵,许多公司认为计算机软件不值钱,将其仅看作是整个计算机的附属产品。因此,当时网络上的程序员可以任意阅读、重新分布和修改软件的源码,也正因为此才使得软件业得以飞速的发展。
然而,随着计算机硬件成本的不断下降,软件在整个计算机系统的成本中占有越来越高的比例,如何提高软件开发生产率、降低成本、提高质量是整个计算机软件行业的重大课题。按照传统封闭的开发模式,只有很少一部分程序员能够看到源代码,其他任何人只能使用不透明的二进制软件,这使得程序源码中的大量潜在错误难以被及时发现和消除,造成巨大的维护费用。
开放源码主要目标就是提高软件质量,其方法就是通过开放源代码以获得广泛的对等评审及用户测试效应。与传统的封闭开发模式相对,传统模式采取严密组织的开发队伍(如同构筑大教堂的组织模式),开放源码则是由分散的发烧友通过Internet组成的开发队伍进行组织(如同市集的组织模式),这就是开放源码社区领袖Eric Raymond在其著名的《大教堂与市集》一文中提出的论点,Linux的开发就是“市集模式”的成功典范,也从实践上说明“市集模式”能够开发出可用性优于“大教堂模式”的软件。
然而,“市集模式”也并非万能,Eric Raymond指出了市集模式成功运用的先决条件,包括包括开放源码项目工程领导人的资格问题和在把项目公开和开始建造一个协作开发人员的社团的时候代码的状态。可以认为,不能以一个市集模式从头开发一个软件,可以通过市集模式进行测试、调试和改进,但是以市集模式从头开始一个项目将是非常困难的,初期的开发人员的社团应该有一个可以运行和测试的东西来玩,尽管它可以很粗糙、很笨拙、不完整和缺少文档,但不能忽略的东西是要吸引哪些人卷入一个整洁的项目。同时,“市集模式”的成功依赖Internet和控制版本进化的领导者(例如Richard Stallman,Linus Torvalds)。作为项目领导者而言,能够提出卓越的原始设计思想不是最关键的,最关键的是要能把从他人那里得到的好的设计重新组织起来,同时必须有良好的人际和交流能力,必须能够吸引他人共同建造一个开发社团。
与开放源码紧密相关的是所谓自由软件运动,后者的主要目标是使得开发的软件是Free(是自由,freedom,不是免费的意思)的,它们之间最简单的区别是各自的优先权不同,在此不对二者区别进行更深入的哲学讨论。在开放源码/自由软件思想下已经积累了相当一批财富,包括操作系统级、平台软件级、甚至应用级的源程序已经被放在网站上,供软件爱好者自由使用。尽管目前软件业的主要商业模式是以出售拷贝为基本商业基点的,但这种商用软件的思路目前正逐渐被开放源码、以服务和培训为商业获取利润的思想所取代。而且,开放源码软件可以把很多人的智力集聚到一起,尤其既有利于基础软件教育事业,又可以加快高质量的共性软件发展。因此,开放源码思想已经受到来自政府、企业、科研教育机构的高度关注,随着大量人力物力的不断投入,开放源码软件正在逐步走向工业化。
但是,开放源码也带来了一些新的问题,由于完全本着自愿的原则,任何人都可以自由参与开源软件的开发,也可以将自己编制的软件放到网上让别人共享,因而软件版本如何管理、质量如何保证、软件错误如何跟踪和修正等都摆在人们的面前。同时,开放源码的测试、整理与推广也是一个比较重要的任务。可以认为,将开放源码思想与传统的软件工程进行有机结合将对未来软件业的发展产生深远影响,也将为软件质量提高工作探索新的途径。
|
相关推荐
Java开放源码编程
自由软件与开放源码运动文集自由软件与开放源码运动文集自由软件与开放源码运动文集
源码开放的嵌入式系统软件分析与实践 PDF
这个是我一年前写的一个语音聊天软件,后来因为个人原因,一直没有继续开发,现在想把源码开放出来,希望更多的人参与开发,将其发展成一个开放源码共享软件,有意者请与我联系wizard78@21cn.com
我自己编写的企业站开放源码,里面有搜索,天气,地图,等新功能。很好用。
源码开放的嵌入式系统软件分析与实践:基于SkyEye和ARM开发平台,电子书
源码开放的嵌入式系统软件分析与实践:基于SkyEye和ARM开发平台,电子书
敏捷软件架构、开发方法与开放源码最佳实践 敏捷软件架构、开发方法与开放源码最佳实践
读书软件源码 非常不错的读书软件源码。 读书软件源码
关于《java开放源码编程》此书介绍了如何通过使用开放源码工具来构建一个现实的应用,以提高开发效率,降低企业开发费用。 本书共分三个部分,使基本概念、使用工具和开发应用三个过程贯穿于读者的学习当中。特别是...
Inkscape是一个开放源码的矢量绘图软件,而且功能也十分强大,除了基本的点、线、面、圆形、矩形、曲线之外,也可以做到三维颜色等等高级功能,Inkscape预设的图档格式为SVG,但也可以输出成Posts cript的EPS、PS...
软件更新.e源码。易语言软件更新源码
gnss-sdr, GNSS SDR,开放源码GNSS软件接收机 欢迎使用全球导航卫星系统的sdr !有关这里开源GNSS软件定义接收器的更多信息,请访问 gnss-sdr.org 。如果你对 gnss-sdr有疑问,请订阅邮件列表,并将你的问题发布到...
Linux、开放源码软件与公共政策.pdf
Struts,MVC 的一种开放源码实现.doc
很多的组态软件源码合集,当然不是全部源码,只是主体框架,需要自己填写开发内容。
线程池开放源码 linux C线程池开放源码封装