Ⅰ Linus vs.Gnome:我是怎么选择linux桌面环境的
这篇文章使我回想起我的窗口管理器/桌面环境的切换历程, 我用 linux 至今至少 7 年, 而长期使用 (每日绝大部分使用电脑时间) 也有三年半. 用过了好些著名的桌面环境: FVWM, KDE, GNOME, XFCE, 还有其他短期使用的不知名的咚咚. 一开始我使用的是 FVWM, 因为当时有资料说有个 FVWM95 能作出 windows 一样的界面, 我竟然真的成功地配置好除中文外的所有东西, 使用起 FVWM. 但是我当时完全是按 windows 的思维使用这东西的, 当然处处碰壁, 痛苦无比. 接着使用的 ``真正能用'' 的是 KDE. 那时 KDE 已经相当完善, 整个架子跟现在相去不远. 提供的功能以及可定制性已经比当时的 windows 还好, 而且还有一大堆小游戏可玩. 记忆中我是在一个叫 winlinux 的发行版上使用它的, 记忆中它的唯一问题是中文 --- 只要设成中文界面, 全部乱码, 我猜那时候只要我弄个中文字体进去, 一切就完美了, 可惜那时我还不会. 当时 (2000 年前后) 的 GNOME 在我眼里还是只丑小鸭, 一点都不起眼. 后来准备上大学的时候在新机器上用的是经典中的经典: Redhat 9. redhat 的推荐/默认桌面环境是 gnome, 但我还是选择我我熟悉的 KDE. 安装过程中对 GNOME 和 KDE 的介绍刻意地保持一模一样, 我也去尝试过 GNOME, 在 Redhat 的刻意包装下, 初始使用感觉, GNOME 跟 KDE 其实没啥差别. 那我更不会作 switch, 一直使用这 KDE. 很多人说 KDE 是 windows style 的, GNOME 是 mac style 的, 确实有一定的道理. KDE 并非刻意模仿 windows 的用户界面和使用风格, 而是走着一条和 windows 一样的路: 不断地追求功能强大, 设置丰富, 让系统显得更加强大, 以吸引用户. 我很喜欢它的文件管理器 konqueror, 它确实比 windows 的 explore 还强大, 功能让我眼花缭乱, 一个让我非常着迷的特性是当你将一个文件拖动到一个文件夹时, 它会非常 ``人性化'' 地询问, 你是想移动到这里, 复制到这里, 还是做个符号链接? 我觉得这做得很细致贴心, 在数年之后, 在我成为系统维护, 不断强迫自己以大部分用户而不是仅以自己的角度思考用户界面的时候, 我才发现它的问题所在. 我就这样用 KDE 用了很久, 到后来王垠向我们介绍了FVWM --- 我对这东西有阴影, 总觉得它是上个世纪刚用 linux 的那个黑暗时代的痛苦根源. 但王垠的介绍确实很诱人: 速度(KDE确实越来越慢了), 完全可定制的键盘快捷键等 (后来版本的 KDE 也有了这个功能) 都是我需要的, 那时候我也不那么惧怕写配置文件了, 下载了王垠自己的配置文件, 改一改, 附上个 KDE 的 panel, 上手后确实比 KDE 用的要方便. 之后的一段时间我热衷于FVWM配置. FVWM 仅仅是一个窗口管理器, 除了基本的窗口管理外, 几乎什么都不提供(除非使用那些不怎么好用的模块), 你可以用各种各样的外部小程序去武装它, 将它弄得非常强大. (其实 GNOME 也是这么武装起来的, GNOME 核心的窗口管理器, 现在是 metacity). UNIX 系统的开放性使这种砌积木的工作简单而有趣. 到最后, 我的桌面无比强大和花哨, 窗口最小化之后会有缩略图, 像 MacOSX 一样, 而且是以我喜欢的方式而不是 mac 的方式排列的, 也是我用过的最顺手的桌面 (当然了, 完全是我一点一点写出来的), 我也在这个时候养成了一切事情用键盘快捷键而不用鼠标的习惯, 一般人根本不敢碰我的键盘, 不知道一不小心又会触发什么. FVWM 有 FVWM 的问题, 它过于灵活, 过于强大, 你似乎是在自己买来一堆零件, 然后以天才的工程思维拼凑自己专用的机器, 这样 1) 这种事其实没几个人能做 2) 即使对工程天才, 这也是件费神的事 3) 总有一天你会厌倦的. 你换个桌面要先做个格式转换, 然后爬去改配置文件, 你不小心升级了某个部件, 发现使用不正常了, 你要自己去检查所有的 log 和配置, 找出问题所在. 这令我非常头痛, 但我实在无法舍弃这精心配置出来的顺手无比的环境, 但是用得越久, 这个问题就越严重, 直到某一天无法承受. 我想起 Ken Thompson 评论 UNIX 牌汽车 (UNIX Haters Handbook 里面的笑话): 有经验的用户知道这是怎么回事. 是的, 我知道怎么回事, 但是即使是天才汽车工程师也不愿骑着一个发动机加自己设计的传动部件满街跑, 他也希望开一台舒服的自动档汽车. 我的机器在使用 FVWM 的同时, 我家里的机器用的是 XFCE. 因为家里的机器台烂, 跑 KDE 已经有点吃力, 而将 FVWM 的配置和它要使用的那一堆小部件一起移到家里的机器上, 是几乎不可能的. XFCE 是一个轻便的桌面环境, 也有相当的可配置性, 我也在不久之后找到了如何配置快捷键启动程序, 但 XFCE 也有一些我无法理解的地方 --- 为什么快捷键最多只能设置十个? 以我自己的经验, 这其中不应存在太多技术问题 (用一个 16bit 的咚咚去标识一个功能可以用哪些快捷键启动?), 既然允许设置快捷键, 为什么不允许设置更多? 是的, 普通用户可能根本用不上这 10 个快捷键, 但是允许设置更多快捷键的能力并不会影响普通用户的正常使用, 那为什么要做这个限制呢? 类似的问题还有很多. 另外 XFCE 对普通用户的一些习惯做了颠覆, 比如不可以放置桌面图标 (4.2 之前的版本), 是的, XWINDOW 传统习惯中, 最小化一个程序叫 iconfy, 将程序缩成桌面上的图标, 桌面上当然也不能放其他东西 (这也是 win 3.x 时代的习惯, 是否也是 mac 的习惯? 未调查过), 但是, XFCE 的程序最小化是放到任务栏的, 桌面会空无一物, 却依然不允许放桌面图标. 对于这种半吊子事情, 我们知道它的渊源, 也可以马马虎虎对付过去, 但对其他普通用户来说, 它会失去一个很有效率的功能 --- 这不是一个能用 ``不同的系统, 不同的操作习惯'' 就能解释的问题, XFCE 因为这个缺乏了一个能快速访问频繁使用的文档的能力, 你找不到替代品. 但 XFCE 还不失为一个好的桌面环境, 因为它快, 使用简单, 能满足普通用户的基本要求, 然后....... 就没有了. 这样的话, 它可能是一个很好的替代品 (替代 GNOME), 却很难让人喜欢它, 将它作为第一选择. 说回我的机器, FVWM 实在用不下去了, 为了让 FVWM 保持正常, 我强制了好些组件不去更新, 凑合着过. 到最后我终于换回了 KDE, 此时我也发现了 KDE 也有设置程序启动快捷键的功能, 经过一天的配置, 我换回了 KDE. 顺便说以下这个设置启动快捷键功能的 bug, 你要在菜单栏里设置某个菜单项的启动键, 之后, 如果你把这个菜单项删掉, 你就永远也不能用这个启动键了, 你得到配置目录的某个深处, 手动删掉文件中的某几行才能恢复正常. 是的, 我知道问题所在, 也知道怎么弄好它, 但这种``小''问题让我非常恼火. 长期使用配置文件来配置环境, 用 KDE 图形化的控制中心, 我反而有点不知所措了. 我也第一次了解到 KDE ``强大'' 的代价, KDE 的配置中心使用了一个树型的配置列表, 可以调整几乎一切配置. 但是, 我想调整一个鼠标是单击打开文件还是双击打开, 我不知道是在 ``窗口行为'' 里, ``桌面'' 里, ``附加设备'' 的 ``鼠标'' 里做这个设置. 如果我想设置 KDE 像 mac 一样把菜单栏显示在桌面顶端, 我不知道这是属于 ``外观'', ``桌面'' 还是 ``窗口行为''. 就这样, 我要设置任何东西, 找个半天, 看得头昏眼花. 这时候我也对 KDE 的一些 ``贴心'' 设计产生怀疑. 如文章开始时说的文件移动问题. 我重新思考这个问题是因为 BBS 的一位站务希望 BBS 有某个新功能, 我拒绝了, 因为加入了这个功能会使用户产生迷惑, 在解释时我就想到了 KDE 的这个例子: drag-and-drop 来源于实际生活中的移动物体, 把一个文件移到别处, 可以用 drag-and-drop, 就像实际生活中那样简便地完成. 在实际生活中, 移动东西就是移动东西, 这个语义是非常明确的, 而 KDE 在用 drag-and-drop 移动文件时, 反而会问你: 你要复制它, 移动它还是建立链接? 用户会迷惑, 而且会不耐烦: 我都已经这么移了, 你说我除了移动文件还想干嘛? 再说, 在实际生活中, 如果你把电脑挪个窝, 你就有两台电脑, 看你会不会疯掉! 这就是这些所谓 ``贴心'' 设计的问题, 它的这些功能纯属画蛇添足, 跟 windows 那些毫无营养的对话确认有一拼. 这可以参考关于用 winxp 武装的厕所等笑话, 可是令人惊讶的是, vista 把这些毫无营养的对话, 自作聪明的 ``贴心功能'' 发挥到极致, 据说 KDE 的这种特性也出现在 vista 上了. 在这里衷心祝愿 KDE 不要再跟 vista 学坏了..... KDE 在技术上一直高歌猛进, KDE 4.0 有许多让人激动不已的新特性. 在很久以前, 在某个对 KDE 开发者的访谈中谈到 KDE 4.0 是否会加入桌面搜索特性, 并举出其他竞争者的努力, 我记下了开发者的这样的话(抱歉我很懒, 没有去找原文, 迟些补上): 现在的问题并不是我们要怎么去搜索文件, 而是改变我们的文件存储和表达方式, 让信息更容易组织和查找. 从此足可见 KDE 开发者在技术上的独到眼光. KDE 4.0 的一些特性, 比如 native 的矢量图形支持等, 都是革命性的, KDE 4.0 实在值得期待. 但也希望 KDE 能够下力气去做好技术上没啥难度的提升用户体验的工作, 技术上再激动人心, 也就是我们这些 geeks 知道而已. 可是, 我们得知道, 通常来说, GNOME 这样的软件, 其目标用户不是我, 更不是 Linus. 它的目标用户讨厌使用键盘操作, 不可能记忆那么多快捷键; 它的用户都用普通的三键鼠标, 也觉得右键菜单很有用, 并且不知道中键有什么用 --- 我也想知道 Linus 同学对 mac 只有一个键的鼠标的评价, 哈哈. 所以 Gnome 根本用不着为我们设计这些东西. Gnome 对普通用户来说, 已经做得很好了. 它在很多地方学习了 MacOS, 甚至有的界面是完全一样的. 它并不提供很多的选项, 但对已经受够了 KDE 的控制中心的我来说, 觉得它倒是恰到好处. 比之复杂而且强大的 KDE 来说, Gnome 走的是另一条路: 越来越简单, 功能满足普通人需要即可, 但幸好它比 XFCE 要强大和丰富, 不至于走向极端. 功能和配置的简单也有它的问题, 用户有时候无法做更细致的调整了. 比如想要模拟 Mac 机, 换上主题后, 在 gnome 的配置界面里你是无法调整窗口按钮的位置的 --- 而这个功能在 XFCE 和 KDE 中都能直接完成. 你得使用一个类似 windows 中注册表编辑器的 gconf-edit, 找到那个选项, 手动调整. 这是一种很常用的同时满足普通人群和高级人群的做法: 把简单常用的东西摆在前台, 让 geeks 到后台去造它们奇怪的机器去吧. 这其实也跟 windows 常见的 ``Advanced >>'' 按钮一个道理. 但我总还觉得这个办法并不完全合适, 即使别人用不着, 我也想有个工具能舒舒服服地摆弄我的设置, 而不用去对付那个选项编辑器. 即使别人用不着, 我也希望它有某些更强大的功能. 我觉得一个可参考的例子是 firefox, firefox 的魅力在它的插件. firefox 提供基本的网页浏览功能, 用插件的方式支持其他许多奇怪的功能. 普通用户用着基本的浏览器, 高级用户 --- 或者我们应该避开这个说法, 应该说是有特殊要求的用户, 他们不一定精通电脑 --- 也不需经历痛苦就能获得扩展的高级功能. 譬如 Fasterfox 插件只是去调整一些细微的选项, 如果你愿意, 你可以自己在 about:config 中调整这些选项的. 但 Fasterfox 令这个过程变得简单, 使有这样需求的用户都能轻易地完成, 这使它成为最有价值的插件之一. Gnome 在功能和配置上, 也可以提供一个最简单的基本系统和基本配置, 并留足可扩展的接口, 让各种各样的扩展插件去完成高级功能. 而 Gnome 现在似乎还没有一个可与 firefox 相比的插件支持系统. Gnome 的操作也极尽简单, 直接, 当然不会有 KDE 那种让人迷惑的问题. 但电脑毕竟很笨, 你的操作太简单, 它有时候不明白. 比如: 把光盘目录中的某个文件拖放到硬盘, Gnome 当然知道你这时是要复制文件而不是移动(因为移动是不可能的), 它也确实是这么做的. 在 U 盘目录中做同样的事情, Gnome 也认为是复制 --- 是啊, U 盘是移动存储空间, 用来交换文件, 我这么一个拖放不能把原来的给删了啊? 很好, 但已经觉得有点问题的苗头了. 现在, 你把硬盘上一个分区的东西拖放到另一个分区上, 它给你做的是复制! UNIX 的分区 mount 机制本来是非常美妙的, 给它这么一弄就很倒胃口了. 我们知道这时什么原因. 但普通用户呢? 它甚至不能像在 windows 一样看出两个目录在不同的分区, 他的观感就是: 同一个操作, 移到不同的目录会有完全不同的结果, 这样的一个系统是根本无法接受的. 那解决方法呢? 不同分区移动的时候询问用户到底想干嘛? 这会比 KDE 更糟, 因为这样的询问有时候出现有时候不出现(同分区移动时), 用户无法接受反复无常的系统. 尽管如此, Gnome 还是至今我最满意的一个桌面环境, 我也希望它能够越做越好. 系统很难摸清. 于是要不就提供一大堆选项, 问一大堆问题, 搞清楚用户到底想干嘛; 要不就按大部分用户大部分情况下的语义, 自动地给完成了. 这两种方法都有它的问题. 而要完全地解决这个问题, 在我看来非常困难, 现在的情况大抵是: 既然系统没法知道用户的意思, 就让用户顺着系统的脾性来, 等用户养成习惯了, 就会反过来觉得这个系统真贴心. 这决不是解决问题的方法.
Ⅱ linux系统能装vs吗
不能
去用 eclipse 吧。
而且 VS 是专门开发 Windows 程序的开发程序,他开发不了 Linux 的程序。
(当然你要是想折腾,理论上应该还是能把它弄成 Linux 开发程序的)