放弃了现阶段使用 Linux 作为开发桌面的想法
时间:2007-05-08 来源:lib
Fedora、Ubuntu、SUSE,这些对中文支持不错的 Linux 桌面都反复用过了。每一个都花不少精力去配置、优化,但始终无法达到 Windows 环境的工作效率。其中除了习惯问题,更关键的还是 Linux 桌面本身和应用程序不成熟的原因居多。
没想到这篇博客如此之火爆,只好再补充说明一些问题。但前提请一定注意,我始终只是在谈 Linux 的桌面环境,而不是内核或者命令行,更不是说 Linux 的体系架构不好。
我为什么要将 Linux 作为开发桌面?
我的主要工作就是应用软件开发,Web 应用和 Windows 桌面应用各占一半。Web 应用主要使用 PHP,而桌面应用则使用 VC、Delphi 这些。
在 Web 开发时,我通常要在各种环境下测试应用程序:Windows、Linux/Unix,这样才能确保应用程序具有最大的平台无关性。所以,这是我希望使用 Linux 作为开发桌面的原因之一。
同时,开发过程中,经常都有许多自动化任务需要完成:从 SVN 下载最新的源代码并打包上传到服务器、生成文档、单元测试等等。这些工作,用 Windows 来做不是不行,但是 Windows 的命令行太弱智,实现这些功能太麻烦(FleaPHP 的一个自动打包批处理文件就有近 300 行)。这是我希望使用 Linux 作为开发桌面的原因之二。
最后,我这个人自制力稍微差了点。而Windows 里面游戏太多,所以用 Linux 桌面应该能改善这个毛病 -_-#
难道界面视觉感官、字体、输入法对我来说就那么重要?
我可以很明确的回答:是!
原因很简单,看上去就很舒服的用户界面可以让人更愉快的工作。就像你在漂亮的办公室中工作,会感到身心愉悦一样。
作为程序员,对字体是有特别要求的。因为每天大量的时间就是面对代码,如果屏幕上的字体不好看,或者不够清晰易读,我想任何程序员都会不满。而且清晰、美观的字体,可以降低视觉疲劳,对身体也是有好处的。
输入法对我来说很重要,是因为我经常要写大量文档。这个时候,输入准确率高、更容易使用的输入法可以直接提高工作效率。
我没有以包容和学习的心态看待 Linux 桌面吗?
当然不是。事实上我自己就在做开源,当然明白开源项目面对的问题。
但是,我认为对于任何一个开源项目(事实上商业项目也一样)来说,能不能解决用户的需求,是最重要的。
如果用户说你这个东西不好用,而我马上说你心态有问题。那我这个项目就绝对不可能成功。因为我本身就缺乏了包容和学习的心态,不能接受负面意见,不懂从批评中学习。
经常都有开发者说:FleaPHP 不怎么好用啊。这个时候我会首先问他们是如何得出这个结论的。如果他们说得在理,我会把他们的意见记录下来,作为 FleaPHP 改进的目标之一。
我对 Linux 桌面有偏见吗?
当然没有!因为我从 RedHat 7.2 开始,就不断尝试 Linux 桌面了。Ubuntu 出来以后更是每个版本都要用一段时间。
我指出 Linux 桌面有不足,是因为 Linux 桌面确实存在需要改进的地方。当然,这个问题 Linux fans 可能会说那是因为我用习惯了 Windows,所以接受不了 Linux 桌面。但我提到的字体、界面布局、响应速度问题是确确实实存在的,并不是我凭空捏造,更不是某些回复里面说得诽谤。
Fedora、Ubuntu、SUSE 这些发行版每一次新版的发布,都会在桌面上做出不小的改进。因为它们都知道,Linux 桌面要获得成功,必须获得 Windows 用户的认同。如果用户都不认同你,那你技术再先进有什么用呢?
技术上获得成功,商业上却失败的例子太多了,市场决定一切!
==============================================
废话结束,还是继续看原文吧。
中文字体问题
各个版本 Linux 自带的中文字体都谈不上好看。虽然可以拷贝 Windows 字体过去,但是这样配置、那样配置,让人头都晕了。毕竟我是想拿 Linux 来工作,而不是用来 DIY 的。而且配置出来,也只是近似效果,仍然有差距。
而且我觉得 Linux 的字体驱动比起 Windows 真是差距太大了!如果选择字体边缘模糊或者次级像素优化,那么稍微小一点的字体就会很模糊。而中英文混合显示时的问题更多,不可能达到 Windows 环境中那种显示效果。
当然,如果只用纯英文,那 Linux 的字体倒挺好看的,可惜我鸟语不过关。
整个桌面环境的设计缺陷
虽然我不是专门搞 GUI 的,但是桌面应用也做了一段时间,各种 GUI 设计的资料也仔细研究过。GNOME 的 GUI 设计实在谈不上好(KDE 不用提了,更丑),跟 Windows 相比差得太远,跟 OSX 就更没法比了。
Linux 中,为什么每个控件都做得那么大?难道所有人都有超大屏幕,或者说有视觉、动作障碍?同样的控件,Linux 桌面下比 Windows 桌面要大许多。这毫无疑问是在浪费屏幕空间。
屏幕尺寸相同的基础上,Linux 桌面应用如果要放置同样多的控件,那么每个控件之间的空间就变小了。等同于压缩了内容的表现空间。再加上 Linux 小字体显示问题,这个问题就进一步恶化了。
大部分应用都缺乏良好的 GUI 设计
许多 Linux 桌面应用的界面设计一看就是程序员搞出来的,而不是 UI 设计师的作品。
这些应用的通病就是界面布局混乱、各个控件出现在不合适的位置上,窗口要么太大要么太小。用起来就两个字形容:难受!
就拿 GIMP 来说,其所有工具窗口都是分离的,但又没有像 Photoshop 一样组织到一个大窗口里面。直接结果就是处理大一点的图片时,要不停的隐藏/显示窗口,在这个窗口那个窗口之间切换过去切换过来。
有人可能会说这种设计只要习惯就好了,并不是不良设计。那为什么 Photoshop CS3 也改为 Fireworks 那种界面布局了呢?因为实践证明这种界面设计能够更好的组织屏幕内容,提高工作效率。
GNOME 的文件浏览器(N 什么来着,记不住名字)也是设计不良的典型。
只有两种查看方式:图标和列表(等同于 Windows 资源管理器的详细信息查看方式,每行一个文件及其属性),而缺乏一个“纯列表”显示方式。就是文件名一个个的排列在一起。这种“纯列表”显示方式非常适合查看包含大量文件的文件夹。
除了这些界面问题,GNOME 的文件浏览器在打开包含大量文件的文件夹时,等待时间太长,估计有很糟糕的内部实现。
输入法
没有搜狗、Google 拼音这样好用的输入法,输入速度大大下降。SCIM 的智能拼音和 Fcitx 拼音的输入效率比起 Windows 下的输入法差太远了。我搜狗每分钟一般可以输入80个字以上,最高记录是101个汉字。
没有高质量的桌面开发环境
没有 Dreamweaver、没有 Photoshop、没有 TopStyle,修改页面和图像时的工作效率下降太多了。Wine 模拟出来的效果实在不敢恭维,速度慢不说,界面更是丑得伤心,看着就没有工作的欲望。
Zend Development Environment 和 Eclipse 里面,中英文混合显示的字体效果始终解决不到。稍微看久一点就觉得累眼。
没有办法用 Internet Explorer 测试页面(如果用 Wine,那么含有大量 JS 的页面几乎无法测试)。要知道 IE 的市场占有率摆在那里,是不可能无视的。做个 Firefox only 的网站只能是哗众取宠、商业自杀。
桌面使用不够流畅
我不是机器人,不过 Linux 桌面的响应速度是达不到我要求的。同样的操作,我在 Windows 里面可以更快的完成,因为 Windows 环境的桌面响应速度明显更高。
虽然可以通过给 Linux 内核打补丁来改善此问题,但 xorg 的设计就决定了其桌面环境响应速度和 Windows 的差距是无法弥补的。
硬件驱动匮乏
主板、显卡、声卡、网卡、ADSL Modem、USB 设备等等。Linux 的硬件驱动程序比起 Windows 来根本不是一个数量级的。太新或稍微偏门一点的硬件,找到 Linux 驱动的几率太小了。
就拿我的笔记本(ASUS A6500U)来说,在 Linux 里面调节屏幕亮度的功能时有时无(很奇怪 -_-#),而集成的 SIS 显卡芯片显示速度比起 Windows 环境差太多太多了。而且有时候默认安装后,还要手动修改 xorg 的配置来启用 sis 显卡驱动。
笔记本的温度、风扇转速也无法检测,天气越来越热时,不知道能否正常工作。CPU 频率调整功能也被阉割了,只能看现在的速度,没法调。
上面抱怨了那么多,其实都不是 Linux 内核的问题。而且我认为 Linux 内核非常优秀。
但问题的关键在于,我作为用户,安装 Linux 是为了工作,而不是为了研究。我没有兴趣也没有精力去编译、测试这个补丁、那个补丁,更不想为了一个驱动程序翻遍互联网。
而用户界面设计这些问题也不是技术上的问题,而在于 Linux 文化以技术为主的氛围,无意中排斥了优秀的用户体验工程师、UI 设计师。而大量开源软件都是个人作者的作品,其用户界面设计水平,完全取决于开发者的个人素质。
在 Windows 环境下,一个软件的开发者如果不能自己设计出良好的界面,那么他可以照搬 Micorosoft 的软件。最终也能获得一个良好的界面。Linux 环境下则不行,因为 GNOME、KDE 这些原本可以作为参照物的 UI 设计就很糟糕。
字体问题更是一个难题,没有哪个开源组织可以像 Microsoft、Apple 一样投入大量人力物力去研究字体渲染引擎和设计新字体。而 Microsoft 在 ClearType 上的发展,把 Linux 又抛开了很远一段距离。
最后,补充一点:我相对来说更喜欢 Fedora 6,因为默认的字体比起 Ubuntu 好看得多,而且桌面的响应速度更快。
================== 我是分割线 ==================
datastream:
其实是由于对linux思维方式不熟悉的缘故。如果只是写代码,那么linux是一个很好的选择。如果是要作图形处理、网页设计之类的就不合适了。Linux下现在还是缺少良好的图形处理软件支持。不过要是写代码的话,这是一个很好的选择了。
lz遇到的问题,其实不能将错误归到linux设计上。linux字体设置很简单就搞定了,安装一下字体就好了。linux输入法中有五笔和拼音,对大多数人来说这就够了。linux下测试网页和图形设计就没有办法了。毕竟linux这方面的商业支持还不是很完善。
桌面GUI部分,还是看lz的选择了。一般来说如果使用gnome这样的GUI会有桌面不够流畅的感觉,这个主要是内存的问题。桌面上几乎所有的东西都是可以自己设置的,如果不习惯可以自己配置。
如果使用太新的硬件可能会有硬件驱动的问题。不过一般的驱动都有了。linux内核的响应速度比window的快多了。
其实很多人在使用linux的时候总是用windows的思维方式,如果不对就说是linux’设计有问题。如果使用mac的系统,都不知道会说什么了。
虽然我是程序员,但不代表我的机器就只能用来写程序,总还有许多其他的任务。
Linux 字体不好看,不是我个人认为。事实上所有国内 Linux 社区关于字体优化、配置的板块都是非常热门的。因为大家都觉得自带的字体不好看。
至于 Linux 桌面响应速度慢,是指在同等硬件配置(闪龙3000+、1G 内存)时,Linux 桌面的响应速度不如 Windows。
cooleeryan:
典型的windows思维,你不爱用就不用就是了,也没必要这里叫这么多吧
看来你是真没好好用过Ubuntu,你说的90%的问题都已经解决了
而且我第一次听说linux不适合做开发的……不熟悉命令行的人就还是用你的windows去吧
我用得不舒服,我愿意说,你不爱听不听就是了,也没必要这里叫这么多吧。
至于命令行,我20年前就在用了。
lyman:
我只想问一下作者在 linux 下折腾了多长时间。
哪个用久了看另外一个都不顺眼。就像我现在看 windows 怎么都不顺眼一样。
Linux 桌面是没用多久,几个月。至于命令行,用了几年了。
但我只是认为 Linux 的桌面环境还不成熟,而不是说 Linux 不好。
Icat:
1.连linux字体都懒得配置说头晕的人谈何在linux下开发,在ubuntucn上随便一找就有很好的教程,Linux的字体驱动XP打了cleartype工具才可以比,但还是XP差一点
不懂找资料,只会抱怨的人不配用linux
2.输入法..确实scim和fcitx比起windows下的输入法还是有一定差距的,但是绝对不能算不好用.但你是开发人员,不是文字录入人员…作为开发人员每分钟100字和每分钟80中文字有区别么?…
3.UI设计….本身Linux和windows的理念就不一样..非得用windows的标准来衡量就是很无法的事情了,当然win下的应用发展时间比较久,优势是有的….但那连nautilus都没用熟就说不好用…别想着linux适应你的windows习惯
熟悉linux的UI后也会看不惯win的设计…同样道理
4.桌面流畅度是笑话…估计开了渐变效果什么的,又不知道如何去掉,还归结于xorg…..我还真不知道你对xorg实现还有了解….难到通读了源代码..抑或是哪位高手说的?
同样内存下,较高内存负荷情况下,基本上是linux反应快…两台机子ubuntu6.10 和7.04 对比同机器下xp sp2..
5.硬件支持…最新的硬件出来linux驱动经常会迟一步,还有些不是很常见的牌子的设备可能没驱动..这还是要厂家支持阿
好吧,还是那句话,放弃吧,至少暂时放弃,你现在缺少一种包容和学习的心态
你说 ClearType 不如 Linux 的字体驱动,不知从何说起。Ubuntu 7.04 的改进之一就是次级像素字体渲染,效果进一步接近 ClearType。
至于输入法,我的电脑还要用来写文档,当然需要一个趁手的输入法了。难道每一项工作都要专门配备一台电脑?
Linux 的桌面设计好不好,不是开发人员说了算,而是最终用户说了算。整个桌面的设计、易用性、舒适度,和 Windows 相比有差距是事实,更别提和 OSX 比了。
你问我读没读过 xorg 源代码,我当然没读过了,有必要么?难道你找个女朋友还要分析别人的 DNA?
别说渐变,就是最基本的主题设置,流畅度也是明显不如 Windows 的。
最后,不要用教育别人的口吻来说话。
firenet:
1,楼上详细谈一下什么叫gui的内核极支持?
2,windows的UI设计都经过了测试?给个出处好吗?
套用楼上的思维:Apple的UI为什么设计成那样,为什么不合win一样?maybe没有经过测试。。。
我们可以看到,不仅仅是win一家的设计好,Apple可以做好,linux也可以
3,photoshop太贵了。。。
Windows 的 GUI 库是在内核空间执行的,因此可以更快的和驱动程序交互。这样,对于最终用户来说,就获得了更好的响应速度和流畅性。缺点是驱动程序的缺陷和 GUI 的 bug 会导致内核崩溃。xorg 则是一个普通的应用程序,运行在用户进程空间。花在进程切换和用户空间/内核空间切换的时间很多。
如果你不知道 Microsoft 为 Windows 的 UI 做了多少努力的话,建议你看看 MSDN 中关于用户界面设计的一本电子书。至于 Apple 的 UI,也是由专门的人机交互工程师和艺术家一起设计的。Windows 之所以不能照搬 Apple 中出色的设计,是因为 Apple 为这些设计申请了专利。
而 Linux 的桌面设计之所以跟不上,是因为 Linux 的开发商没有实力投入那么多资源去做专业的设计。
achaoge:
左边都不留白,看起来不嫌累得慌?什么 UI 啊,Design 什么的,还是免谈吧。
你哪只眼睛没看到留白啊?