微软不会想到,一个小小的正在攻读大学学位的系统管理员,
会挑战其引以为豪的图形操作系统技术。米古·德·伊科泽(Miguel
de Icaza ),26岁,正在墨西哥城攻读数学专业,正是在他的领导
下,分布于各地的250名程序员经过14个月的开发,推出了Linux下的
图形用户界面——GNOME 1.0。GNOME是GNU项目的一部分,它并不是为
精通计算机的***和程序员而开发的,它的目标是让每一个普通用户
方便地使用Linux。GNOME已得到了占Linux市场份额最大发行商Red
Hat的支持,现在GNOME下已有大量应用软件,包括文字处理软件Go,
电子表格软件Gnumeric,日历程序GNOMEcal,堪与PhotoShop媲美的图
形图像处理软件Gimp等,而这些优秀软件几乎都是免费的。可以预
见,GNOME的推出必将对Linux走向主流桌面应用起到推波助澜的作
用。
  下面是FEED杂志对GNOME开发小组领导者米古·德·伊科泽(下简
称ICAZA)的独家访谈录。

GNOME的开始

  FEED:GNOME项目是怎么开始的?
  ICAZA:原来有一个项目,是为桌面应用开发自由软件平台,而长
期以来,自由软件者一直忽视了这方面的工作。开发的第一个平台称
为KDE,但是当时KDE存在许可协议问题,由于使用了非开放代码,它
违反了GNU为自由软件制定的的通用软件许可协议GPL,因此KDE的基础
并不可靠。
  当时是1997年8月,自由软件者已为KDE工作了七个月,完成了一
个相当不错的桌面程序,但他们遇到许多困难,其中之一就是许可协
议问题,非常棘手。另一个问题是KDE基于单一的编程语言——C+
+,程序员被迫采用唯一的语言为其开发应用程序。所以我们开始了
一个新项目,完全从头开始,因此没有许可协议问题。我们采用了一
个非常优秀的工具包,加速了开发进度。我们的目标是实现一个语言
独立的桌面平台,最后,我们成功了。
  GNOME支持十二种编程语言,如C、C++、Scheme、Lisp、
ObjectiveC、Pascal等,我们想使GNOME成为非常容易编程的系统,程
序员不必都采用面向对象的语言,一般说来这样的语言非常复杂。程
序员也不用为开发不同的应用程序而学习不同的技巧。我们想把应用
程序的开发工作变成小事一桩,从而可以极大地丰富GNU的应用软件。
  FEED:照你说来,如果我读GNOME的源代码,是否会看到十二种语
言写成的的代码?
  ICAZA:实际上,GNOME的代码大部分是由C或C++写的,所有的参
加项目的程序员都偏好这两种语言,我们也支持其他语言。
  FEED:按你的想法,生活在美国的一个妇女可以从RedHat买Linux
操作系统,安装在她的家用电脑里,然后在上面运行GNOME?
  ICAZA:正是这样。

观念的转变

  FEED:困难之处在于你怎样可以说服普通用户转向GNU的世界——
GNU这个名称一般用户听起来是这样古怪?
  ICAZA:我想这是市场推广人员考虑的问题。
  FEED:你手下有市场人员吗?
  ICAZA:没有,我想发布Linux的人会做这些工作。我看到开放系统
有许多卖点,比如说人们可以根据喜好随意修改软件,另外可以自由
修正软件BUG,这在专有系统中是不可能的。
  FEED:不是程序员的人可以修改GNOME么?
  ICAZA:不可以。同样,你不能亲自去修房间里破的水管,但你可
以雇人去修水管。所以,你可以雇程序员修改软件。过去的一个月,
我一直在为Gnumeric(GNOME下的电子制表软件)提供收费技术支持,
我为需要的人提供维护或增加软件功能服务,他们可以打电话给我。
  FEED:你对哪些服务收费?
  ICAZA:看情况而定,如果软件的BUG影响到所有用户,我将免费
服务,但如果只是涉及软件某一特性,我会按项目收费。
  FEED:你将微软视为你的敌人吗?或是你认为是否有一种理想情
