答疑解惑:Linux与Windows的那些事儿(2)

  1. 云栖社区>
  2. 博客>
  3. 正文

答疑解惑:Linux与Windows的那些事儿(2)

技术小胖子 2017-11-09 21:13:00 浏览546
展开阅读全文

矛盾四: 为设计者而设计
  在汽车工业中,你很难发现一个人即设计车辆引擎也设计车辆内饰:这些是完全不同的技能。没有人想要只是看起来可以跑得很快的引擎,同样也没有人想要一个做工出众但狭小且肮脏的内饰。基于同样的道理,在软件产业,用户界面(UI)往往不是由软件编程人员设计的。
  但在 Linux的世界却大不相同:一个项目往往是因个人的兴趣而产生。个人也包办了所有的工作,因此这些项目的界面往往缺乏了“用户友好”的特性:用户对这个软件了如指掌,所以他也就不需要了帮助文件等。vi就是一个很好的例子,最初它的目标用户就是为那些了解它工作方式的人。因而设计者从来都没有想过如何用其他方式退出vi,所以新用户不得不靠重启计算机退出的事情时有发生。
  但是,自由开源软件(FOSS)程序员与商用软件程序员的一个最重大区别在于,FOSS程序员的作品都是他们自己想要使用的东西。因此当作品不能被新用户“舒适”使用的同时,它又成为了最终用户最需要的东西:因为作者也是最终用的一员。商用软件的程序员却大不相同,他们总是为其他人编写软件,而且这些用户都不是专家。
  所尽管vi 拥有拥有一个令新手望而生畏的界面,但它仍然在当今流行,这又归功于他的界面:当你熟悉後就会发现它原来无比强大。Firefox也是被经常浏览网页的人编写出来的。Gimp 同样是出自经常处理图形文件的人之手。不胜枚举。
  Linux的界面对于新手而言同样的有些“难度”。尽管vi名声在外,但他仍然不在那些需要快速修改一些文件的新手的考虑之列。如果你在一个软件生命周期的早期使用它,光鲜亮丽且友善的用户界面永远只高挂在“计划”列表之上:功能优先。没有人先雇好装修队再去找楼盘,程序员们都是实现功能再不断改进界面。
  所以,为了避免这个问题:寻找那些已便于上手为目的设计的软件,或者接受那些与你使用习惯急剧不同的软件。抱怨vi 对新手不够友好只是舍本求末罢了。
  矛盾五: “用户友好”的神话
  在电脑世界里,“用户友好“是一个十分广泛的专有名词。甚至有一个网络笑话就叫这个名字。但这个词却名不副实。
  基本实现方法听起来似乎不错:软件的设计要从用户的想法和需要出发。这个方法一直都被认为是单一的实现办法,但事实并非如此。
  如果你一辈子都在进行文书处理的工作,理想的软件对你来说就是个快捷强大、能让你投入最小的精力来实现最大的工作效率的文字处理软件。简单的键盘快捷键和无须鼠标的操作将是最基本的需求。
  但如果你很少做字处理的工作,你只是要写一封普通的信,那么你不会想着去学会那些键盘快捷键操作方法。排列有序的菜单和一目了然的工具栏图标就是你的理想环境。
  很明显,你为某个用户的需求所设计的软件可能对其他的用户来说并不合适。如此说来,若我们每个人都对软件有不一样的需求,那这些软件怎么能自称“用户友好”呢?
  简单来说:“用户友好”并非事实,只是为了让复杂的情况看上去变得简单一点而已。
  那么“用户友好”到底是什么意思呢?好吧,从那些使用这个词的文章中来看,“用户友好”的软件实际上意味着“该软件对那些以前从未使用这个软件的用户们来说也不是那么难上手”。这就使得那些看上去用户界面都差不多的软件都被归类为“用户友好”。


