转载于Ubuntu中文论坛。
如果你访问了这个页面,那么十有八九你是一个 Linux 的新用户,你正遇到许多关于如何由 Windows 转向 Linux 的困惑,这篇文章的目的正是向新手解释这个问题。由于这个大问题衍生出许多枝节,下面我将对此逐一进行讨论。
问题一:Linux 和 Windows 不太一 样
你一定会惊讶于有这么多人对 Linux 发出相似的抱怨,他们奔向 Linux,希望找到一个免费的、开源版的 Windows。通常,这正是那些狂热的 Linux 使用者所告诉他们的那种状况。然而这却是个荒谬的期待。 人们尝试 Linux 的原因不尽相同,但所有的原因都可以归结为一点:他们希望 Linux 会比 Windows 更优秀。成本、选择范围、性能和安全性是通常衡量操作系统好坏的标准。当然,还有许多其它的方面,但当 Windows 用户转向 Linux 时,他们在这四方面将两者做比较,因为他们希望在这些方面Linux做的更好。
这正是问题之所在。
从逻辑上讲,在保持某样东西与参考物体完全相同的前提下,将其做得更好是绝无可能的。正如一个完美的复制品将与它的母版毫无差异,但是它不可能会超越母版。所以当你带着 Linux 更好的希望来尝试它的时候,你便会不可避免地发现它的不同。太多的人都忽略了这样一个事实,并且把这些不同之处看作是 Linux 的缺陷。
举一个简单的例子,升级驱动程序:在 Windows 下升级某个硬件驱动,通常的情况下,我们需要去硬件制造商的网站上找到并下载最新的驱动,如今Windows 7已经可以自动更新最新的驱动程序,而不需要用户过多的参与;然而在 Linux 下,我们要做的是升级内核。
这意味着在 Linux 下,仅仅一次下载和升级便能提供所有适用的最新驱动,然而在旧版本的Windows 下我们却不得不浏览多个网站并分别下载升级程序。只是过程有所不同,但是绝对不是说更糟糕。然而却有很多人对此抱怨不停,只因为这不是他们习惯的方式。
或者从另一个更经常接触到的例子来看,想一想 Firefox ——开源软件最成功的案例之一。这是一个席卷全球的浏览器,难道它是通过模仿 IE ——那个“最流行的浏览器”而取得成功的吗?
不,它的成功是因为它比 IE 更好,它之所以更好正是因为它的不同。它有标签页浏览方式,实时动态的书签,内建搜索工具栏,PNG图像格式支持,广告过滤扩展,以及其它的好东西。“查找”工具条显示在底部的工具栏中,它能够在你键入的时候就查找内容并且以红色表示没有相匹配的内容。而 IE 却没有标签页浏览,没有 RSS 订阅功能,搜索条只能通过第三方扩展实现,它的查找对话框还得通过点击“确认”按钮开始查找,而且还要再点击一次“确认”才能清除“未发现”的错误提示。这个鲜活的案例,证明了一个开源的应用程序通过“不同”而做到了“更好”,依靠“更好”进而取得了成功。如果 Firefox 只是一个 IE 的克隆,它必然早已销声匿迹于 IE 的阴影之下了。如果 Linux 是 Windows 的一个克隆,同样的事情也会发生在 Linux 身上。
因此问题一的答案就是:记住 Linux 其实与你熟悉的东西很相似,很有亲和力,它并不是全新和改进过的。积极地面对那些不同之处,因为只有不同,Linux 才有机会真正闪耀出其光彩
问题二:Linux 和 Windows 太不一样了
当人们期待着 Linux 有所不同时,又一个问题接踵而至。Linux 和 Windows 实在是太不一样了,一些差异简直难以让人适应。也许最典型的例子就是可供 Linux 用户选择的东西实在是太多了。对于一个刚上手的 Windows 用户,他已拥有一个经典的或 Windows XP 风格的桌面主题、一个写字板程序、一个IE 浏览器、一个Outlook Express来收发邮件;然而对于一个初学 Linux 的家伙,他面前有上百种发行版供其挑选,然后,是 Gnome、KDE 或者 Fluxbox(桌面环境),vi、emacs 或者 kate(文本编辑器),Konqueror、Opera、Firefox 或者 Mozilla(网页浏览器),或者其他一系列可供选择的工具。 Windows 用户不曾为了安装和使用(操作系统)而面对过如此丰富的选择。“有必要提供那么多种选择吗?”这样的抱怨帖子很常见。
Linux 真的和 Windows 有那么大的区别吗?不管怎么说,它们都是操作系统。它们都做同样的工作:操作你的计算机,让你有个运行应用程序的东西,自然它们多少都有些共通的地方吧?
让我们从这个角度看问题:出门看看路上行驶的各种不同车辆。所有的车辆不管是什么样的设计,都有同样的目的:从路上把你由 A 处运到 B 处。注意它们有不同的设计。
但是你会想,汽车之间的差异非常小:它们都有方向盘、脚踏板、变速杆、手刹车、车窗、车门、油箱……如果你能够开这部车,你就能开任何一部车。
确实如此。但你有没看见过有些人不开汽车──他们骑摩托车?
从一个版本的 Windows 切换到另一个版本就像从一辆汽车换到另外一辆汽车。Win95 到 Win98 ,老实说我说不出有什么区别。Win98 到 WinXp,差别大一些但是也没有什么真正的重大区别。
但是从 Windows 切换到 Linux 就象从骑摩托车切换到开汽车。他们都是操作系统(在道路上行驶的车辆)。他们可能都使用同样的硬件(道路)。他们可能都提供一个运行应用程序的环境(把你从甲地运到乙地)。但他们使用本质不同的两种方法来达到目的。
Windows(摩托车)对于病毒(小偷)并不安全,除非你安装反病毒软件(车锁)。Linux(汽车)对于病毒(小偷)是比较安全的,所以即使你没有安装反病毒软件(不锁车门)也非常安全。
或者从另一个角度看:
Linux(汽车)从根本上用于多用户(多名乘客)。Windows(摩托车)用于单用户(乘客)。Windows 用户(摩托车驾驶员)习惯于任何时候完全地控制他的计算机(摩托车)。而一个Linux 用户(汽车乘客)只有在以 root 根用户身份登录(坐在驾驶座上)时才要去控制计算机(车辆)。
通过两种不同的方法来达成同样的目标,他们各有优缺点:当载上一家子的成员和大包小包的货物从甲地至乙地时,一辆车显然是明智的选择:因为它有充裕的座位以及足够的储存空间。而对于一个人从甲地到乙地的情况,摩托车则是更好的选择:因为它不怎么会遇上堵车,消耗的燃油也更少。
无论选择摩托车或是汽车,仍有很多事情不会改变:你总归要给油箱里加油,而车还是开在同一条道上,而且必须遵守红绿灯,在转弯前要打转向灯,你同样也要注意限速。
但是也终究有很多情况不同了:开汽车的人不必带着安全头盔开车,摩托骑手不用系安全带;开汽车的人转动方向盘来转弯,摩托车骑手则要倾斜身子改变重心;开车需要踩油门踏板来加速,而骑摩托车通过手旋转手把来控制加速
一位汽车司机如果试图通过转移重心来拐弯,肯定是行不通的。同样的,一个 Windows 用户如果认为自己的经验可以直接派上用场,结果也会因为相同的原因而徒劳无获。事实上,较之电脑新手,一个 Windows “高级用户”在 Linux 的使用过程中常会遇上更多麻烦。那些经验丰富的 Windows 用户在面对问题时,如果无法解决,常会觉得“如果我这么有知识的用户都搞不定,那新手就更别想了”,因而得出“Linux离桌面应用还有十万八千里呢”的想法,其实事实恰好相反。
解决方法在于:Windows 用户必须意识到他只是一个有经验的 Windows 用户,而不是有经验的 Linux 用户。对于刚开始使用 Linux 的 Windows 高级用户,他应该意识到,他是个新手。
问题三: 文化冲突
子问题 A : Linux 有自己的文化
Windows 用户或多或少地处于一种消费者和供应商之间的关系:他们花钱买软件,获得授权,得到支持,等等。他们希望软件能够有确切的可用性。因此他们习惯于去得到使用软件的权利:他们花钱去得到技术上的支持以及他们得到他们想要的权利。他们也经常要与一些除了个人之外的实体打交道:例如他们与一家公司签一份合同。
Linux 用户则更多的是处于一个社团当中。他们不需要花钱去买软件,不需要为得到技术上的支持而耗费财力。他们免费下载软件,并且使用即时通信工具和论坛寻求帮助。他们和个人打交道,而不是公司。
一个 Windows 的用户如果只是把他的观点带到 Linux 中,那么他是不会喜欢上 Linux 的,这需要慢慢地适应。
引起矛盾的最大原因就在在线交流当中:一个初学 Linux 的菜鸟在遇到问题时寻求帮助,当他没有得到他可以接受的答案的时候,他便开始抱怨并且想要得到更多的帮助。因为这正是他以前用付费来获得帮助的方式。问题就是这不是付费提供帮助的系统,而是很多热心人出于善意帮助其他人解决问题的系统。一个新的用户没有任何权利去向这些热心人索要帮助,这就如同一个想要得到施舍的人,还要求从捐赠者那里获得更多的捐赠品一样。
同样,一个 Windows 用户习惯了使用商业软件。这些软件在没有做到足够的可靠性、功能性以及对用户友好的界面之前,公司是不会发布该软件的。因此这正是 Windows 用户希望软件是从 1.0 版本开始的。而 Linux 软件几乎一旦写出就会立即发布,因此是从 0.1 版本开始的。这样的,真正需要这些功能的人就会马上得到它;感兴趣的开发者会来帮助改进代码,而整个社区都会关注接下来的发展情况。
如果菜鸟在使用 Linux 时遇到了困难,他会抱怨:这个软件没能满足我的需求,并且他认为他有权得到这样的满足。如果他得到这样带有讽刺性的回答:“如果我是你,我要求退款!”,他的情绪恐怕会更糟。
因此,为了避免这些问题,应做到:要记住,你并没有付给那些软件开发者或者在线帮你提供技术指导的人任何钱。他们并不欠你任何东西。
子问题 B : 新用户 vs. 老用户
Linux 几乎是因黑客的业余爱好而诞生的。它的成长源于它吸引了更多志同道合的黑客们。Linux 在变得不只是一些奇客(Geek),而是让任何人都能使用之前经历了相当长的时间。可以说 Linux“始于奇客,馈于奇客”。直至今日,大多数 Linux 的老用户仍自认为是奇客。 这是件非常好的事情:如果你在硬件或软件方面有问题,存在一大群奇客们不断寻找解决方案这个状况,这难道不好吗?
但 Linux 自它诞生以来,已经成长变化了很多。已经有了一些几乎任何人都能安装使用的发行版,甚至一些发行版可以运行于 CD 上并且可以完全自动检测并配置好各种硬件。当 Linux 开始因其无病毒和廉价的升级而吸引一些非发烧友用户时,两大用户阵营间就会出现矛盾,这很正常。但有一点应当明确:双方都没有恶意,仅仅是缺乏相互理解而已。
首先,你面临的是核心奇客们仍然假设所有使用 Linux 的用户们都是奇客或在向这方面发展。这即是说他们认为所有 Linux 用户都应当很了解计算机和 Linux,这导致了他人指责他们的一些行为是傲慢、自大和无礼的。其实,虽然有时确实如此,但大多时候却并非这样,只是“每个人都应该知道”这样的善意表达变成了“地球人都知道!”——大相径庭。
其次,你面临着从使用的商用操作系统转投而来的新用户,这些用户已习惯使用那些任何人拆箱就能用的软件。
这类问题起因于不同使用习惯的碰撞:第一类人沉醉于不断地按自己喜好改造自己的操作系统,而第二类人对操作系统怎么运行并不关心,只要它能运行就行了。
在乐高(Lego)玩具发生的类似的情况正好阐述这种问题。试想下面的情景:
新用户(以下简称“新”):我想要一个新玩具汽车,每个人都因乐高汽车的好玩而着了迷。所以我也买了它,但当我到家后我才发现,我的盒子里只有积木和齿轮!我的车子在哪里?
老用户(以下简称“老”):你应该用积木组装一辆车,这才是乐高的真谛。
新:什么??我不知道应怎样拼装这个车子。我不是个机械师。我该怎么知道如何组装它?
老:盒子里有使用手册。它上面写着拼装车子的步骤。你不用知道原理,只要按照按部就班就好。
新:好吧,我找到了说明。这得花多久啊!为什么他们不能装好了再卖给我,还得让我自己动手??
老:并不是所有人都满足于将乐高做成玩具车。这些积木可以被我们组成万物。这才是游戏的真谛。
新:我仍旧不明白为什么厂商不能给我们这种想要车子的人一个成品,如果那些喜欢动手的人高兴可以自己拆了它阿。不管怎样,我还是将它组装起来了,尽管某些部件时不时地掉下来。我有什么方法可以解决吗?我能将它们粘起来吗?
老:这就是乐高。他就是用来拆装的。这才是游戏的真谛。
新:但我不希望总是拆拆装装,我仅仅希望一个玩具车而已!
老:呃,你到底是为什么要买乐高?
很明显,对那些只想要一个玩具车的人来说,乐高并不是为他们准备的。上面的情景应该不会发生在你的生活中。乐高的价值在于你可以建造过程中体会乐趣而且你也可以将它组装成任何你想要的东西。如果你不想动手拼装,只能说乐高不适合你。这很容易理解。
由于长久以来一直关注 Linux 的老用户,同样的问题在 Linux 上越发明显:它是开源的、完全可定制的软件集。这才是真谛。如果你不想自己动手,为什么自找麻烦来用它呢?
与乐高出售成品玩具的做法略有相似,通过最近的一系列的成果提升了非黑客用户使用 Linux 的舒适性,这使得更广大的用户可以使用 Linux。也正因如此,你仍可以听到与上面相似的对话,程度也仅是略有不同。新用户抱怨那些老用户所谓的“基本特性”干吗要让我们看到,他们讨厌阅读手册后才能实现一些功能。对太多发行版本的抱怨,对软件过多配置选项的抱怨和对刚拿到的软件用起来不顺手的抱怨,不正如对乐高有太多模块的抱怨一样,忽略了它可以被用来按你想法拆装成事实吗?
因此,为了避免这个问题:请记住现在 Linux 的外表并不代表它的过去。Linux 社区最大的也是最关键的组成部分——黑客和开发者们,他们因 Linux 的可以按需定制而欢喜;他们也会为可定制能力的丧失因而神伤。
注: 奇客:geek,词典中解释为因穿着不时尚和不懂得如何在社会中行事而作出一些怪事的人。现在指那些可以在电子和虚拟世界中非常有才华和想象力的发烧友。Geek宗教一般信仰科技或者颠覆科技。--chronmancer
问题四:为设计者而设计
在汽车工业中,你很难发现一个人既设计车辆引擎也设计车辆内饰:这需要完全不同的技能。没有人想要只是看起来可以跑得很快的引擎,同样也没有人想要做工出众但狭小且难看的车厢。基于同样的道理,在软件产业,用户界面(UI)往往不是由软件编程人员设计的。 但在 Linux 的世界却大不相同:一个项目往往是因个人的兴趣而产生。个人也包办了所有的工作,因此这些项目的界面往往缺乏了“用户友好” 的特性:用户对这个软件了如指掌,所以他也就不需要帮助文件等。vi 就是一个很好的例子,最初它的目标用户就是为那些了解它工作方式的人。因而设计者从来都没有想过如何用其他方式退出 vi ,所以新用户不得不靠重启计算机退出的事情时有发生。
但是,自由开源软件(FOSS,Free and Open Source Software)程序员与商用软件程序员的一个最重大区别在于, FOSS 程序员的作品都是他们自己想要使用的东西。这些作品新手用起来也许不舒服,但试想一下如果开发人员了解最终用户的需求,那这作品用起来一定很舒服。而实际情况确实如此,因为作者自己就是最终用户,他了解他自己(最终用户),因此该软件应该用起来很舒服。商用软件的程序员却大不相同,他们总是为其他人编写软件,而且这些用户都不是专家。
所以尽管 vi 拥有一个令新手望而生畏的界面,但它仍然在当今流行,这又归功于他的界面:当你熟悉后就会发现它原来无比强大。Firefox 也是被经常浏览网页的人编写出来的。GIMP 同样是出自经常处理图形文件的人之手。不胜枚举。
Linux 的界面对于新手而言同样的有些“难度”。尽管 vi 名声在外,但他仍然不在那些需要快速修改一些文件的新手的考虑之列。如果你在一个软件生命周期的早期使用它,打磨过的友好用户界面只会高挂在“计划”列表之上:主要功能肯定是先被实现的。没人先做个超级界面,再慢慢添加功能,程序员们都是先实现功能再不断改进界面。
所以,为了避免这个问题:你要么寻找那些以便于上手为目的而设计的软件,要么接受确实需要一个较长的磨合期来适应的软件。抱怨 vi 对新手不够友好只是舍本求末罢了。
问题五: “用户界面友好”的神话
在电脑世界里,“用户友好“指代非常广泛,甚至有一个不错的网络漫画就叫这个名字。但这个词却名不副实。
基本实现方法听起来似乎不错:软件的设计要从用户的想法和需要出发。实现的时候人们总是期望达到一个“最好”的界面,但事实并非想像的简单。
如果你一辈子都在做编辑文本文件的工作,理想的软件对你来说应当快速、强大,能让你以最少的操作来做最多的工作。简单的键盘快捷键和无需鼠标的操作将是最关键的需求。
但如果你很少编辑文本文件,只是要偶尔写一封信,那么你不会想着去学会那些键盘快捷键操作方法。排列有序的菜单和一目了然的工具栏图标就是你的理想环境。
很明显,你为第一个用户的需求所设计的软件并不适合与第二个用户,反之亦然。如此说来,若我们每个人都对软件有不一样的需求,那这些软件怎么能自称“用户友好”呢?
简单来说:“用户友好”这个叫法并不妥当,只能让复杂的情况看上去变得简单一点而已。
那么“用户友好”到底是什么意思呢?好吧,从那些使用这个词的文章中来看,“用户友好”的软件实际上意味着“该软件对那些以前从未使用这个软件的用户们来说也不是那么难上手”。这样一来,只要跟自己用过的软件长的像,不管它是不是真的好用,都可以叫做“用户友好”。
子问题 A: 熟悉的就是友好的
所以在大多数被认为“用户友好”的文字编辑 和文字处理的系统中,你的剪切和复制使用Ctrl+
X 和
Ctrl+
C 来完成,这完全不直观, 但是每个人都
习惯这些快捷键,所以这就被当作“友好的”快捷方式。
如果有人来到 vi 并且发现里面 D 是剪切,
P 是粘贴,这将被当成是不友好的:因为这不是大多数人习惯的方式。
但这是更好的方式吗? 明显是的。
如果使用Ctrl+
X的方法,你怎样从你当前正在编辑的文件中剪切一个单词?(没有鼠标的前提下!)
你必须从开头的字符开始,用Ctrl+
Shift+
→来选择单词.
然后Ctrl+
X把它剪切下来。
vi中的方式呢?用“dw”删除该单词即可。
如果要剪切 5个单词使用 Ctrl+
X 方式会出现什么情况呢?
从开头的单词开始:
Ctrl+
Shift+
→
Ctrl+
Shift+
→
Ctrl+
Shift+
→
Ctrl+
Shift+
→
Ctrl+
Shift+
→
Ctrl+
X
要使用5个动作
在 vi 中的情况呢?
d5w
vi 方式实际上更通用和也更直观 。“X” 和 “V” 并不是能够直观记忆“Cut”和 “Paste” 命令的,反之 “dw” 对于 “delete”(删除) 和 P 对于 “Put it
back”(贴回来) 更加直观,明显vi 是更好的。可是由于它不是大家所熟悉的,因此它被认为是不友好的。没有其他任何因素,纯粹的由于习惯使得 Windows 成为了更加友好的系统。根据问题一中我们得到的:Linux 有必要与 Windows 不同,因此不可避免,Linux 经常显得没有 Windows“友好”。
为了避免这个问题,你们要记住“友好”并不意味着习惯。试着用你的方式来做事,如果没有用的话,试着想想一个初学者会怎么做,然后你就知道了更简单的方法。
子问题 B:低效的就是友好的
这是一个可悲的但无法逃避的事实。似乎你把一个软件的功能埋的越深,它就看起来越友好。
这是因为友好性是通过在用户界面中使用简单、可视化的“线索”实现的——越多越好。毕竟,如果一个完全的计算机新手被放到一个所见即所得的字处理软件前并被要求把一些文本变成粗体,接下来很有可能:
他会认为 "Ctrl+B" 是通常的方法。
他会寻找线索,并尝试点击 "编辑" 菜单。如果不成功,他就会从接下来的一系列菜单中尝试比较像的那个:“格式”。新的菜单有一个看起来很有希望的“字体”选项。嗨!这里有我们想要的“粗体”选项。成功了!
下次你再做任何文字处理,都想试着通过菜单来完成每一件工作:不用快捷键,也不用工具栏图标。菜单就是一切。你会发现你比爬还慢,因为所有任务突然都需要大量击键/点击来完成。
这样使软件变得“用户友好”就像在自行车上装辅助轮一样:它让你能马上骑起来,不需要任何技巧和经验。这对一个初学者来说非常好。但是没有人会觉得所有的自行车都应该加上辅助轮销售。如果你今天得到这样的一辆自行车,我敢打赌你要做的第一件事就是除去这不必要的阻碍:一旦你知道怎样骑车了,辅助轮就没用了。
同样的道理,大量的 Linux 软件是设计成不带“辅助轮”(辅助工具)的——它是为已经有一些使用的基本技能的用户设计的。毕竟,没有人是永远的新手:无知是暂时的,知识是永远的。因此 Linux 软件其实是考虑到了用户中的多数的。
这听起来也许像是借口:毕竟,微软的 Word 有全部的友好菜单,并且有各种工具栏按钮, 而且有快捷键……它是世界上最棒的,对吗?既友好,又高效。
然而,我们必须透过表象看问题。首先,这个想法的可行性:让一个软件拥有菜单、工具栏、快捷方式等一切意味着大量的源代码编写,而没人为 Linux 开发者花费的时间付账;其次, 这样做依然没有真正考虑到那些高端用户:极少有专业的文字录入者使用微软的 Word。你见过哪个编程的人用 Word 吗?与此相比,想想有多少人用 emacs 和 vi。
为什么会这样?首先,这是因为正是某些“用户友好”的行为导致了低效:参看上面的“剪切和粘贴”的例子。其次,这还因为 Word 大部分的功能被放在了菜单里,因此你不得不使用菜单。只有某些最常见的功能可以作为按纽被放在屏幕上方的工具栏上。高级用户不得不花大量的时间来找到那些普通用户较少用到,但对高级用户来说依然很常用的的功能。
请记住,其实那些“辅助轮”在 Linux 软件中也同样有,通常作为可选的附加组件,尽管他们不是那么容易被发现,但实际通常都会有。
以 mplayer 播放器为例。你可以在终端输入 mplayer 视频文件名命令来播放视频文件。你可以使用方向键,PageUp、PageDown 键进行快进、后退等操作。这些可能还不能称之为完全的“用户友好”,但如果你在终端输入 gmplayer 视频文件名,你就会看到图形版的播放器,它同样拥有漂亮、友好的界面,熟悉的按钮。
再用从 CD 转换到 MP3(或 Ogg)为例:如果使用命令行, 你需要先使用 cdparanoia 命令把 CD 的内容录制为磁盘文件,然后你再需要一个编码器……这会是一个恶梦,就算你完完全全清楚如何使用 imho 包。所以,下载和安装 Grip 吧。这是一个容易使用的图形软件,自动的在背后使用 cdparanoia 命令和编码器,令你的转换过程变得简单,甚至支持 CDDB,能自动为你的档案命名。
同样发生在抓取 DVD 上:选择正确的编码是一场噩梦。但是使用 dvd::rip 软件,可以在一个任何人都能操作自如的图形界面中来完成整个编码过程。
因此避免这个问题:要记住“辅助轮”(辅助工具)仅作为 Linux 的扩展,而不是自动跟着主程序安装的。而且有时,“辅助轮”还不成为设计的一部分。
问题六:模仿 vs. 趋同
当人们发现 Linux 不是他们想要的 Windows 复制品时,经常争论一件事,就是坚持认为 Linux 一诞生,这(不成为Windows复制品)就是(或应该是)其努力的方向,而且那些不明白这一点的人错误地努力使 Linux 更像 Windows。由于这一点,他们展开激烈的争论:
Linux 已经从命令行时代进入了图形界面时代,这明显是在学 Windows。
不错的理论,但却是错误的:最初的 X 窗囗化系统(见附录)是于1984年发布,继承自1983年移植到 Unix 上的 W 窗口化系统。而 Windows 1.0 是在1985年才发布的。Windows 在1990年发布第三版之前并没有做大——那时,X 窗口化系统已经演化成我们今天使用的 X11 版本好几年了。Linux 在1991年才开始,所以 Linux 没有开发一个 GUI(图形用户界面)来模仿 Windows:它只是使用了一个在 Windows 出现之前就已经存在的 GUI。
Windows 3 的续作 Windows 95,带来了图形界面的革命性变化。在这以后很多年,微软都没能作出与此类似的创举。Windows 95 带来了多项创新的特性:拖放功能、任务栏等等。因而 Linux 借鉴了这些东西。
事实上……不是这样的。上述所有的特性在微软使用前就已经出现了。例如,NeXTSTeP(见附录介绍)是一个非常先进的图形用户界面(就当时而言),它明显早于 Win95 ──1989年发布了第一版,1995年发布了最后一版。
好吧,好吧,这样看来我们熟悉的“Windows 界面”,其实其中的元素并不是微软自己创造的。但它还是创造了一种整体界面,Linux 从那时起尝试模仿它。
为了反驳这一条,我们来讨论一下“趋同进化”的概念。它说的是:两个不同的、各自独立的系统随着时间的推移会逐渐变得类似。这种现象经常发生在生物学领域。举例来说:鲨鱼和海豚,他们都有着类似的背鳍、胸鳍和尾鳍,以及同样的流线型外形。
但是,鲨鱼是由鱼进化而来的,而海豚则是由陆地上某种四条腿的哺乳动物进化而来的。他们拥有类似外形,是由于他们都生活在同样的海洋环境中,他们必须朝最大效率适应海洋环境的方向进化。实际上不会有一幕这样的场景:未进化的海豚(相对的后来者)看到鲨鱼以后就开始想“哇,看看鲨鱼的鳍,它们非常有用。我也要这样进化一套自己的鳍!”
同样,如果先看早期的 Linux 桌面、FVWM 和 TWM 以及许多简陋的 GUI(图形用户界面),然后再看看今天的 Linux 桌面、Gnome 和 KDE,以及它们带有的任务栏、菜单、视觉效果。是的,不得不说现在的 Linux 比早期的更像 Windows 了。
另一方面,Windows也同样如此;我印象中 Windows 3.0 没有任务栏。那么开始菜单呢?什么是开始菜单?
Linux 过去没有任何桌面像今天的 Windows,微软过去也没有(一个像今天的 Windows 的桌面)。现在他们都有了,这说明什么问题呢?
这说明来自两个阵营的开发人员都在寻找提升GUI(图形用户界面)性能的方法,但是解决相同的问题可供选择的方法并不多,他们难免会使用类似的方法。类似并不能说明或暗指一方在模仿另一方。记住这一点,你就不会受到这个问题的困扰了。
问题七:FOSS──自由和开源
问题要来了。自由和开源是整个事情中一个很有意思并且相当重要,但却不是根本的部分。但是对于一些人看来,不过对于开源软件和专有软件之间的区别这个问题,对一些人来说实在是有些太宽泛而难以理解的。
我已经举了一些例子,人们认为他们有权要求技术支持和他们的东西。但是事实并不是这样。
微软的使命是“A computer on every desktop(让每个桌面上都有电脑)”——他们没有说出口的是每台电脑都运行着 Windows 。微软和苹果公司都销售操作系统,都尽他们最大的努力来保证尽可能多的人使用他们的产品:他们是来做生意,要赚钱的。
然而看看FOSS,直至今天,几乎完全是非商业性质的。
当你发电子邮件告诉我,Red Hat、Suse、Linspire ……是的,我知道他们在“销售” Linux。我知道他们都希望 Linux 被广泛的采用,特别是他们自己的版本。但是不要混淆提供商和制造商。Linux 内核不是被某个公司制造,不是由靠它获利的人来维护它。GNU 软件不是被某个公司制造,同样也不是由靠它们获利的人来维护。X11 视窗系统……好,当前最流行的实现方案是 xorg,“.org”的名字应该能告诉你想知道的(注:.org为非盈利组织)。桌面软件:好的。你提出一个例子,比如 KDE ,由于其基于的 Qt 是商业化的。(译者注:现在 Qt 已经不是商业化的了,是双重授权)。但是 Gnome、Fluxbox、Enlightenment 等等,都是非盈利的。确实有人销售 Linux,但是那只是极少数。
私有软件最终用户数量的增加可以直接变为制作公司的直接经济效益。对于 FOSS来说,并不是这样,使用人数的增加并不会产生直接的收益。非直接收益当然是有的:个人的自豪,更多发现 Bug(错误)的机会,更多可能得吸引新的开发者,可能有机会得到个好的工作,等等。
但是 Linus Torvalds( Linux 的创始人)并没有因 Linux 用户的增加而赚钱。Richard Stallman( GNU 创始人)也没有从 GNU 用户的增长中获利。所有运行 OpenBSD 和 OpenSSH 的服务器也没有放一分钱到 OpenBSD 项目的口袋中去。因此我们来到了在 Linux 和新用户之间最大的问题:
他们发现,他们不是 Linux 制造商请来的。
来到 Linux 之前,这些新用户使用的操作系统当中,最终用户的需求至高无上的,并且“用户友好性”和“以用户为中心” 被认为是第一位的。他们突然发现他们自己将要使用的操作系统仍然依赖于“man”文档、命令行、手动编辑的配置文件和 Google。而且当他们抱怨时,还没得到全方位的服务,也没得到什么承诺:被直接拒之门外。
当然是有些夸张了。但是确实,很多人像这样,以自己熟悉的方式来试着尝试 Linux,却遭到了失败。
从另一方面来说,FOSS 事实上是一种非常自私的发展方法:人们想工作的时候才工作,并且只做他们想做的工作。大部分人都不认为让 Linux 增加一些对没有经验的用户的吸引力有任何的必要:Linux 已经能做他们(设计者)想要它做的事情了,别人如果用不来,他们为何要在意呢?
FOSS 和 Internet 自身有很多相似的地方:你不需要付钱给一个网页(软件)的作者,就可以去下载和阅读(安装)它。对于已经有了宽带网(知道如何使用软件)的人们来说,全民安宽带(用户友好的界面)没什么吸引力。博客主人(软件开发者)不需要很多的读者(用户)来作为动力以继续写博客(编写软件)。 确实有许多人从中赚到许多钱,但不是靠通常的大多数生意的规矩:“这是我的,如果你想要,请付钱”;它是靠提供技术支持(电子商务)的服务来赚钱。
Linux 对市场份额不感兴趣。Linux 也没有客户。Linux 没有股东,也没有盈利的责任。Linux 不是为了赚钱而创造的。Linux 的目标不是成为地球上最流行和最普及的操作系统。
Linux 社区想要的是一种真正品质优良、充满特色、自由的操作系统。如果这使 Linux 最终成为一种非常流行的操作系统,那么非常好。如果这使 Linux 最终拥有直观的、用户友好的界面,那么也非常好。如果这使 Linux 最终成为一个数十亿美元的产业,那也非常好。
这仅仅是很好,但不是重点。重点是,让 Linux 成为社区能力范围之内的最好的操作系统。不是为了别人:为了社区自己。如此普遍关于“除非 Linux 如此这样,否则永远不会占领桌面”的威胁论是不恰当的:Linux 社区没有尝试占领桌面。他们完全不关心它是否能够好到进驻你这个新用户的桌面上,只要在他们自己的桌面上运行的够好就行了。 高呼憎恨微软的人,深度Linux 的狂热者,靠FOSS赚钱的人或许会在这里站出来说两句,但他们仍然只是少数。
这就是 Linux 社区的目标:一种能够被任何想要它的人安装的操作系统。所以如果你在考虑转向 Linux。首先,问你自己,什么是你真正想要的。
如果你想要一种操作系统,就像一辆汽车,没有雇来的司机,给你把钥匙,让你自己做在驾驶员的位置上,并且希望你知道该做什么:用 Linux吧。你得花些时间去学习如何使用它,但是一旦你学会了,你将拥有一个让人着迷的操作系统。
如果你只是想要没有恶意软件和安全问题的 Windows:阅读一些安全方面的资料,安装好的防火墙,恶意软件检测工具和杀毒软件;用一个更安全的浏览器替换 IE ;保持安装最新的安全更新。有人(包括我自己)使用 Windows 从 3.1 到 XP,从来不曾被病毒或者恶意软件感染,你也能做到。不要用 Linux,它不会成为你想要它的那个样子。
如果你想要一种基于 Unix 的操作系统的安全性和性能,以及客户至上和世界著名的界面:购买苹果公司的 Mac 电脑。Mac OS X是不错的。但是不要用 Linux:它不会做你想要它做的。(译者注:目前 Linux 上的 Compiz 已经成为最花哨的窗口管理器了。)
问题不仅仅是“为什么我想要 Linux?”。还有“为什么 Linux 想要我?”
如果你访问了这个页面,那么十有八九你是一个 Linux 的新用户,你正遇到许多关于如何由 Windows 转向 Linux 的困惑,这篇文章的目的正是向新手解释这个问题。由于这个大问题衍生出许多枝节,下面我将对此逐一进行讨论。
问题一:Linux 和 Windows 不太一 样
你一定会惊讶于有这么多人对 Linux 发出相似的抱怨,他们奔向 Linux,希望找到一个免费的、开源版的 Windows。通常,这正是那些狂热的 Linux 使用者所告诉他们的那种状况。然而这却是个荒谬的期待。 人们尝试 Linux 的原因不尽相同,但所有的原因都可以归结为一点:他们希望 Linux 会比 Windows 更优秀。成本、选择范围、性能和安全性是通常衡量操作系统好坏的标准。当然,还有许多其它的方面,但当 Windows 用户转向 Linux 时,他们在这四方面将两者做比较,因为他们希望在这些方面Linux做的更好。
这正是问题之所在。
从逻辑上讲,在保持某样东西与参考物体完全相同的前提下,将其做得更好是绝无可能的。正如一个完美的复制品将与它的母版毫无差异,但是它不可能会超越母版。所以当你带着 Linux 更好的希望来尝试它的时候,你便会不可避免地发现它的不同。太多的人都忽略了这样一个事实,并且把这些不同之处看作是 Linux 的缺陷。
举一个简单的例子,升级驱动程序:在 Windows 下升级某个硬件驱动,通常的情况下,我们需要去硬件制造商的网站上找到并下载最新的驱动,如今Windows 7已经可以自动更新最新的驱动程序,而不需要用户过多的参与;然而在 Linux 下,我们要做的是升级内核。
这意味着在 Linux 下,仅仅一次下载和升级便能提供所有适用的最新驱动,然而在旧版本的Windows 下我们却不得不浏览多个网站并分别下载升级程序。只是过程有所不同,但是绝对不是说更糟糕。然而却有很多人对此抱怨不停,只因为这不是他们习惯的方式。
或者从另一个更经常接触到的例子来看,想一想 Firefox ——开源软件最成功的案例之一。这是一个席卷全球的浏览器,难道它是通过模仿 IE ——那个“最流行的浏览器”而取得成功的吗?
不,它的成功是因为它比 IE 更好,它之所以更好正是因为它的不同。它有标签页浏览方式,实时动态的书签,内建搜索工具栏,PNG图像格式支持,广告过滤扩展,以及其它的好东西。“查找”工具条显示在底部的工具栏中,它能够在你键入的时候就查找内容并且以红色表示没有相匹配的内容。而 IE 却没有标签页浏览,没有 RSS 订阅功能,搜索条只能通过第三方扩展实现,它的查找对话框还得通过点击“确认”按钮开始查找,而且还要再点击一次“确认”才能清除“未发现”的错误提示。这个鲜活的案例,证明了一个开源的应用程序通过“不同”而做到了“更好”,依靠“更好”进而取得了成功。如果 Firefox 只是一个 IE 的克隆,它必然早已销声匿迹于 IE 的阴影之下了。如果 Linux 是 Windows 的一个克隆,同样的事情也会发生在 Linux 身上。
因此问题一的答案就是:记住 Linux 其实与你熟悉的东西很相似,很有亲和力,它并不是全新和改进过的。积极地面对那些不同之处,因为只有不同,Linux 才有机会真正闪耀出其光彩
问题二:Linux 和 Windows 太不一样了
当人们期待着 Linux 有所不同时,又一个问题接踵而至。Linux 和 Windows 实在是太不一样了,一些差异简直难以让人适应。也许最典型的例子就是可供 Linux 用户选择的东西实在是太多了。对于一个刚上手的 Windows 用户,他已拥有一个经典的或 Windows XP 风格的桌面主题、一个写字板程序、一个IE 浏览器、一个Outlook Express来收发邮件;然而对于一个初学 Linux 的家伙,他面前有上百种发行版供其挑选,然后,是 Gnome、KDE 或者 Fluxbox(桌面环境),vi、emacs 或者 kate(文本编辑器),Konqueror、Opera、Firefox 或者 Mozilla(网页浏览器),或者其他一系列可供选择的工具。 Windows 用户不曾为了安装和使用(操作系统)而面对过如此丰富的选择。“有必要提供那么多种选择吗?”这样的抱怨帖子很常见。
Linux 真的和 Windows 有那么大的区别吗?不管怎么说,它们都是操作系统。它们都做同样的工作:操作你的计算机,让你有个运行应用程序的东西,自然它们多少都有些共通的地方吧?
让我们从这个角度看问题:出门看看路上行驶的各种不同车辆。所有的车辆不管是什么样的设计,都有同样的目的:从路上把你由 A 处运到 B 处。注意它们有不同的设计。
但是你会想,汽车之间的差异非常小:它们都有方向盘、脚踏板、变速杆、手刹车、车窗、车门、油箱……如果你能够开这部车,你就能开任何一部车。
确实如此。但你有没看见过有些人不开汽车──他们骑摩托车?
从一个版本的 Windows 切换到另一个版本就像从一辆汽车换到另外一辆汽车。Win95 到 Win98 ,老实说我说不出有什么区别。Win98 到 WinXp,差别大一些但是也没有什么真正的重大区别。
但是从 Windows 切换到 Linux 就象从骑摩托车切换到开汽车。他们都是操作系统(在道路上行驶的车辆)。他们可能都使用同样的硬件(道路)。他们可能都提供一个运行应用程序的环境(把你从甲地运到乙地)。但他们使用本质不同的两种方法来达到目的。
Windows(摩托车)对于病毒(小偷)并不安全,除非你安装反病毒软件(车锁)。Linux(汽车)对于病毒(小偷)是比较安全的,所以即使你没有安装反病毒软件(不锁车门)也非常安全。
或者从另一个角度看:
Linux(汽车)从根本上用于多用户(多名乘客)。Windows(摩托车)用于单用户(乘客)。Windows 用户(摩托车驾驶员)习惯于任何时候完全地控制他的计算机(摩托车)。而一个Linux 用户(汽车乘客)只有在以 root 根用户身份登录(坐在驾驶座上)时才要去控制计算机(车辆)。
通过两种不同的方法来达成同样的目标,他们各有优缺点:当载上一家子的成员和大包小包的货物从甲地至乙地时,一辆车显然是明智的选择:因为它有充裕的座位以及足够的储存空间。而对于一个人从甲地到乙地的情况,摩托车则是更好的选择:因为它不怎么会遇上堵车,消耗的燃油也更少。
无论选择摩托车或是汽车,仍有很多事情不会改变:你总归要给油箱里加油,而车还是开在同一条道上,而且必须遵守红绿灯,在转弯前要打转向灯,你同样也要注意限速。
但是也终究有很多情况不同了:开汽车的人不必带着安全头盔开车,摩托骑手不用系安全带;开汽车的人转动方向盘来转弯,摩托车骑手则要倾斜身子改变重心;开车需要踩油门踏板来加速,而骑摩托车通过手旋转手把来控制加速
一位汽车司机如果试图通过转移重心来拐弯,肯定是行不通的。同样的,一个 Windows 用户如果认为自己的经验可以直接派上用场,结果也会因为相同的原因而徒劳无获。事实上,较之电脑新手,一个 Windows “高级用户”在 Linux 的使用过程中常会遇上更多麻烦。那些经验丰富的 Windows 用户在面对问题时,如果无法解决,常会觉得“如果我这么有知识的用户都搞不定,那新手就更别想了”,因而得出“Linux离桌面应用还有十万八千里呢”的想法,其实事实恰好相反。
解决方法在于:Windows 用户必须意识到他只是一个有经验的 Windows 用户,而不是有经验的 Linux 用户。对于刚开始使用 Linux 的 Windows 高级用户,他应该意识到,他是个新手。
问题三: 文化冲突
子问题 A : Linux 有自己的文化
Windows 用户或多或少地处于一种消费者和供应商之间的关系:他们花钱买软件,获得授权,得到支持,等等。他们希望软件能够有确切的可用性。因此他们习惯于去得到使用软件的权利:他们花钱去得到技术上的支持以及他们得到他们想要的权利。他们也经常要与一些除了个人之外的实体打交道:例如他们与一家公司签一份合同。
Linux 用户则更多的是处于一个社团当中。他们不需要花钱去买软件,不需要为得到技术上的支持而耗费财力。他们免费下载软件,并且使用即时通信工具和论坛寻求帮助。他们和个人打交道,而不是公司。
一个 Windows 的用户如果只是把他的观点带到 Linux 中,那么他是不会喜欢上 Linux 的,这需要慢慢地适应。
引起矛盾的最大原因就在在线交流当中:一个初学 Linux 的菜鸟在遇到问题时寻求帮助,当他没有得到他可以接受的答案的时候,他便开始抱怨并且想要得到更多的帮助。因为这正是他以前用付费来获得帮助的方式。问题就是这不是付费提供帮助的系统,而是很多热心人出于善意帮助其他人解决问题的系统。一个新的用户没有任何权利去向这些热心人索要帮助,这就如同一个想要得到施舍的人,还要求从捐赠者那里获得更多的捐赠品一样。
同样,一个 Windows 用户习惯了使用商业软件。这些软件在没有做到足够的可靠性、功能性以及对用户友好的界面之前,公司是不会发布该软件的。因此这正是 Windows 用户希望软件是从 1.0 版本开始的。而 Linux 软件几乎一旦写出就会立即发布,因此是从 0.1 版本开始的。这样的,真正需要这些功能的人就会马上得到它;感兴趣的开发者会来帮助改进代码,而整个社区都会关注接下来的发展情况。
如果菜鸟在使用 Linux 时遇到了困难,他会抱怨:这个软件没能满足我的需求,并且他认为他有权得到这样的满足。如果他得到这样带有讽刺性的回答:“如果我是你,我要求退款!”,他的情绪恐怕会更糟。
因此,为了避免这些问题,应做到:要记住,你并没有付给那些软件开发者或者在线帮你提供技术指导的人任何钱。他们并不欠你任何东西。
子问题 B : 新用户 vs. 老用户
Linux 几乎是因黑客的业余爱好而诞生的。它的成长源于它吸引了更多志同道合的黑客们。Linux 在变得不只是一些奇客(Geek),而是让任何人都能使用之前经历了相当长的时间。可以说 Linux“始于奇客,馈于奇客”。直至今日,大多数 Linux 的老用户仍自认为是奇客。 这是件非常好的事情:如果你在硬件或软件方面有问题,存在一大群奇客们不断寻找解决方案这个状况,这难道不好吗?
但 Linux 自它诞生以来,已经成长变化了很多。已经有了一些几乎任何人都能安装使用的发行版,甚至一些发行版可以运行于 CD 上并且可以完全自动检测并配置好各种硬件。当 Linux 开始因其无病毒和廉价的升级而吸引一些非发烧友用户时,两大用户阵营间就会出现矛盾,这很正常。但有一点应当明确:双方都没有恶意,仅仅是缺乏相互理解而已。
首先,你面临的是核心奇客们仍然假设所有使用 Linux 的用户们都是奇客或在向这方面发展。这即是说他们认为所有 Linux 用户都应当很了解计算机和 Linux,这导致了他人指责他们的一些行为是傲慢、自大和无礼的。其实,虽然有时确实如此,但大多时候却并非这样,只是“每个人都应该知道”这样的善意表达变成了“地球人都知道!”——大相径庭。
其次,你面临着从使用的商用操作系统转投而来的新用户,这些用户已习惯使用那些任何人拆箱就能用的软件。
这类问题起因于不同使用习惯的碰撞:第一类人沉醉于不断地按自己喜好改造自己的操作系统,而第二类人对操作系统怎么运行并不关心,只要它能运行就行了。
在乐高(Lego)玩具发生的类似的情况正好阐述这种问题。试想下面的情景:
新用户(以下简称“新”):我想要一个新玩具汽车,每个人都因乐高汽车的好玩而着了迷。所以我也买了它,但当我到家后我才发现,我的盒子里只有积木和齿轮!我的车子在哪里?
老用户(以下简称“老”):你应该用积木组装一辆车,这才是乐高的真谛。
新:什么??我不知道应怎样拼装这个车子。我不是个机械师。我该怎么知道如何组装它?
老:盒子里有使用手册。它上面写着拼装车子的步骤。你不用知道原理,只要按照按部就班就好。
新:好吧,我找到了说明。这得花多久啊!为什么他们不能装好了再卖给我,还得让我自己动手??
老:并不是所有人都满足于将乐高做成玩具车。这些积木可以被我们组成万物。这才是游戏的真谛。
新:我仍旧不明白为什么厂商不能给我们这种想要车子的人一个成品,如果那些喜欢动手的人高兴可以自己拆了它阿。不管怎样,我还是将它组装起来了,尽管某些部件时不时地掉下来。我有什么方法可以解决吗?我能将它们粘起来吗?
老:这就是乐高。他就是用来拆装的。这才是游戏的真谛。
新:但我不希望总是拆拆装装,我仅仅希望一个玩具车而已!
老:呃,你到底是为什么要买乐高?
很明显,对那些只想要一个玩具车的人来说,乐高并不是为他们准备的。上面的情景应该不会发生在你的生活中。乐高的价值在于你可以建造过程中体会乐趣而且你也可以将它组装成任何你想要的东西。如果你不想动手拼装,只能说乐高不适合你。这很容易理解。
由于长久以来一直关注 Linux 的老用户,同样的问题在 Linux 上越发明显:它是开源的、完全可定制的软件集。这才是真谛。如果你不想自己动手,为什么自找麻烦来用它呢?
与乐高出售成品玩具的做法略有相似,通过最近的一系列的成果提升了非黑客用户使用 Linux 的舒适性,这使得更广大的用户可以使用 Linux。也正因如此,你仍可以听到与上面相似的对话,程度也仅是略有不同。新用户抱怨那些老用户所谓的“基本特性”干吗要让我们看到,他们讨厌阅读手册后才能实现一些功能。对太多发行版本的抱怨,对软件过多配置选项的抱怨和对刚拿到的软件用起来不顺手的抱怨,不正如对乐高有太多模块的抱怨一样,忽略了它可以被用来按你想法拆装成事实吗?
因此,为了避免这个问题:请记住现在 Linux 的外表并不代表它的过去。Linux 社区最大的也是最关键的组成部分——黑客和开发者们,他们因 Linux 的可以按需定制而欢喜;他们也会为可定制能力的丧失因而神伤。
注: 奇客:geek,词典中解释为因穿着不时尚和不懂得如何在社会中行事而作出一些怪事的人。现在指那些可以在电子和虚拟世界中非常有才华和想象力的发烧友。Geek宗教一般信仰科技或者颠覆科技。--chronmancer
问题四:为设计者而设计
在汽车工业中,你很难发现一个人既设计车辆引擎也设计车辆内饰:这需要完全不同的技能。没有人想要只是看起来可以跑得很快的引擎,同样也没有人想要做工出众但狭小且难看的车厢。基于同样的道理,在软件产业,用户界面(UI)往往不是由软件编程人员设计的。 但在 Linux 的世界却大不相同:一个项目往往是因个人的兴趣而产生。个人也包办了所有的工作,因此这些项目的界面往往缺乏了“用户友好” 的特性:用户对这个软件了如指掌,所以他也就不需要帮助文件等。vi 就是一个很好的例子,最初它的目标用户就是为那些了解它工作方式的人。因而设计者从来都没有想过如何用其他方式退出 vi ,所以新用户不得不靠重启计算机退出的事情时有发生。
但是,自由开源软件(FOSS,Free and Open Source Software)程序员与商用软件程序员的一个最重大区别在于, FOSS 程序员的作品都是他们自己想要使用的东西。这些作品新手用起来也许不舒服,但试想一下如果开发人员了解最终用户的需求,那这作品用起来一定很舒服。而实际情况确实如此,因为作者自己就是最终用户,他了解他自己(最终用户),因此该软件应该用起来很舒服。商用软件的程序员却大不相同,他们总是为其他人编写软件,而且这些用户都不是专家。
所以尽管 vi 拥有一个令新手望而生畏的界面,但它仍然在当今流行,这又归功于他的界面:当你熟悉后就会发现它原来无比强大。Firefox 也是被经常浏览网页的人编写出来的。GIMP 同样是出自经常处理图形文件的人之手。不胜枚举。
Linux 的界面对于新手而言同样的有些“难度”。尽管 vi 名声在外,但他仍然不在那些需要快速修改一些文件的新手的考虑之列。如果你在一个软件生命周期的早期使用它,打磨过的友好用户界面只会高挂在“计划”列表之上:主要功能肯定是先被实现的。没人先做个超级界面,再慢慢添加功能,程序员们都是先实现功能再不断改进界面。
所以,为了避免这个问题:你要么寻找那些以便于上手为目的而设计的软件,要么接受确实需要一个较长的磨合期来适应的软件。抱怨 vi 对新手不够友好只是舍本求末罢了。
问题五: “用户界面友好”的神话
在电脑世界里,“用户友好“指代非常广泛,甚至有一个不错的网络漫画就叫这个名字。但这个词却名不副实。
基本实现方法听起来似乎不错:软件的设计要从用户的想法和需要出发。实现的时候人们总是期望达到一个“最好”的界面,但事实并非想像的简单。
如果你一辈子都在做编辑文本文件的工作,理想的软件对你来说应当快速、强大,能让你以最少的操作来做最多的工作。简单的键盘快捷键和无需鼠标的操作将是最关键的需求。
但如果你很少编辑文本文件,只是要偶尔写一封信,那么你不会想着去学会那些键盘快捷键操作方法。排列有序的菜单和一目了然的工具栏图标就是你的理想环境。
很明显,你为第一个用户的需求所设计的软件并不适合与第二个用户,反之亦然。如此说来,若我们每个人都对软件有不一样的需求,那这些软件怎么能自称“用户友好”呢?
简单来说:“用户友好”这个叫法并不妥当,只能让复杂的情况看上去变得简单一点而已。
那么“用户友好”到底是什么意思呢?好吧,从那些使用这个词的文章中来看,“用户友好”的软件实际上意味着“该软件对那些以前从未使用这个软件的用户们来说也不是那么难上手”。这样一来,只要跟自己用过的软件长的像,不管它是不是真的好用,都可以叫做“用户友好”。
子问题 A: 熟悉的就是友好的
所以在大多数被认为“用户友好”的文字编辑 和文字处理的系统中,你的剪切和复制使用Ctrl+
X 和
Ctrl+
C 来完成,这完全不直观, 但是每个人都
习惯这些快捷键,所以这就被当作“友好的”快捷方式。
如果有人来到 vi 并且发现里面 D 是剪切,
P 是粘贴,这将被当成是不友好的:因为这不是大多数人习惯的方式。
但这是更好的方式吗? 明显是的。
如果使用Ctrl+
X的方法,你怎样从你当前正在编辑的文件中剪切一个单词?(没有鼠标的前提下!)
你必须从开头的字符开始,用Ctrl+
Shift+
→来选择单词.
然后Ctrl+
X把它剪切下来。
vi中的方式呢?用“dw”删除该单词即可。
如果要剪切 5个单词使用 Ctrl+
X 方式会出现什么情况呢?
从开头的单词开始:
Ctrl+
Shift+
→
Ctrl+
Shift+
→
Ctrl+
Shift+
→
Ctrl+
Shift+
→
Ctrl+
Shift+
→
Ctrl+
X
要使用5个动作
在 vi 中的情况呢?
d5w
vi 方式实际上更通用和也更直观 。“X” 和 “V” 并不是能够直观记忆“Cut”和 “Paste” 命令的,反之 “dw” 对于 “delete”(删除) 和 P 对于 “Put it
back”(贴回来) 更加直观,明显vi 是更好的。可是由于它不是大家所熟悉的,因此它被认为是不友好的。没有其他任何因素,纯粹的由于习惯使得 Windows 成为了更加友好的系统。根据问题一中我们得到的:Linux 有必要与 Windows 不同,因此不可避免,Linux 经常显得没有 Windows“友好”。
为了避免这个问题,你们要记住“友好”并不意味着习惯。试着用你的方式来做事,如果没有用的话,试着想想一个初学者会怎么做,然后你就知道了更简单的方法。
子问题 B:低效的就是友好的
这是一个可悲的但无法逃避的事实。似乎你把一个软件的功能埋的越深,它就看起来越友好。
这是因为友好性是通过在用户界面中使用简单、可视化的“线索”实现的——越多越好。毕竟,如果一个完全的计算机新手被放到一个所见即所得的字处理软件前并被要求把一些文本变成粗体,接下来很有可能:
他会认为 "Ctrl+B" 是通常的方法。
他会寻找线索,并尝试点击 "编辑" 菜单。如果不成功,他就会从接下来的一系列菜单中尝试比较像的那个:“格式”。新的菜单有一个看起来很有希望的“字体”选项。嗨!这里有我们想要的“粗体”选项。成功了!
下次你再做任何文字处理,都想试着通过菜单来完成每一件工作:不用快捷键,也不用工具栏图标。菜单就是一切。你会发现你比爬还慢,因为所有任务突然都需要大量击键/点击来完成。
这样使软件变得“用户友好”就像在自行车上装辅助轮一样:它让你能马上骑起来,不需要任何技巧和经验。这对一个初学者来说非常好。但是没有人会觉得所有的自行车都应该加上辅助轮销售。如果你今天得到这样的一辆自行车,我敢打赌你要做的第一件事就是除去这不必要的阻碍:一旦你知道怎样骑车了,辅助轮就没用了。
同样的道理,大量的 Linux 软件是设计成不带“辅助轮”(辅助工具)的——它是为已经有一些使用的基本技能的用户设计的。毕竟,没有人是永远的新手:无知是暂时的,知识是永远的。因此 Linux 软件其实是考虑到了用户中的多数的。
这听起来也许像是借口:毕竟,微软的 Word 有全部的友好菜单,并且有各种工具栏按钮, 而且有快捷键……它是世界上最棒的,对吗?既友好,又高效。
然而,我们必须透过表象看问题。首先,这个想法的可行性:让一个软件拥有菜单、工具栏、快捷方式等一切意味着大量的源代码编写,而没人为 Linux 开发者花费的时间付账;其次, 这样做依然没有真正考虑到那些高端用户:极少有专业的文字录入者使用微软的 Word。你见过哪个编程的人用 Word 吗?与此相比,想想有多少人用 emacs 和 vi。
为什么会这样?首先,这是因为正是某些“用户友好”的行为导致了低效:参看上面的“剪切和粘贴”的例子。其次,这还因为 Word 大部分的功能被放在了菜单里,因此你不得不使用菜单。只有某些最常见的功能可以作为按纽被放在屏幕上方的工具栏上。高级用户不得不花大量的时间来找到那些普通用户较少用到,但对高级用户来说依然很常用的的功能。
请记住,其实那些“辅助轮”在 Linux 软件中也同样有,通常作为可选的附加组件,尽管他们不是那么容易被发现,但实际通常都会有。
以 mplayer 播放器为例。你可以在终端输入 mplayer 视频文件名命令来播放视频文件。你可以使用方向键,PageUp、PageDown 键进行快进、后退等操作。这些可能还不能称之为完全的“用户友好”,但如果你在终端输入 gmplayer 视频文件名,你就会看到图形版的播放器,它同样拥有漂亮、友好的界面,熟悉的按钮。
再用从 CD 转换到 MP3(或 Ogg)为例:如果使用命令行, 你需要先使用 cdparanoia 命令把 CD 的内容录制为磁盘文件,然后你再需要一个编码器……这会是一个恶梦,就算你完完全全清楚如何使用 imho 包。所以,下载和安装 Grip 吧。这是一个容易使用的图形软件,自动的在背后使用 cdparanoia 命令和编码器,令你的转换过程变得简单,甚至支持 CDDB,能自动为你的档案命名。
同样发生在抓取 DVD 上:选择正确的编码是一场噩梦。但是使用 dvd::rip 软件,可以在一个任何人都能操作自如的图形界面中来完成整个编码过程。
因此避免这个问题:要记住“辅助轮”(辅助工具)仅作为 Linux 的扩展,而不是自动跟着主程序安装的。而且有时,“辅助轮”还不成为设计的一部分。
问题六:模仿 vs. 趋同
当人们发现 Linux 不是他们想要的 Windows 复制品时,经常争论一件事,就是坚持认为 Linux 一诞生,这(不成为Windows复制品)就是(或应该是)其努力的方向,而且那些不明白这一点的人错误地努力使 Linux 更像 Windows。由于这一点,他们展开激烈的争论:
Linux 已经从命令行时代进入了图形界面时代,这明显是在学 Windows。
不错的理论,但却是错误的:最初的 X 窗囗化系统(见附录)是于1984年发布,继承自1983年移植到 Unix 上的 W 窗口化系统。而 Windows 1.0 是在1985年才发布的。Windows 在1990年发布第三版之前并没有做大——那时,X 窗口化系统已经演化成我们今天使用的 X11 版本好几年了。Linux 在1991年才开始,所以 Linux 没有开发一个 GUI(图形用户界面)来模仿 Windows:它只是使用了一个在 Windows 出现之前就已经存在的 GUI。
Windows 3 的续作 Windows 95,带来了图形界面的革命性变化。在这以后很多年,微软都没能作出与此类似的创举。Windows 95 带来了多项创新的特性:拖放功能、任务栏等等。因而 Linux 借鉴了这些东西。
事实上……不是这样的。上述所有的特性在微软使用前就已经出现了。例如,NeXTSTeP(见附录介绍)是一个非常先进的图形用户界面(就当时而言),它明显早于 Win95 ──1989年发布了第一版,1995年发布了最后一版。
好吧,好吧,这样看来我们熟悉的“Windows 界面”,其实其中的元素并不是微软自己创造的。但它还是创造了一种整体界面,Linux 从那时起尝试模仿它。
为了反驳这一条,我们来讨论一下“趋同进化”的概念。它说的是:两个不同的、各自独立的系统随着时间的推移会逐渐变得类似。这种现象经常发生在生物学领域。举例来说:鲨鱼和海豚,他们都有着类似的背鳍、胸鳍和尾鳍,以及同样的流线型外形。
但是,鲨鱼是由鱼进化而来的,而海豚则是由陆地上某种四条腿的哺乳动物进化而来的。他们拥有类似外形,是由于他们都生活在同样的海洋环境中,他们必须朝最大效率适应海洋环境的方向进化。实际上不会有一幕这样的场景:未进化的海豚(相对的后来者)看到鲨鱼以后就开始想“哇,看看鲨鱼的鳍,它们非常有用。我也要这样进化一套自己的鳍!”
同样,如果先看早期的 Linux 桌面、FVWM 和 TWM 以及许多简陋的 GUI(图形用户界面),然后再看看今天的 Linux 桌面、Gnome 和 KDE,以及它们带有的任务栏、菜单、视觉效果。是的,不得不说现在的 Linux 比早期的更像 Windows 了。
另一方面,Windows也同样如此;我印象中 Windows 3.0 没有任务栏。那么开始菜单呢?什么是开始菜单?
Linux 过去没有任何桌面像今天的 Windows,微软过去也没有(一个像今天的 Windows 的桌面)。现在他们都有了,这说明什么问题呢?
这说明来自两个阵营的开发人员都在寻找提升GUI(图形用户界面)性能的方法,但是解决相同的问题可供选择的方法并不多,他们难免会使用类似的方法。类似并不能说明或暗指一方在模仿另一方。记住这一点,你就不会受到这个问题的困扰了。
问题七:FOSS──自由和开源
问题要来了。自由和开源是整个事情中一个很有意思并且相当重要,但却不是根本的部分。但是对于一些人看来,不过对于开源软件和专有软件之间的区别这个问题,对一些人来说实在是有些太宽泛而难以理解的。
我已经举了一些例子,人们认为他们有权要求技术支持和他们的东西。但是事实并不是这样。
微软的使命是“A computer on every desktop(让每个桌面上都有电脑)”——他们没有说出口的是每台电脑都运行着 Windows 。微软和苹果公司都销售操作系统,都尽他们最大的努力来保证尽可能多的人使用他们的产品:他们是来做生意,要赚钱的。
然而看看FOSS,直至今天,几乎完全是非商业性质的。
当你发电子邮件告诉我,Red Hat、Suse、Linspire ……是的,我知道他们在“销售” Linux。我知道他们都希望 Linux 被广泛的采用,特别是他们自己的版本。但是不要混淆提供商和制造商。Linux 内核不是被某个公司制造,不是由靠它获利的人来维护它。GNU 软件不是被某个公司制造,同样也不是由靠它们获利的人来维护。X11 视窗系统……好,当前最流行的实现方案是 xorg,“.org”的名字应该能告诉你想知道的(注:.org为非盈利组织)。桌面软件:好的。你提出一个例子,比如 KDE ,由于其基于的 Qt 是商业化的。(译者注:现在 Qt 已经不是商业化的了,是双重授权)。但是 Gnome、Fluxbox、Enlightenment 等等,都是非盈利的。确实有人销售 Linux,但是那只是极少数。
私有软件最终用户数量的增加可以直接变为制作公司的直接经济效益。对于 FOSS来说,并不是这样,使用人数的增加并不会产生直接的收益。非直接收益当然是有的:个人的自豪,更多发现 Bug(错误)的机会,更多可能得吸引新的开发者,可能有机会得到个好的工作,等等。
但是 Linus Torvalds( Linux 的创始人)并没有因 Linux 用户的增加而赚钱。Richard Stallman( GNU 创始人)也没有从 GNU 用户的增长中获利。所有运行 OpenBSD 和 OpenSSH 的服务器也没有放一分钱到 OpenBSD 项目的口袋中去。因此我们来到了在 Linux 和新用户之间最大的问题:
他们发现,他们不是 Linux 制造商请来的。
来到 Linux 之前,这些新用户使用的操作系统当中,最终用户的需求至高无上的,并且“用户友好性”和“以用户为中心” 被认为是第一位的。他们突然发现他们自己将要使用的操作系统仍然依赖于“man”文档、命令行、手动编辑的配置文件和 Google。而且当他们抱怨时,还没得到全方位的服务,也没得到什么承诺:被直接拒之门外。
当然是有些夸张了。但是确实,很多人像这样,以自己熟悉的方式来试着尝试 Linux,却遭到了失败。
从另一方面来说,FOSS 事实上是一种非常自私的发展方法:人们想工作的时候才工作,并且只做他们想做的工作。大部分人都不认为让 Linux 增加一些对没有经验的用户的吸引力有任何的必要:Linux 已经能做他们(设计者)想要它做的事情了,别人如果用不来,他们为何要在意呢?
FOSS 和 Internet 自身有很多相似的地方:你不需要付钱给一个网页(软件)的作者,就可以去下载和阅读(安装)它。对于已经有了宽带网(知道如何使用软件)的人们来说,全民安宽带(用户友好的界面)没什么吸引力。博客主人(软件开发者)不需要很多的读者(用户)来作为动力以继续写博客(编写软件)。 确实有许多人从中赚到许多钱,但不是靠通常的大多数生意的规矩:“这是我的,如果你想要,请付钱”;它是靠提供技术支持(电子商务)的服务来赚钱。
Linux 对市场份额不感兴趣。Linux 也没有客户。Linux 没有股东,也没有盈利的责任。Linux 不是为了赚钱而创造的。Linux 的目标不是成为地球上最流行和最普及的操作系统。
Linux 社区想要的是一种真正品质优良、充满特色、自由的操作系统。如果这使 Linux 最终成为一种非常流行的操作系统,那么非常好。如果这使 Linux 最终拥有直观的、用户友好的界面,那么也非常好。如果这使 Linux 最终成为一个数十亿美元的产业,那也非常好。
这仅仅是很好,但不是重点。重点是,让 Linux 成为社区能力范围之内的最好的操作系统。不是为了别人:为了社区自己。如此普遍关于“除非 Linux 如此这样,否则永远不会占领桌面”的威胁论是不恰当的:Linux 社区没有尝试占领桌面。他们完全不关心它是否能够好到进驻你这个新用户的桌面上,只要在他们自己的桌面上运行的够好就行了。 高呼憎恨微软的人,深度Linux 的狂热者,靠FOSS赚钱的人或许会在这里站出来说两句,但他们仍然只是少数。
这就是 Linux 社区的目标:一种能够被任何想要它的人安装的操作系统。所以如果你在考虑转向 Linux。首先,问你自己,什么是你真正想要的。
如果你想要一种操作系统,就像一辆汽车,没有雇来的司机,给你把钥匙,让你自己做在驾驶员的位置上,并且希望你知道该做什么:用 Linux吧。你得花些时间去学习如何使用它,但是一旦你学会了,你将拥有一个让人着迷的操作系统。
如果你只是想要没有恶意软件和安全问题的 Windows:阅读一些安全方面的资料,安装好的防火墙,恶意软件检测工具和杀毒软件;用一个更安全的浏览器替换 IE ;保持安装最新的安全更新。有人(包括我自己)使用 Windows 从 3.1 到 XP,从来不曾被病毒或者恶意软件感染,你也能做到。不要用 Linux,它不会成为你想要它的那个样子。
如果你想要一种基于 Unix 的操作系统的安全性和性能,以及客户至上和世界著名的界面:购买苹果公司的 Mac 电脑。Mac OS X是不错的。但是不要用 Linux:它不会做你想要它做的。(译者注:目前 Linux 上的 Compiz 已经成为最花哨的窗口管理器了。)
问题不仅仅是“为什么我想要 Linux?”。还有“为什么 Linux 想要我?”