级别: 初级 Robert McMillan (bob@linux-mag.com), 自由作家
2003 年 3 月 26 日 Eric S. Raymond 是 The Cathedral and the Bazaar 的作者和现在十分著名的“万圣节文件(Halloween Documents)”的发表者,他谈论了他最新的项目并说明了 UNIX 开发人员为什么不喜欢 IDE。自由作家 Robert McMillan 采访了这位年长且极具智慧的开放源码拥护者。
开放源码拥护者 Eric Raymond 最近在计算机前花的时间比出现在人们面前的时间更多。他说他推掉了演讲预约,其中部分是因为旅行计划很耗费体力,而且还因为对于全天(24x7)开放源码拥护者的需要已经不象以前那样了。他说:“开放源码革命‘基本上已经在开展中’”;企业已经接受了 Linux,而且目前大部分人都已经知道开放源码方法可以创建最好的软件。
因此,Raymond 花了一些时间进行写作并花了一些时间进行编程。在写作方面,他最近发表了他的新书
The Art of Unix Programming(请参阅
参考资料以获取链接)的草稿,这本书计划在 2003 年 8 月出版。至于编程,在花了两年时间尝试编写了 Linux 内核开发人员接受的倒霉的 Linux 内核配置程序(他说:“这是我一生中最好的工作,但它被内核列表策略抢走了”)之后,他编写了一个名为 Doclifter(请参阅
参考资料以获取可获得更多信息的链接)的程序,该程序可以智能地将 troff 标记页转换成 XML DocBook。他还在合作开发用于 DNS 的目前尚未发行的配置编辑器。
最近我们与他讨论了开放源码革命的现状、UNIX 编程的艺术,并且略微谈论了他近来一直在干什么。
developerWorks:您是从哪里得到想法开始撰写
The Art of Unix Programming 的?
Raymond:那是在五年之前,那时 Erik Troan 和 Mike Johnson 与几个 Red Hat 的人合著了一本叫
Linux Application Development(请参阅
参考资料以获取链接)的书。我认为这是一本很好的书,但它并不是我想要读的书。我要读的书要较少地讲述 Linux 应用程序编程接口和如何完成工作的低层次细节,而要更多讲述设计模式和关于为什么应该以某种特别方式做事的高层次内容。
我对好的 UNIX 书籍的想法来自于 1984 年出版的[Brian]Kernighan 和[Rob]Pike 的
The UNIX Programming Environment(请参阅
参考资料以获取链接)。
dW:那本书有什么东西吸引了您?
Raymond:使
The UNIX Programming Environment 出色且至今没有其它书与之匹敌的东西是他们不仅讲述了战术策略,而且还讲述了基本原理、思想模式、UNIX 程序员正在使用但又没有真正意识到在使用的未成文的生成规则。
我发现我确实想要写关于那方面的书。随着时间的流逝,我越来越清楚这就是我们真正需要的书,因为 Linux 和开放源码社区中有许多人都与传统的方方面面打交道,但他们都没有完整的东西。这并不是他们的错,因为没有人为他们编写过这样的东西。在您开始考虑做那件事之前,您确实必须在传统中浸淫 20 年。
dW:这是您在 UNIX 社区中看到的有特殊变化的东西吗?关于使 Linux 变成一种更主流的操作系统的期望,您谈了很多,但当这发生时,您却吸引了也许并不知道这种编程方法的 Linux 传统的门外汉。
Raymond:我的答案是:不放弃传统,而是给他们带来激情。那就是我尝试在这本书中表达的。
dW:一些人说流行的 Linux IDE 有时对于 Linux 的成功是至关重要的。您认为您的书是对这种观点的纠正吗?
Raymond:我想您可以从这本书里学到的一样东西是为什么 UNIX 程序员历来对 IDE 怀有敌意。事实证明有好的理由支持这种观点。IDE 并不能很好地配合您在 UNIX 下看到的这种知识密集型、混合语言风格的编程。如果您所做的是按照长度大量生成 C++ 代码,那么 IDE 很管用。但如果您正在编写用 C、shell、Python、Perl,也许还有其它几种语言共同组成的系统,IDE 强加给您的世界观对于这种编程来说会太呆板。那就是为什么 UNIX 程序员历来不喜欢 IDE 的缘故,因为它们过多地限制您的选择。
dW:那么您认为 Linux 是更多地影响了程序员并削弱了 IDE 的流行程度,还是认为人们正在开发一种可以使 Linux 成为主流的流行的 Linux IDE?
Raymond:我想一切都会发生。您描述的一切。我们将会遇到较多的人,他们理解 UNIX Zen 并以那种风格进行编程,并且也会遇到还没有理解那种方式的人。在这一层次上,我认为只要 UNIX 思想保持其活跃性,它没有必要控制这个世界,因为,坦率地讲,我认为好的软件将出自 UNIX 思想。
dW:在您的
The Art of Unix Programming 草稿中,您谈到 Macintosh 社区以及从某种意义上,Macintosh 社区是如何与 UNIX 社区合并的。您真的在一些项目中看到过发生这些事情的吗?
Raymond:我并没有在书中说那些,我不会以那种方式提出观点。我会说这些社区正在互相研究资料,并且开始学习一些东西。
dW:那么是否有这种趋同现象的优秀例子吗?
Raymond:嗯,我有一个很好的例子。在我的书中,有一个我作为案例研究使用的音频编辑器名为 Audacity,我认为它是一个出色的例子,可以让您了解如何接受 Macintosh 的发现能力和接口透明性的思想,并将它们转移到 UNIX 环境中而不会在这个过程中丧失 UNIX 的优点。
dW:在您的书中打动我的另一件事是您讨论了一些 UNIX 设计的问题。您认为什么是最紧迫的问题?您认为近期最有可能解决什么问题?
Raymond:我认为 UNIX 目前拥有的最紧迫的问题不是技术问题。在 UNIX 设计中有技术瑕疵和问题。计算机迷社区可以解决这些问题。随着时间的过去,我们非常善于解决这些类型的问题。
我认为最近已经解决的一个问题是文件属性现在已是 2.5 Linux 内核的一部分。我在这个问题上已经来回折腾了几年,但我现在认为我理解文件属性对于 GUI 环境是极其有用的。基本上,其原因是有一类特性 — 就象“这个应用程序在这个台式机的什么位置?”之类的特性,您希望能够将该台式机的数据与那些应用程序关联 — 正好对于文件属性具有正确的语意。也就是,它们在用户会话中是持久的,但它们并不是您想要保存到 tar 文件或通过连线导出的一些东西。而那往往正是文件属性应该具有的那种持久性。因此我认为那是一个问题。我想我们将能够通过新的文件属性特性做出一些事情,这些事情与 Macintosh 资源派生做的事情等价。
但那些是技术问题。解决那些问题很容易。计算机迷对此有很大的争论,并且最终从或多或少起些作用的方法中总结出一些东西。我认为最重要的问题实际上是文化问题。UNIX 电脑爱好者对于解决如何很好地制作界面的过程还没有达到一定的水平。这并不是因为我们很懒。最近 15 年,我们学习了许多东西。我们已经学习了普及连网,并且学习了开发人员工具箱级别的 GUI。我们了解了如何制作图形,我们了解了如何制作库,我们了解了如何制作工具箱。我们还不了解的是好的用户界面策略和如何听取用户的意见。我认为,那是 UNIX 传统目前存在的最大问题。
dW:您近期很少旅行和宣传,是不是因为目前还没有重要的事情可以推广?
Raymond:嗯,部分原因只是疲劳。但另外,我想我认识到我们基本上还在进行中。从推广层次上看,我们为获得胜利必须做的是坚持我们的工作,并且对付黑暗势力的偶尔反击。
dW:人们一直在谈论开放源码项目的专利诉讼和责任。您为此而担心吗?
Raymond:这是一个问题。我们需要在专利权、法律和其它级别上采取适当的步骤来对付那种事情。这些是可以解决的问题。这些问题会占用许多人的工作和注意力,包括我自己。
dW:您认为我们会面临针对 Wine 项目或 Samba 的诉讼吗?
Raymond:我一点也不感到吃惊。
dW:您是否花了许多时间担心这些事情?
Raymond:事先担心这个问题没什么意义,所以不,我没有花许多时间来担心这个问题。我脑子里在考虑可能性,基本上是当发生某事时我所做的是反应。
我发现在过去,处理这些事情的方式是聪明地反应。您并不能预先知道象万圣节备忘录这样的东西会落在您身上。世界上所有的想法不会预知类似那样的事情。所以我不会过分担心这种事情,我只是为机会而做准备,我考虑的是当挑战来临时如何做出反应。
dW:自从您在上世纪 90 年代后期写了
Cathedral and the Bazaar之后,您在该书中谈到的许多想法已经得到了商界的检验,而且您甚至加入了其中一家公司,成为 VA Linux 董事会的一员。如果您现在写
Cathedral and the Bazaar,您会更改其中的一些内容吗?
Raymond:我想,我要更改的唯一的东西是我要强调我在 1997 - 98 年谈到的但有没有人倾听的内容,因为那时每个人都处于一种感觉良好的状态中。如果您读过我那时撰写的原稿,您就会发现我警告了所有人:由开放源码革命所产生的企业结构并不会获得封闭源码软件公司历来所享有的那种高额利润。因为在我们面对的世界里,软件是一个服务业,不是一个伪制造业,服务业永远不会象制造业那样能获得巨大投资收益和高额利润。
如果我以前知道现在所知道的东西,那么我要修改的唯一的东西是使警告更大声一点,因为在 1997 - 98 年,没有人会听进这些警告。他们都沉浸在新技术的喜悦之中,他们听到的是“开发软件的更好方法,更有效,更适合于客户。”他们并没有听到我警告他们的那部分:您不能在这种东西上面维持惊人的投机狂热。
dW:CML2 内核配置程序发生了什么事?
Raymond:很可怕。它是我一生中最好的作品,它被内核列表策略抢走了。
dW:听起来它象是一个非常有抱负的项目。
Raymond:是的,我是说我构建了一个用于配置 Linux 内核的智能配置程序 — 基本上是一个小型的基于规则的专家系统,我用少于 8000 行 Python 代码就完成了它。它是一个系统,使用它简直不可能得到一个无效内核配置,因为它会根据约束执行智能推理。我得到内核配置组的完全认可,我得到了 Linus 的批准,它将进入 2.5,但在策略上它完全崩溃了。真是可怕。
dW:但您告诉了世界,在开放源码社区中,最好的代码会获胜。
Raymond:但这次并没有。真是太令我失望了。
dW:它为什么没有成功?
Raymond:因为 Linus 放弃了他的领导职位,违背了他的承诺,在内核列表中有一些“恐龙”。这是一种非常保守、充满敌意的文化。
dW:那么如果您要在
Cathedral and the Bazaar 中再写一章您从这件事所吸取的教训,那么这个教训是什么?
Raymond:就是开放源码文化在某些方面可能会非常保守,会把好的作品关在门外。这是一个长期问题,我不知道将要如何解决。
我还认为发生这种情况的部分原因是内核列表上的人不喜欢让所有人都可以访问内核配置的想法。他们希望它继续成为一种魔法。
参考资料
关于作者
对本文的评价
|