况,人们为需要的软件付费,而软件没有BUG?
  ICAZA:即使你为一个软件花很多钱,并不意味没有BUG,微软就
是一个很好的例子。BUG总是无处不在。我并不认为微软是我的敌人,
软件非常容易制作,而微软的产品价格超出本身价值。100美元对一个
操作系统来说太多了。

开发的工作

  FEED:有多少程序员参加了GNOME核心代码的编写工作?
  ICAZA:很难说,我可以告诉你有多少人拥有CVS的写权限。CVS是
一个可以使我们以小组方式协同工作的系统——它是源代码的中心
库,基本上每个人拥有一个源代码库的拷贝,每人把修改的代码发回
中心库。CVS代表“一致版本系统”。
  现在共有256人有CVS写权限,包括有直接写权限者和把代码发送
给可信任的维护者(他们起着代码过滤的作用)的人。
  FEED:你怎么吸引优秀的程序员为GNOME工作?
  ICAZA:这是一个有趣的问题,在KDE出现以前,我们认为UNIX缺
少很多框架特性,其中之一是部件编程——其关键是我们可以提供可
用来编写字处理器的部件,程序员可以扩展并加入应用程序中。整个
GNOME桌面是由部件构成的,它并不是一个密不可分的庞大的应用程
序。
  FEED:这是否意味着我可以由一个简单的字处理器,一个可嵌入
的拼写检查模块和一个使界面更漂亮的设计模块组成我的软件?
  ICAZA:是的,我们很看重设计模块,它是一个GUI(图形用户界
面)设计器,现在它已能工作,但还未最后完成。我们有一个和
PhotoShop类似的程序,称为Gimp(GNU图形处理程序的缩写)。至于
你问的如何使人们为此工作,实际上,Gimp吸引了全世界的广泛注意
力,因为它是一个编写 非常优秀的软件——非常简洁,设计巧妙,可
与PhotoShop媲美。
  GNOME的最初声明出现在Gimp的邮件列表中,然后出现在GNU和KDE
邮件列表中,以招募开发者。看来这一招非常有效,我们从这个列表
中得到了许多对图形开发非常有经验的人,也招到了许多语言设计人
才,我们努力尽早发布GNOME的雏形,以展示我们的进展。没花几个月
我们就已开始把小的模块集成在一起。

打开一个新世界

  FEED:GNOME和其他窗口管理器,比如说Enlightenment或FVWM等
改变了UNIX系统桌面外观和操作的程序有什么不同?
  ICAZA:这儿有一个重要的区别,一方面GNOME是一个开发应用程
序的框架,同时我们提供了大量的应用程序——如日历、电子表格、
图形程序。我们正在提供并使用这些工具,这就是在GNOME1.0中将看
到的。Enlightenment和FVWM仅仅是窗口管理器,它仅能帮你管理桌面
和移动窗口而已,而GNOME走得更远。只拥有这些装饰性的功能还不
够,我们缺少应用软件——这也是自由软件系统所缺少的。
  FEED:也就是说,GNOME提供了到目前为止的自由系统所缺少的
应用程序?
  ICAZA:如果你运行GNU系统,所有你看到的只是XWindow系统(一
种带“窗口”的UNIX系统的图形接口),你得到一个带终端的窗口,
你必须真正了解UNIX才能使用GNU-Linux系统。有了GNOME,用户不需
知道关于终端和计算机的任何知识。这才称得上是面向普通用户——
家庭用户或是儿童和文秘工作者,他们并不是程序员,而UNIX是面向
程序员的系统。
  我并不认为GNOME1.0已万事俱备。认真说来,我并不认为它是你
所看到的最漂亮的用户界面,但这是自由软件,我们可以修改源代
码,并根据用户的反馈不断提高系统质量。
  FEED:你认为在自由软件中存在一种什么精神?
  ICAZA:人们因为各种各样的原因来做自由软件,并共同推动社会
发展,我不认为专有软件很好地起到了这种作用。可能是因为我的数
学背景,我把软件开发看作是科学研究,我不认为人们可以剥夺别人
拥有他们的知识的权利,并标价出售这些知识。软件应像知识那样被
人类共享。