子问题 A: 熟悉的就是友好的
  所以在大多数被认为“用户友好”的文字编辑和文字处理的系统中,你的剪切和复制使用“Ctrl+X”和“Ctrl+V”来完成,这完全不直观,但是每个人都习惯这些快捷键,所以他们把这当作“友好的”快捷方式。
  如果有人使用vi 并且发现里面“d”是剪切,“p”是复制,这将被当成是不友好的:因为这不是大多数人习惯的方式。
  但这是更好的方式吗? 明显是的。
  如果使用“Ctrl+X”的方法,你怎样从你当前正在编辑的文件中剪切一个单词?(没有鼠标的前提下!)
  你必须从开头的字符开始,用“ Ctrl+Shift+Right”来选择单词.
  然後“Ctrl+X”把它剪切下来。
  vi中的方式呢?“dw”就是删除单词的意思。
  如果要剪切 5个单词使用“Ctrl+X”方式会出现什么情况呢?
  从开头的单词开始:
  “Ctrl+Shift+Right”
  “Ctrl+Shift+Right”
  “Ctrl+Shift+Right”
  “Ctrl+Shift+Right”
  “Ctrl+Shift+Right”
  “Ctrl+X“
  要使用5个动作
  在vi 中的情况呢?
  d5w
  vi 方式具有更好的功能性和直观性。“X”和“V”并不是能够直观记忆“Cut”和“Paste”命令的,反之“dw”对于“delete”和“p”对于“Paste”更加直观,相对于“X”和“V”方面,vi明显是更好的。可是由于她不是大家所熟悉的,因此她被认为是不友好的。并不是因为其他的原因,纯粹的习惯因素使得Windows成为了更加友好的系统。因此我们要学习问题一:Linux和 Windows 完全不一样。告诉大家:不可避免,Linux经常显得没有 Windows “友好”。
  为了避免这个问题,你们要记住“友好”并不意味着习惯,试着用你的方式来做事,如果没有用的话,试着想想一个初学者会怎么做,然後你就知道了更简单的方法。
  子问题 B: 低效的就是友好的
  这是一个可悲的但无法逃避的事实。似乎你越想提高一个程序的功能性,它就看起来越友好。
  这是因为友好性是通过在用户界面中使用简单、可视化的“线索”实现的——越多越好。毕竟,如果一个完全的计算机新手被放到一个所见即所得的字处理软件前并被要求把一些文本变成粗体,接下来很有可能:他会认为"Ctrl+B"是通常的方法。
  他会寻找线索,并尝试点击"编辑"菜单。如果不成功,他就会从接下来的一系列菜单中尝试比较像的那个:“格式”。新的菜单有一个看起来很有希望的“字体”选项。嗨!这里有我们想要的“粗体”选项。成功了!
  下次你再做任何文字处理,都想试着通过菜单来完成每一件工作:不用快捷键,也不用工具栏图标。菜单就是一切。当任务突然需要大量按键和鼠标点击时,你会发现你比爬还慢。
  这样使软件变得“用户友好”就像在自行车上装辅助轮一样:它让你能马上骑起来起来,不需要任何技巧和经验。这对一个初学者来说是完美的。但是没有人会觉得所有的自行车都应该加上辅助轮销售。如果你今天得到这样的一辆自行车,我敢打赌你要做的第一件事就是除去这不必要的阻碍:一旦你知道怎样骑车了,辅助轮就没用了。
  同样的道理,大量的 Linux软件是设计成不带“辅助轮”(辅助工具)的——它是为已经有一些使用的基本技能的用户设计的。毕竟,没有人是永远的新手:无知是短命的,知识是永远的。因此 Linux软件是以大量的知识为前提设计的。
  这听起来也许像是借口:毕竟,MS Word(微软的Word)有全部的友好菜单,并且有各种工具栏按钮,而且有快捷键……它是世界上最棒的。真的吗?友好且有效的。
  然而,我们必须透过表象看问题。首先,这个想法的可行性:让一个软件拥有菜单、工具栏、快捷方式等一切意味着大量的源代码编写,而没人为 Linux开发者花费的时间付帐;其次,这样做依然没有真正考虑到那些高端用户;极少有专业的文字录入者使用MS Word。你见过哪个编程的人用 MSWord 吗?与此相比,想想有多少人用 emacs 和vi。
  为什么会这样?首先,这是因为某些“用户友好”的行为会导致低效:参看上面的“剪切和粘贴”的例子。其次,这还因为 Word大部分的功能被放在了菜单里,因此你不得不使用菜单。只有某些最常见的功能可以作为按纽被放在界面的工具栏上。高级用户不得不花大量的时间来找到那些较少用道,但对高级用户来说依然很常用的的功能。
  另外请记住,不管怎样,那些“辅助轮”在 Linux软件中也同样有,尽管他们不是那么容易被发现,但实际在 Linux中通常都会有。
  以 mplayer 播放器为例。你可以在终端输入 mplayer视频文件名命令来播放视频文件。你可以使用方向键,PageUp、PageDown键进行快进、后退等操作.这些可能还不能称之为完全的“用户友好”,但如果你在终端输入 gmplayer 视频文件名,你就会看到图形版的播放器,它同样拥有漂亮、友好的界面,熟悉的按钮。
  再用从 CD 转换到 MP3(或 Ogg)为例: 如果使用命令行,你需要先使用 cdparanoia命令。然后你再需要一个编码器……这会是一个恶梦,就算你完完全全清楚如何使用(imho)包。所以,下载和安装Grip吧。这是一个容易使用的图形软件,自动的在背后使用 cdparanoia 命令和编码器,令你的转换过程变得简单,甚至支持CDDB,能自动为你的档案命名。
  同样发生在抓取DVD上:选择正确的编码是一场噩梦。但是使用dvd::rip软件,可以在一个任何人都能操作自如的图形界面来完成整个编码过程。
  因此避免这个问题:要记住“辅助轮”(辅助工具)仅作为Linux的扩展,而不是由主程序自动提供的。而且有时,“辅助轮”还不成为设计的一部分。


