小小的天 有大大的梦想  
本文是对世界级黑客顶尖大师:Eric Raymond的一篇访谈录。Eric Raymond 是开放源码运动的灵魂人物,他的贡献不仅表现在他是最早的自由软件基金会的撰稿人之一,而更多的表现在他的思想在开源软件运动的关键时刻多次影响了这个运动的进程。  

在看了他写的经典著作《大教堂与集市》以及一些人对他的介绍后,我这样理解Eric——他的目标是希望软件的质量越来越好,而对于他实现这一目标可以有两种方式:一是当黑客,使用黑客手段发现程序中的错误,督促软件的修正、升级,这是以个人的力量能做到的;二是Open Source,这是Eric一直积极倡导、推广的领域,因为它可以把更大更好得资源放在解决问题上。Eric敏感的觉察到LinuxOpen Source最好的范例和推广Open Source最有力的武器。EricLinux的开发风格中总结出了自由软件高效开发的规则,并将之整理成文,这就是我们见到的《大教堂与集市》一文。 

我想Eric的过人之处,不在于他的高深的技术水平,而在于他在观念推广上做的卓有成效且影响深远的工作。正如他自己所形容的:他是一个类似火把、医生、宣传员、大使、福音主义者一类的人物。他总是在最需要的时候站在屋顶大喊,和记者总裁们打成一片,带动新闻界向世人发出这样的讯息:这儿发生着一场革命。 

《大教堂与集市》一文解释了集市式设计风格的运作方式,和成功原因,明确了一些自由软件高效开发的格言,为开放源码运动指明了方向。个人认为这些格言更趋近于经验的总结,精辟的阐述了一些程序员在开发时经常遇到的问题,以及解决问题时应采用的原则。请注意它的精彩之处是原则而不是策略或方法,他教给大家的是面对问题的态度,他将程序员们有印象,但没有重视的东西归纳在一起加以形象而透彻的阐述。因此在阅读此文时很容易产生认同感,惊叹于作者的洞察力。在此列举几点,本人感到叹服的言论。第二点:“好程序员知道该写什么,伟大的程序员知道该重写(和重用)什么”,Eric写到“伟大程序员的一个重要特点是建设性的懒惰”!第三点:“计划好抛弃,无论如何,你会的”。之前我总是懊丧的面对抛弃,至此才理解抛弃的意义。第九点:“聪明的数据结构和笨拙的代码要比相反的搭配工作的更好”。第十二点:“最重要和最有创新的解决方案常常来自于你认识到你对问题的概念是错误的”。第十三点:“最好的设计不是再也没有什么东西可以添加了,而是再也没有什么东西可以去掉”。 

以上是我对Eric的一些认识,言归正传,本文是由《Linux magazine》的自由撰稿人Robert McMillan笔录的一篇访谈录,发表在IBM官方DeveloperWorks网站的Linux专栏内。本文主要谈论了Eric的新书《Unix编程的艺术》,开放源码革命的现状,以及他最近所作的一些工作。以下是我对本论文的一些想法,可能很多是错误甚至荒谬的,只是写下来,探讨一下。 

Eric希望将《Unix编程的艺术》写成一本关于哲学、思想框架、Unix程序员编写时不成文惯例的书。对于一个在Unix环境中浸泡20多年的程序员,必然有着丰富的编程经验,编程时的得失,独特的编写的原则希望和大家分享,既是多年来工作的总结,也是自身价值的体现。而这些经验对于大众来说是最有价值的,它可以指导大家避开障碍,选择捷径,可以在短时间内提高读者的编程水平。这种类型的书较详细解释具体问题解决方案的书更有影响力,因此受到大众的普遍欢迎,如C++编程书籍的经典作品《Effective C++——改善程序技术与设计思维的50个有效做法》。从某种程度上说,《大教堂与集市》一文也是这种风格的写作。 

