本文是由《Linux magazine》的自由撰稿人Robert McMillan笔录的一篇访谈录,发表在IBM官方DeveloperWorks网站的Linux专栏内。由于原文是pdf格式的,这里给出的是我的翻译稿。
开放源代码拥护者Eric Raymond 最近在电脑前工作的时间比起在人群中露面的时间来更长。他说部分上由于他的那太令人精疲力竭旅程表,部分上由于24*7开放源代码对拥护者的要求的改变,他已经从公共演讲方面隐退了。开放源代码革命是“基本上按预定的方向发展”,他说;企业已经信奉Linux,目前极少有人还不确信开放源代码方式可以产生最优秀的软件。
因此,Raymond 花了一些时间在写作和编写黑客代码上。在写作方面,他最近登出了《Unix编程艺术》——一本他近期写的书,将会在2003年8月出版——的框架。 至于代码方面,在两年的努力之后,为了得到让Linux内核开发者认可的命运坎坷的Linux内核框架(“这是我一生中最好的作品,但却已经被Linux内核列表成员砍掉了”,他说), 他写了一段叫做Doclifter的程序,那将明智地对 XMLDocBook 有利。他还在为DNS协作发展一个目前还未发表的编辑器结构。
我们最近和他聊了聊开放源代码革命的现状,Unix编程的艺术,以及他现在在做的事。
DW:你开始写《Uni的编程艺术》时,是从哪儿来的灵感?
Raymond: 5年前,当Erik Troan, Mike Johnson 和Red Hat的一些人写了一本叫《Linux应用发展》的书时,我就想写了。我觉得那还是一步好书,但不是我想要的书。我想要的书在介绍Linux应用编程界面和如何做好事情的低层细节方面应该少些,而在设计模型和有关为什么要在一个特殊风格下做事的高级素材要多一些。
我的有关一本好的Unix的书的观点受到了[Brian] Kernighan 和 [Rob] Pike's 的《The UNIX
Programming Environment》的影响。
dW: 你在书中的灵感是什么?
Raymond: 使得《The UNIX Programming Environment 》这本书优秀,无以匹敌的是, 他们谈的不是策略而是哲学,是关于思想框架,关于Unix程序员编写时的不成文的惯例的。我发现我想写一本这样的书。随着时间的流逝,我越来越清楚这本书是必需的,因为有许多Linux和开放源代码社区的人围着传统的片断打转而对它未有整体印象。这并不是他们的错,因为还没有人为他们写过这样的书。不在这个传统中浸泡上20年,写这样的书恐怕甚至是想都不要想的。
dW: 这是不是你特别是在UNIX社区看到的变化?关于让Linux变成更主流的操作系统的愿望,你已谈了许多;但当它发生时,你又从传统的外面争取人,而他们对编程方式一无所知。
Raymond: 对此我的回答是,不是放弃传统,而是把他们带进。 这也是我在这本书里尽力去做的。
dW: 一些人说,对于Linux 的成功,在某种程度上一个流行的Linux IDE 会是关键。你在你的书中对此做出矫正了么?
Raymond: 我想你在这本书中可以看到的一件事是为什么Unix历史上曾对IDE非常敌视。这对你的问题是一个很好的解释。IDE IDEs 对这种UNIX下的混合语风格的知识加强器来说并不合适。如果你要做的是开动C++代码,IDE是很好的;但要是你要写捆绑了C,shell,Python,Perl,可能还有几种其他的语言的系统,IDE就太强制于某一种编程了。这就是为什么UNIX的编写者曾经倾向于不喜欢IDE,因为这会大大限制你的选择。'
dW: 那么你认为是Linux 影响程序员更多并变化掉IDE的流行,还是流行的Linux IDE一直在发展并把Linux带进主流?
Raymond: 我想任何事都会发生。每件你所说的事。我们既会得到更多的抓住UNIX Zen并以此风格编程的人,也会有不这样做的人。在这个水平上,我并不认为UNIX思想在它还活着时接管世界是必须的,因为,坦白的说,这是好的软件的源头。
dW: 在你的《Unix编程艺术》的草稿中,你谈论了 Macintosh 团体,以及它是如何与UNIX团体合并的。是不是这个方案是你希望发生的?
Raymond: 我在书中没说,我也不会这么说。我说的是这两个团体在互相考虑彼此的素材资料,并开始互相学习。
dW: 有没有这种集中的明显例子?
Raymond: 我有一个。有个叫 Audacity 的音频编辑器,我把它用作书中的例子。我想对你怎样理解Macintosh 的发现力思想和界面透明度,并在不丢弃UNIX优点的条件下把它们融进UNIX环境,中是个很好的例子。
dW: 你的书还有一个影响我的地方是你谈论了UNIX设计的一些问题。你认为最紧迫的问题是什么? 那个问题在最近最可能被解决呢?
Raymond: UNIX现在最紧迫的问题,我想,不是技术问题。UNIX的设计中有瑕疵和缺口,这是黑客们要补救的;随着时间的过去,有些问题我们已经善于发现和补救。我想急需补救的一个缺口是现在2.5Linux内核的文件属性。我这些年一直研究这点,现在认为文件属性对GUI环境十分有用。基本上原因是有一类属性——如“应用在这个桌面上定位于何处”,对此你想能够把数据和应用联系起来——后者对文件属性有着正确的语义。即是,它们在用户的使用中是持久稳固的,但却不是你希望在工具栏里保留的,或通过网络输出的。并且这就是文件属性将要有的那种持续性。因此我认为这是个缺口。我想我们能够做出等同于Macintosh fork 在新的属性特点上所作的东西。
但它们是技术问题,很好解决。黑客们热切的讨论了这些问题,终于或多或少的解决了。我想最严重的问题是文化上的,UNIX黑客在设计界面方面并没有走的很远,但这并不是因为我们偷懒。我们在过去的15年里吸收了很多素材,我们引进了越来越普遍的网络,并从开发者工具箱层次采用了GUI技术;我们懂得怎样做图形化设计,怎样做类库,怎样做工具包。我们所不懂的是怎样才是好的用户界面策略,怎样倾听用户的意见。我想这是UINX传统现在所面临的最大问题。
dW: 是不是因为现在需要提倡的东西少了,你就减少了旅行和游说?
Raymond: 哦,部分原因是我累了。不过还有一点是,我想我认识到了我们基本上还是在规定的过程中。在拥护层次上,为了获胜我们所要做的是做我们正在做的,对付偶尔从暗处来的攻击。
dW: 对于人们谈论的专利诉讼和开放源代码工程的债务,你担心么?
Raymond: 这是要关心的。我们要在PR,法律及其它层次上采取措施,来计算这类事。这种问题会引起各种人(包括我)的注意和工作。
dW: 你是不是认为我们将与葡萄酒企业或桑巴舞打官司?
Raymond: 如果有的话,我也不会感到奇怪。
dW: 这是不是你目前经常担忧的问题呢?
Raymond: 我所担忧的问题很多,因此,我并没有很多时间来担忧这个问题。我心里有着各种可能,基本上一有事情发生我就有反应。 在过去我发现,我处理这些事情的方式是,明智地反应。你不会预先知道像万圣节备忘录这样的事会找上你。世上的任何思考也不会预言这样的事的。所以与其老是担心,我宁可为可能的机会做好准备,思考挑战来时如何应对。
dW: 自从90年代末你写了《大教堂和市集》,书中的很多观点已经在商界尝试过了;你甚至作为Linux价值分析董事会的一个董事参与了其中一个公司。如果你今天再写《大教堂和市集》,你会做一些改动吗?
Raymond: 唯一要改的地方是,我想,我将着重突出我在1997-98年间所说的话。当时人们都太乐观而不愿听。如果你读一下我后来记下的原稿,你就会发现我警告人们,将要出现开放源代码革命的社团结构不会有在历史上与关闭源软件公司那样的高额利润。因为我们前进的方向是软件是服务行业,而不是假冒的制造业行业;而服务行业从来没有巨大的投资和高额利润,那是制造业才有的。如果我那时就知道我现在所知道的,那么我在书中唯一要改的是,加重警告,因为在1997-98年间没人听劝。他们都被拥有新技术的兴高采烈给迷住了,所听到的只是“一个发展软件的更好更有效的途径,对消费者更有利”,而没有听到我的警告,即你不能在这个素材资料堆上支撑一个难以置信的投机风暴。
dW: 在CML2内核配置上发生了什么事?
Raymond: 很可怕。这是我一生中最好的工作,但却已经被Linux内核列表成员砍掉了。
dW: 听起来像是个十分雄心勃勃的方案。
Raymond: 是的,我的意思是我建了个智能化的配置——基本上是一个基于惯例的专家系统的雏形——来配置Linux内核,而且是在不到8000行的Python 程序内完成的。这个系统从字面上说是不可能做不合格的内核配置的,因为它可以依照约束智能化的推理。Linus已经认可它作为2.5版,而内核配置成员们却砍掉了它。它已经被完全的策略化的拆分开来了。真是可怕。
dW: 但是你告诉全世界说开放源代码团体是世上最大的赢家。
Raymond: 不是这个时代。而且对我来说这是可怕的失望。
dW: 为什么不是?
Raymond:因为Linus 放弃了他的领导地位,违背了他的承诺,而且在内核管理名单上有恐龙。 这是种非常保守,敌对的文化。
dW: 那么说如果《大教堂和市集》再加上一章的话,你将会基于你在那儿所学到的来写。教训是什么?
Raymond: 从某些方面来说开放源代码文化是可以硬化可以把一些好的工作关在外面的。这是一个长期的问题,我也不知道我们将如何解决。我还认为这种事发生的部分原因是,对于让任何人都可以配置内核这个想法,内核管理名单上有些人还是不赞成的。他们希望内核配置还是像魔法一样,不让一般人知道。

浙公网安备 33010602011771号