China Open source community
站内导航:
站内排行前50热点文章

精华文章  GDB调试精粹及使用实例
普通文章  STL中map用法详解
精华文章  负载均衡软件比较(Hapr...
普通文章  头文件的重复引用
普通文章  递归函数的调用过程
普通文章  TCP三次握手/四次挥手详解
普通文章  epoll的实现原理
普通文章  贪心策略的理论基础——...
普通文章  BMH算法原理与实现(模...
普通文章  http请求的详细过程
普通文章  排列组合与回溯算法
普通文章  GNU LD用法
普通文章  DP动态规划
普通文章  Linux socket编程之套接字
普通文章  Linux内核中的红黑树
精华文章  linux下使用minicom的几...
精华文章  Android线程模型
普通文章  Java开源Html解析类库
精华文章  enum类型的本质
普通文章  memcached server LRU ...
普通文章  android核心模块及相关...
普通文章  linux设置环境变量的方法
普通文章  linux源代码包(.tar.g...
普通文章  L.A.M.P配置过程
普通文章  gcc编译过程概述
普通文章  在ubuntu9.10下安装QT4...
普通文章  应用程序二进制接口---ABI
普通文章  python的memcache和jso...
普通文章  Java多线程实现简单实例
普通文章  C/C++程序员常见面试题...
普通文章  linux内核编译问题
普通文章  Python程序员常用的IDE...
普通文章  优化C语言代码(程序员必...
普通文章  brk和sbrk详述
普通文章  Unix操作系统的历史演变
普通文章  发行版发布:CentOS 5.4
普通文章  模版函数指针,C++委托...
普通文章  在windows中构建gtk开发...
普通文章  关于Qvariant类--万能的...
普通文章  Debian sudo 设置
普通文章  busybox1.15.x 交叉编译
普通文章  i++循环与i--循环的执行...
普通文章  python非贪婪,多行匹配...
普通文章  cscope使用简介
普通文章  关于僵死进程zombie
普通文章  函数指针传递和全局指针...
普通文章  递归思想的妙用
普通文章  Android Porting Exper...
普通文章  判断链表是否存在环并找...
普通文章  [翻译]Django初窥

 
 
 
当前位置: 首页 >> 开源文章 >> 开源软件的斗士——Eric Steven Raymond
 
 

开源软件的斗士——Eric Steven Raymond

作者:      来源:     发表时间:2006-03-08     浏览次数:      字号:    

Eric Steven Raymond 1957年出生于美国马萨诸塞州的波士顿,从小就跟随父母在世界各地东奔西走。他曾在地球上三块大陆居住过,在13岁之前就已经忘掉了两种语言。1971年,他回到美国宾夕法尼亚州。1976年,他开始接触“黑客”(在本文中,黑客指那些酷爱计算机编程的人)文化,1982年完成了他的第一个自由软件项目。1985年,他辞去了最后一份工作。此后,就开始集中精力于编程、写书及一些技术评论等工作上,并再也没有重新为金钱而工作。



图1 开源软件的斗士——Eric Steven Raymond


    Raymond是一个彻头彻尾的自由主义者。他对科幻小说十分感兴趣,是一名出色的业余音乐家,还是空手道黑带选手。他坚持美国宪法修正案第二条中关于公民持枪械的自由,并因此遭到很多人的反对,但他自己却十分喜欢和人争辩该议题。

与Linux最初的亲密接触


    Eric Steven Raymond最初的编程经验来自于原始的ARPANet。那时的他涉猎甚广,甚至短期接触过ITS机器。1984年自由软件基金会成立以前,他已经在写自由软件,并投递到Usenet。这样,他顺理成章地成为了自由软件基金会最早的撰稿人之一。
    Raymond精通C、Lisp、Pascal、APL、Fortran及BASIC语言,曾在Apple II、Macintosh、Sun、IBM PC、VAX II-75、DEC-10、PDP-8、Z80等多种系统上开发过软件。他曾经为Emacs编辑器的发展作过贡献,管理着30多个开源软件,以及10多个主要的FAQ。他是Intercal编程语言的主要创作者之一。Intercal是一种鲜为人知的程序设计语言。有人评价说,自认为是“超级黑客”的人可以试试用这个语言写程序。之后也许就会变得谦虚,或者更加骄傲。
    Linux诞生后,很多人感到难以想象一个世界级的操作系统竟是靠用Internet连接起来,由散布在全球的几千个开发人员用业余时间来创造的。这些感到疑惑的人当中也包括Eric Steven Raymond。
    当时,Raymond相信某些重要、复杂的事情需要集中化的、严密的方法,相信多数重要软件(操作系统和像Emacs一样的真正大型的工具)需要一群与世隔绝的奇才的细心工作。而Linux团体却有各种不同的方法(Linux归档站点接受任何人的建议和作品),显得有点杂乱无章。但事实是一个一致而稳定的系统就像奇迹一般从这个看似杂乱无章的设计风格中产生了。Raymond开始努力尝试着理解为什么Linux世界不仅没有在一片混乱中分崩离析,反而以人们不可想象的速度变得越来越强大。1993年,Raymond试图在家中收发邮件时遇到了困难,这次他没有还像从前那样立即投入疯狂的工作中,编出一个新的POP3客户与现存的那些竞争,而是从一开始就效法Linus的做法:Linus并不是从头开始写Linux的。Raymond首先做的是寻找一个合适的POP雏形,然后对它进行重写。他首先选择了Fetchpop,后来又改用Popclient,并继承了Popclient的用户基础。然后,他像Linus那样把用户当作协作开发者,把做好的程序早发布、常发布、听取用户的建议。最后,在Raymond认为条件成熟时,他正式将Popclient更名为Fetchmail。
    Fetchmail是一款免费、全功能、稳定性好、文档说明齐备的远程邮件发送和接收软件。根据目前用户的名称,Fetchmail可以将Internet上任意一台邮件服务器POP3账号处的电子邮件下载到本地,存放在用户的目录中。这样,用户只要在自己的终端上就可以阅读邮件。Fetchmail主要被应用在临时接通的TCP/IP 线路 (例如SLIP或 PPP连线)上,它支持当今所有的邮件协议,包括POP2、POP3、RPOP、APOP和KPOP等,甚至IPv6和IPSEC (即IP安全协议),它可以被用来作为整个DNS 网域中,POP/IMAP协议转换至SMTP协议的网关。 通过它所寄出的信件,可以被一般的电子邮件使用者代理程序,例如mutt、elm或BSD Mail 来读取。有了它之后,MTA的过滤、转发、别名的运作,就如同处理一般信件一样容易。
    Fetchmail的强大的功能使他获得了成功。Raymond感到Linux的这种开发风格确实能工作,并且工作得很好。他为此而感到欣喜不已,同时也想让更多的人来分享他的惊喜的发现。

教堂与集市


    Eric Steven Raymond还是一名十分出色的作家。他的著作很多,包括《新黑客字典》、《提问的智慧》、《Unix编程艺术》等。在自由软件启蒙阶段,Raymond的核心著作被业界称为“五部曲”:《黑客道简史》、《大教堂和集市》、《如何成为一名黑客》、《开拓智域》、《魔法大锅炉》。在这些著作中,最著名的当然还是《大教堂和集市》。
    Fetchmail的成功使Eric Raymond看到了Linux开发风格的巨大魅力,他想把自己使用这种风格开发程序所体会到的心得告诉更多的人,于是他写了《大教堂和集市》,并于 1997年在Linux大会上发表。在《大教堂和集市》中, Raymond用开发Fetchmail的过程,详细、生动地描述了这次艰难而又有意义的尝试。在该文中,他第一次以大教堂模式和开放集市模式的比喻,形象、生动地将商业封闭软件和自由软件区分开来——“一种是封闭的、垂直的、集中式的开发模式,反映一种由权利关系所预先控制的极权制度;而另一种则是并行的、点对点的、动态的开发模式。”
      Raymond不仅用自己的开发实例向人们详细地描述了这种集市开发风格的全过程,说明了这种模式可以借助Internet获得大量的并行开发、并行纠错、同行验证,从而使软件获得传统“封闭模式”所难以获得的稳定性和健壮性,而且凭借自己坚实的基础和丰富的经验,把这种集市开发风格提到了理论上的高度。他在文中提出了著名的Linus定律,即“如果有足够多的眼睛,所有的错误都是浅显的”;指出了19条用来明确自由软件高效开发的格言,基本上涵盖了从设计、到编码、直至测试的全部软件工程的核心内容;并给出了集市风格的必要的先决条件和自由软件的社会学语境。他在文中论证了自由软件不仅仅是一种乌托邦的理想,而是在开发模式上真正代表着“先进生产力”,代表着历史发展趋势的必然。

自由与开源


    《大教堂和集市》发表后引起了强烈的反响。1998年1月22日,Netscape宣布将其浏览器的源代码在Internet上公布。Netscape的执行总裁Jim Barksdale将他这么做的原因归结于受到Eric Raymond的《大教堂和集市》的影响。这对Raymond是非常重要的,因为它让外界听到了他们这些黑客的声音。
    在和Netscape会谈之后,Raymond在硅谷召集了一些黑客,讨论了如何利用这次突破事件。大家意识到,是推倒过去由于“自由软件”引起的敌视态度,并推销那曾激励Netscape的、严格建立在注重实效和商业基础的想法的时候了。经过头脑风暴式的讨论后,1998年2月3日,会议提出了“开放源代码” 这一术语,并得到了与会人士的广泛认同。之后,Raymond和Bruce Perens创立了开放源代码促进会(Open Source Initiative),打起了开放源代码软件的大旗。
    开放源代码软件被定义为其源码可以被公众使用的软件,并且此软件的使用、修改和分发也不受许可证的限制。开放源码软件通常是有copyright的,它的许可证可能包含这样一些限制:着意的保护它的开放源码状态,著者身份的公告,或者开发的控制。“开放源码”正在被公众利益软件组织注册为认证标记,这也是创立正式的开放源码定义的一种手段。
    开放源代码软件的提出是不是意味着它将从此与自由软件划清界限呢?Raymond在《开放源代码的FAQ》中指出:“开放源代码软件是自由软件的营销手段。它是对自由软件的支持,更倾向于注重实际效果而不是意识形态方面的大肆宣扬。成功的主体并没有改变,失败的态度和象征主义却变了。”
事实也正是如此。1998年前,虽然Linux及Apache服务器已得到了很多技术人员的信任,并已被应用在很多重要的工作中,但仍有为数不少的人始終对自由软件抱有偏见。因为他们无法理解Free的意思究竟是“自由”还是“免费”。在这些人的眼中,二者似乎是一个意思,而且他们认为免费软件的品质很难得到保证。
    “开放源代码”的提出改变了这种尴尬局面,那些一听到“Free”就退避三舍的公司开始对这个新名字产生了兴趣。1998年5月7日,Corel公司宣布了它的基于Linux的Netwinder网络计算机。1998年6月22日,IBM宣布它将出售并支持Apache,并作为它的WebSphere组件的一部分。商业出版界欢呼这是开放源码软件的突破。1998年7月17日,Oracle和Informix宣布他们将把数据库移植到Linux上。这实际上已使开源软件运动脱离开了单纯的黑客行为,开源运动组织开始有了自己的市场战略。此后,许多IT业巨头,包括CA、IBM、Interbase、Sybase、HP和Sun,纷纷宣布了他们支持开源软件的计划。
目前,已有几百种成熟的开源产品被广泛使用,其中比较著名的有BSD Unix、Linux、Perl语言、GCC、X- Window系统等。
    作为倡导者,Eric Steven Raymond除了继续写作来宣传“开放源代码”外,还担任了这一运动对媒体、商界及主流文化的形象大使,并四处发表演说。他曾经到过六大洲的15个国家进行演讲宣传,他的话经常被主流媒体所引用。
    Eric Steven Raymond正如他自己所形容的,是一个类似火把、医生、宣传员、大使、福音主义者一类的人物。但本质上,他更是一位时刻停留在角斗场中央的“斗士”。正是《大教堂与集市》的发表与“开放源代码”的提出,把自由软件带入了华尔街,并从此开始发扬光大。

编辑 webmaster

 
 
 
评论
 
 
发表
 
姓名: QQ:
性别: MSN:
E-mail: 主页:
评分: 1 2 3 4 5
评论内容:
验证码:
  
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  •  
    中国源码网 - www.YuanMa.org - 中国 开放源代码+编程 社区