Eric期待着Linux成为更主流的操作系统,但对于如何实现这个愿望,Eric似乎还很不确定,他在书中解释了为什么Unix历史上曾对IDE非常敌视,但他并没有指出Lnix当前应发展的方向。他认为这2件事情都可能发生:Linux 影响程序员更多并变化掉IDE的流行,或者流行的Linux IDE一直发展并把Linux带进主流(Eric似乎更偏向于前者)。他甚至说:他不认为Unix思想在它还活着时接管世界是必须的,这是否意味着Eric本人对Linux成为主流操作系统的前景也并不十分乐观。个人认为Linux仍然存在着对IDE的敌视,可能鄙视的成分更多一点。Linux fans 不屑于使用IDE,可能对他们来说IDE太业余了,过于傻瓜的开发环境束缚了他们的手脚,使他们不能对自己的东西有完全的控制,这是他们不愿意看到的。这2件事情似乎都很难达到,IDE可能永远都是初级程序员的钟爱,而Linux的开发者可能并不乐于开发IDE2者有没有结合点呢?如果有商业的进入,由大型软件公司来开发IDE是否能够得到满意的结果?如果Linux只能成为高雅精巧的工艺品,它注定不能走入寻常百姓家,如果他想成为主流,它必须屈尊迎合大众的口味。 

Eric认为Unix黑客在设计界面方面并没有走的很远,并不是他们偷懒或者没有掌握技术,而是不懂得怎样才是好的用户界面策略,怎样倾听用户的意见。这样的解释让我感到困惑。他是否在说他们没有做并不是不想做,或者不会做,只是还不清楚应该做成什么样子,不知道用户需要什么样的东西。如果是这样,为什么不试试呢?《大教堂与集市》第三点: “计划好抛弃,无论如何,你会的”,如果不知道什么是好的,为什么不先试图做个好的,再改进。如果Unix黑客决心在这方面有所作为,这么多年来不应该只走了这么点路。其中是否还有一个原因Eric没有提到,那就是Unix黑客们于此根本就没有兴趣。对于他们来说人机交互不存在任何问题,他们不需要人性化的界面,现有的Unix对他们来说足够了,他们关心的是体系、结构、效率、安全,这些方面更有挑战性和成就感。 

在谈论到CML2内核配置的问题时,Eric认为Linux的内核列表成员有私心,以至于他部分推翻了之前的言论,认为开放源代码团体将会是世上最大的赢家,但不是当代,因为Linux放弃了他的领导地位,违背了他的承诺,而且在内核管理名单上有恐龙(把他吃了?)。这番话多少听起来有些私人恩怨在里面,毕竟自己一生中最好的工作,没有得到最关键的人的认可,而不能体现价值,总会有些抱怨。事实是否真的如此呢,恐怕光凭Eric的一面之辞很难断定。Linux内核列表成员作为一个团体,做出这样的决定,必然是有他的考虑的,这些考虑究竟是什么?Eric提供了一个,那就是有些人不赞成让普通人都可以配置内核的想法,而是希望内核配置象魔法一样,不被一般人知道。真是这样吗?首先:一个智能化的配置——基于惯例的专家系统,听起来更象是对内核配置功能的部分封装,是基于内核配置更上一层的应用,那它应该是掩盖了更多的本质,因为很多工作它很智能的替用户做掉了,用户并不知道它做了些什么,除非你通读所有代码,当然这些代码是公开的,但是这些代码不会比Linux源码更具有说服性。既然整个Linux源码都是公开的,那关于内核配置部分源码肯定也是公开的,以此攻击Linux内核列表成员有意隐藏内核配置的秘密,似乎证据不足。

其次:Open Source的概念并不等同于Free SoftwareSource是免费的,但Source的解释不是免费的。Linux并没有义务培训大家都会配置内核,可能Linux内核列表成员认为只有理解它的人才有资格使用它。诚然,Eric的系统可以让普通人接近内核的配置,可能你有很多东西不懂,但至少你可以让他跑起来,用户可以得到正确的配置结果,但对于内核配置的机制,用户又了解多少?因此,Linux内核列表成员拒绝Eric的系统,不能简单的他说违背了Open Source的原则。 

       总的来说,Eric通过这篇访谈录发布了自己的一些观念,传递了一些信息如Eric正在准备一本新书,谈了很多问题的看法,Eric目前生活的现状,还发了一丁点儿牢骚。阅读本文和一些相关文档,使我对开放源代码运动有了进一步的认识,对Linux发展的现状和将来做了一些思考,并且从一些方面了解了Eric——一个顶尖黑客的思想。

 

 参考资料

《大教堂和集市》 Eric Raymond HansB

《顶尖黑客的故事——Eric Raymond小传》李莫让

《抛弃“free software”,采用“open source”》Andrew Leonard Waterbird
posted on 2005-08-02 15:34  蓝熊嘟嘟  阅读(431)  评论(0编辑  收藏  举报