分类: LINUX
2008-04-27 23:06:58
微软不会想到,一个小小的正在攻读大学学位的系统管理员, 会挑战其引以为豪的图形操作系统技术。米古·德·伊科泽(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:人们因为各种各样的原因来做自由软件,并共同推动社会 发展,我不认为专有软件很好地起到了这种作用。可能是因为我的数 学背景,我把软件开发看作是科学研究,我不认为人们可以剥夺别人 拥有他们的知识的权利,并标价出售这些知识。软件应像知识那样被 人类共享。 本文出自 51CTO.COM技术博客 |