矛盾六:模仿VS汇合
  当人们发现 Linux不是他们想要的 Windows 复制品时,经常争论一件事,就是坚持认为 Linux一诞生,这就是(或应该是)其努力的方向,而且那些不明白这一点的人错误地帮助,使 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从那时起尝试模仿它。
  为了揭穿这些,我们可以引用一个经常被讨论的说法:趋同现象。它说的是:两个不同的、各自独立的系统随着时间的推移会逐渐变得类似。这种现象经常发生在生物学领域。举例来说:鲨鱼和海豚,他们都有着类似的背鳍、胸鳍和尾鳍,以及同样的流线型外形。
  但是,鲨鱼是由鱼进化而来的,而海豚则是由陆地上的哺乳动物进化而来的。他们拥有类似外形是由于他们都生活在同样的海洋环境中,他们必须朝最大效率适应海洋环境的方向进化。实际上不会有一幕这样的场景:未进化的海豚看到鲨鱼以後就开始想“Wow,看看鲨鱼的鳍,它们非常有用。我也要这样进化一套自己的鳍!”
  同样,如果先看早期的 Linux桌面、FVWM 和 TWM 以及许多简陋的 GUI(图形用户界面),然后再看看今天的 Linux桌面、Gnome 和 KDE,以及它们带有的任务栏、菜单、视觉效果。是的,不得不说现在的 Linux比早期的更像 Windows 了。
  另一方面,Windows也同样如此;我印象中 Windows 3.0 没有任务栏。那么开始菜单呢?什么是开始菜单?
  Linux过去没有任何桌面像今天的 Windows,微软过去也没有。现在他们都有了,这说明什么问题呢?
  这说明两个开发阵营的成员都在寻找提升GUI(图形用户界面)性能的方法,但是解决相同的问题可供选择的方法并不多,他们难免会使用类似的方法。类似并不能说明或暗指一方在模仿另一方。记住这一点,你就不会受到这个问题的困扰了。


 矛盾七:那些FOSS(自由和开源软件)的事
  噢,这导致了问题。非本质的:自由和开源的软件是整个事情中一个极好的和很重要的部分。但是对于一些人看来,理解 FOSS(自由和开源软件)和私有软件之间的不同是一个巨大的改变。
  我已经提醒了一些事实,人们认为他们需要并喜欢技术支持。但是事实往往离得很远。
  微软的使命声明是“A computer on every desktop(每个电脑都需要桌面)”——不言而喻,每一台计算机应该运行 Windows。微软和苹果公司都销售操作系统,都尽他们最大的努力来保证大多数的人们使用他们的产品:他们是企业,为了赚钱。
  并且FOSS(自由和开源软件)也在那里,甚至今天,几乎都是非商业的。
  当你发电子邮件告诉我,Red Hat、Suse、Linspire 和所有Linux发行版:是的,我知道他们在“销售” 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,他们曾经使用一种操作系统,那时,最终用户的需求至高无上的,并且“用户友好性”和“以用户为中心”被认为是第一位的。并且他们突然发现他们自己将要使用的操作系统:仍然依赖于‘man’文档,命令行,手动编辑配置文档和Google。并且当他们抱怨时,他们没有获得悉心照顾或者承诺的更好的东西:他们屡屡碰壁。
  当然,夸大其词了。有许多人尝试去转换到 Linux但是失败了。
  从另一方面来说,FOSS(自由和开源软件)事实上是一个非常自我的发展方法:仅当人们想工作的时候才工作,仅工作于他们想工作的东西。大部分人们没有看到任何的需求,让 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 OSX是不错的。但是不要用 Linux:它不会做你想要它做的那样。(译者注:据个人观察,现在Linux界面已经接近或者超越Mac OS X。)

  这不仅是关于“为什么我想要 Linux?”。也是关于“为什么Linux想要我?”







     本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1360628,如需转载请自行联系原作者




网友评论

登录后评论
0/500
评论
技术小胖子
+ 关注