BBS水木清华站∶精华区
发信人: yyh (阿欢&正在努力上进中......), 信区: Linux
标 题: 自由软件的斗士
发信站: BBS 水木清华站 (Tue Sep 14 20:05:16 1999)
远望资讯?《新潮电子》99年第九期
自由软件的斗士
有人说,Richard.M. Stallman是地球上编写软件代码最多的程序员。然而,St
allman的思想远比代码更为重要。名著《黑客:计算机革命的
英雄》称他为:“最后一位真正的黑客”;也有人说:“如果Richard不存在,那人类也
有必要将他创造出来。”
Richard.M. Stallman是世界上最好的程序员之一,也是一个顽固的理想主义者
。Richard.M. Stallman的名气是因为他编写出了Emacs
editor(UNIX系统下的编辑器)、gcc multi-lingual compiler(UNIX系统下的C语言
编译器)和gdb debugger(程序调试器)。
70年代,Richard.M. Stallman在美国麻省理工学院(MIT)的人工智能实验室做
有关Lisp的开发工作。他喜欢不受商业目的约束的自由交换源
代码,他非常不满软件业中越来越多的商业化倾向,不满意买来的软件不能按照自己
的意思修改。
于是,他开始同某些人想把Lisp商业化的观点作斗争。他在自己的设计中重写了每个
新的特性,并把这些设计代码公开化。两年中他不懈地为这个理
想奋斗,直到他认识到依靠他一个人的力量是不能获胜的,而且发现Lisp是一个“黑
盒子”软件(大部分源代码不公开),这影响了它的发展。他坚
信让软件的品质和可用性得到最大程度改进的最有效办法是让源代码共享。
GNU (Gnu's Not Unix')是 Richard Stallman 于 1975 年在 MIT成立的自由
软件基金会(Free Software Foundation)中所执行的一
项计划。Stallman写下了一个著名的文档《GNU宣言》来阐述他的观点。他的计划是
写一个兼容UNIX的完整的软件系统,他称之为GNU(Gnu's Not
Unix'),很快,这个系统的第一部分出来了(emacs 编辑器和 gcc编译器),世界
各地的人开始研究它们并努力地改进它们。
今天,尽管Richard.M. Stallman对 GNU的设想还没有完全实现,但是这个软件
系统已经有超过1000个应用程序,它们中的大多数在品质上都
超过了同类的商业软件。一些独立的软件开发组织(例如Knuth's TeX 的文档格式系
统和MIT's X-window 系统)也加入到了GNU组织里来。
他的遭遇是任何一位为信念而战的理想主义者的必由之路。这位不修边幅、长发
披肩、络腮胡子的人,既有耶稣般的宗教魅力,又像是一位都市
里的野人。他总是风尘仆仆,行囊相随。他也带着一台笔记本电脑,但这不是他个人
的,而是属于自由软件基金会的(FSF)。其实Stall-man从来
只用自由软件(当然他从来没用过Windows),除此之外,他没有自己的汽车、电视
和房产。这位46岁的单身汉节俭地居住在一间租来的房子里已有
15年了,他没有领取过一个月的正式工资,因为他的工作就是使软件获得自由。在商
业社会的今天,人们更愿意追逐财富,而不是贫寒的Stallman的
高尚思想。
下面是记者ConteXto对 Stallman的专访:
ConteXto:Stallman先生,现在离你提出GNU宣言已经超过了10年了,你对关于软
件工业发展的观点发生了一些改变吗?
Stallman:我不认为任何主要的观点发生了改变,尽管我学习到了更多的东西,
认识到了一些人能通过开发自由软件潜在地赚钱。但是基本上
这与我10年前的观点是相同的。
ConteXto:在自由软件兴旺发达10年后的今天,一些人开始预言:随着Microsoft
Windows NT 操作系统的出现,使用UNIX的人将会逐渐减
少,你同意他们的这种说法吗?你能对GNU的未来地位做一个预测吗?
Stallman:我尽力预言未来,但我不像比尔,他是一个好的预言家,GNU只能是一
个公益项目。
ConteXto:但是你仍然关心这些,是吗?
Stallman:有时,但不是经常。因为一些人仍然希望能在GNU下使用自由软件,事
实上某些人甚至想在Windows NT下使用GNU下的程序。从这
一点来说,这意味着我们不得不从兼容性方面考虑支持Windows NT ,让我们的程序
能在Windows NT上运行。
ConteXto:Microsoft Windows NT 操作系统花了5年时间来开发,其发布日期多
次推迟。这个系统大概花了250个软件工程师一年的时间来
测试,总共抓出了30000个Bug。如果Windows NT要变成一个公认的优秀软件产品,它
的开发是昂贵的,也是不可预知的。一些人根据软件工程学原
理和经验认为这个系统的开发模式是不恰当的。你如何看?
Stallman:我不太明白软件工程学。当我写一个程序时,我首先考虑我要实现什
么功能,然后开始写其中我最容易想到的那一部分,在写这一
部分的时候,我通常可以想到这个程序的其他部分,然后我再开始写它们。如果有些
东西特别复杂,我通常会写下一个我将要做的大体的计划书。这
是我写gcc时唯一仔细思考的时间。
我对微软开发软件的模式一无所知,我不知道Windows NT的开发背景,我并不关心这
些,因为它是一个私有的程序。我从不使用它,因此我不能评价
它的好坏。但是GNU系统是不须要很多人做很多工作来修复Bug的。
我为此非常自豪,这并不是因为我们像一些人认为的那样我们使用了软件工程学的方
法,并有着严格的制度。 GNU能被做得如此出色,是因为参加
GNU的程序员的平均能力都很高,这些人非常坚定地加入这个事业,这个程序会被他
们越做越好。
我绝不会说:“我有250个程序员在做测试。”我不知道有多少程序员在做;我也不会
说:“我有一个大的团队,他们现在正在努力工作。”参加GNU的
程序员只按他们的想法行事,他们写程序是因为他们爱程序,他们想写一个具有创造
性的程序;我也不知道现在的Emacs有多少Bug,我没有统计,但我
估计也许不到1000个吧。
ConteXto:根据GNU的公告,自由软件基金会是一个小机构,有多少人在为它工作
?
Stallman:自由软件基金会有9个人在专职为它工作,不包括我和兼职的财务。
ConteXto:我想知道你私人的程序爱好。你最喜欢那种程序语言?
Stallman:呵呵。我喜欢C语言和Lisp语言。如果是编译语言的话我更喜欢C。
ConteXto: Perl语言呢?
Stallman:我不懂Perl,如果需要我可以学习它,但是它的手册很难懂。这个语
言特色太多,像一个大杂烩,我不太喜欢它。
ConteXto:你的笔记本上装的是什么操作系统? Linux?
Stallman:如果这个问题是:“你的笔记本上运行的是Linux吗”答案是肯定的。
但是如果你问:“你在使用那种操作系统?”,我的答案是我
运行的是GNU system,使用的是 Linux做为内核。
ConteXto:你对程序教育有什么建议?
Stallman:一个年轻人要想成为一个程序员首先必须热爱编程,有强烈的求知欲
,他必须仔细阅读手册来学习有关系统的每一点知识。如果一
个程序员是为了某种目的来工作,我们可以说他是成功的,但他不是一个好的程序员
。我们须要因为爱程序而写程序的人。
你看,我成为一个程序员是因为我爱它,几乎所有的优秀程序员都和我一样。如
果我们想学东西,我们直接读它的手册。你不需要教我们什么,
我们需要的一切都可以从手册里得到。如果你须要某些人来教你,那你永远不可能成
为最伟大的程序员。
远望资讯版权所有
--
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 162.105.17.237]
BBS水木清华站∶精华区