谈谈 Linux 桌面环境
上星期我在“扫荡”很久没有读的 RSS 的时候,看到了这么一篇文章:《重新认识Ubuntu Unity(上):Unity之降临》。文章的作者是 TualatriX,他在文章的前半部分讲了 Unity 这个用户界面的开发背景于发布后的评价,让我对 Linux 的桌面发展感觉到了一些不利的因素。
世界上用的最多的操作系统——Windows、Mac 和 Linux,它们之所以存在于世界上,我认为是因为它们有自己不可替代的核心优势。比方说,Windows 的优势在于它的普及范围广、Mac 的优势在于它的图形界面、Linux 的优势在于它的 UNIX 传承和稳健。当然,这些核心优势有许多,在不同的环境下,它们所体现出的优势各不相同。而在单机桌面领域,我觉得人们对于 Linux 的发展方向有些偏斜。
Linux 安装在个人计算机上有什么优势?这一点我想很多人似乎是没有搞清楚。Ubuntu 在国内开始流行那会儿,由于宣传,人们知道了有个叫 Linux 的操作系统,然后它有很炫的动感界面。这就是人们对它的认识了。于是有些喜欢折腾的人,就在自己的电脑上装上 Ubuntu,当然目的不是用,而是耍酷。结果发现很多东西都没法在 Ubuntu 下跑,比如 QQ,比如网银,于是人们又失望的重装 Windows。从一开始这种方向就偏斜了。
话说 Linux 的桌面究竟有什么优势?说道这个问题,我想先说一说 Mac。Leopard 刚发布的时候,苹果宣布了很多新功能。苹果还发表了一个视频,上面一个男人演示了各种 Leopard 加入的功能,这个视频非常吸引我,我当年把它下载到了硬盘上,看了好多次,我现在还在 Dropbox 里保存了一份。这个视频里介绍的很多功能,我当时看了都特别激动。比方说收到了邮件,在 Mail.app 里看邮件的内容,里面一些比较特殊的信息,比如电话号码,Mail 可以给你提取出来。把鼠标移动到电话号码上,点两下就可以把这个号码添加到 Address Book.app 里面。除了电话,地址、时间什么的好像都可以。虽然手动复制粘贴也不是不行,但这种系统集成是让我觉得兴奋的地方。后来我才知道,这些根本就不算是 Leopard 本身的功能,因此要用这些功能,就必须用苹果自己的软件。比如,你把 Mail.app 换成 ThunderBird.app,那就不会识别出这些信息了。究其原因,其实苹果发布的 Leopard 远远超出了“操作系统”的范畴。Leopard 其实可以算上几套解决方案的组合,买了 Leopard 后,你上网和别人交互基本没问题了——Safari 可以浏览网页,Mail 可以收发邮件,iChat 可以聊天,普通用户除了这些还需要什么?
所以我觉得,一个操作系统的核心优势,在于操作系统可以运行的软件。比如 Windows,我母亲在休闲时喜欢玩 Windows 自带的纸牌游戏,我在刚接触 Windows 95 的时候也很喜欢里面的扫雷游戏。但你让一个中国人拿到一台刚买来的 MacBook,你让他怎么休闲?我对国际象棋可不熟啊。另一个例子是在程序员之间流传的玩笑,说很多人买 Mac 是因为 TextMate 写 Ruby on Rails 程序太好用了,这里面操作系统方面的核心优势就不言而喻了。
那么,Linux 的核心优势怎么算呢?我觉得这比较困难,原因是因为 Linux 上可以运行的软件范围太广了。装个 LAMP 就可以跑 web 服务器,装个 XWindow + Gnome 就可以胜任个人桌面。从历史上来看,UNIX 世界很少有给自己的系统是什么样子的做出严格的定义的。这一方面跟 UNIX 世界的自由软件氛围有关系,另一方面是因为上面的经典软件都不是一家公司出品的。比如 Apache 和 X,它们不是一家公司或组织出的,界面风格自然就南辕北辙了。桌面环境也分成了好几个阵营,没有一家独大的。我们学校的 Sun 工作站上面同时安装了 Java Desktop Environment 和 CDE,当然默认的是 JDE,但 CDE 绝对可以正常使用。Sun 可以专业的商业公司啊。
结果因为风格上的不同意,软件就常常专注于一种风格,这在今天看来就是 GTK 和 Qt 的对立。虽然两个库本身是独立的,但在以一个库为基础的桌面环境中运行以另一个库为基础的软件,总会显得格格不入,这在风格上就比 Windows 和 Mac 弱了一节。原因?很简单,没有标准。普通用户没有操作系统和桌面环境的概念,因此常常把桌面当作操作系统本身。我身边最典型的例子是有同学得到了 Ubuntu 的免费派送光盘,启动电脑后用了一回说对 Ubuntu 的印象就是“屎黄色的桌面”。
在上世纪 90 年代,桌面环境蓬勃发展的时候,Linux 没有一个强有力的领导人引领大家的桌面环境。因为本身 UNIX 世界的图形界面已经比较成熟,字符界面当时的 DOS 根本没法和 UNIX 比,所以没有积极发展的必要。所以,在那段时期,Windows 和 Mac 都各自朝着一个方向努力,最终在各自的世界中形成了标准,而 Linux 则从一开始就没有像界面标准化的方向迈出坚实的一步。有些初学者弄不清楚 Linux 到底长啥样,所以觉得 Linux 就是“屎黄色的桌面”,那不过是 Ubuntu 默认墙纸的颜色而已,但这里面的概念实在是不好像圈外人解释清楚,所以我遇到了这种情况就只好不了了之了。另外,没有标准,Linux 世界呈现百花齐放的局面,各大发行版争奇斗艳,各小发行版也有各自的圈子,而我在刚接触 Linux 的时候就迷惑过,倒地哪种 Linux 最好?
所以,Linux 的核心优势到底是什么?仔细想一想,在个人桌面领域,Linux 似乎还真没有什么核心优势。有什么软件是只有 Linux 上可以运行的吗?数下来,似乎还真不多。在我的经历中,只有 Emacs 在 Windows 和 Mac 上没有完美运行,但也仅仅是不完美,而非不能运行。因为推广 Linux 的缘故,很多软件都有一种模仿的思路在里面:模仿 Windows 的行为方式,模仿 Mac 的界面模式。几年前我看到国内很多 Linux 网站在教大家怎样把菜单条弄到屏幕最上方,就像 Mac 那样子,怎么在屏幕下方放一个 Dock,就像 Mac 那样子……看到这些东西,我没有“Linux 现在也可以做到这个了”这样的兴奋,反而感到一种恶俗,难道,山寨是 Linux 桌面发展的宿命么?
我在真正正式使用 Linux 后,尝试了一些桌面环境,大众的小众的都或多或少的尝试过一些。到最后我的选择是 FVWM,这在今天看来似乎很奇葩,但确是我领悟到了所谓桌面,不过是一堆程序的堆叠而已之后的选择。这时,也是我明白了 Linux 的核心优势的时候。在我眼中,Linux 的核心优势就是“高度定制”。Linux 世界给你的一堆软件,你要按照自己的要求把它组合起来。弄到最后,桌面环境时花俏也罢,朴素也罢,总归时一堆软件的综合效果。像我这种喜欢简洁的人选择了 FVWM,因为我觉得用计算机其实就是使用软件。软件启动后生成的窗口要多大,放在哪里,这些给 FVWM 弄好了,交给我使用就行。想要设置背景,其实就是用程序在所有窗口下面全屏显示一章图像而已。当然,桌面环境也是这么做的,但把这一切都包装起来了。
Linux 就是这样,没有标准,这就是它的最好的优势。我在刚开始执著于发行版之间的优劣比较,到最后发现发行版之间的核心区别就是软件管理的区别,也就是 rpm、apt 等等的区别。Gentoo 提供了 emerge 系统和一些文档,这就是全部了;LFS 把软件给省了,于是就剩了一本书,软件管理部分,用解包/编译/安装等指令代替了。可以在这些东西之间自由选择,这是我最怀念 Linux 的地方之一。
在这里要说明一点,这里说的 Linux 的核心优势是我总结出来的,并非是标准答案,因此或许在别人眼里 Linux 有其它的核心优势也是可能的。不过,从我的核心优势发展,能得到一个相对悲观的结论,就是 Linux 无论如何都不能让广大群众所接受。普通用户要的不是可以定制,而是可以稳定正常的完成一些事物,所以,在个人桌面领域,Linux 基本没有竞争力啊。