KDE4 for OS X 会受到用户欢迎吗?

KDE4 的第一个 alpha 版本发布了,我们可以找到 for OS X 的二进制文件下载。有个问题早在 KDE 社群宣布 native 的 OS X 移植时就被提起,我现在才有空瞎说点看法。

Mac OS X 的用户可能是世界上对软件的界面一致性 (consistency) 要求最高的用户,也许是因为选择 Mac 并热爱 Mac 的人的审美喜好也类似,所以他们的嗅觉也惊人的一致而灵敏,对软件的移植而言,他们能热切地赞扬优秀的 port,比如 Skype,同样也有大量移植软件因为距离 OS X 用户的界面要求太远而不被关注。常见的跨平台 GUI Toolkit: GTK+, Qt 和 wxWidgets 都是如此,除非软件本身缺少替代品,比如 WireShark 和 aMule,用户才会勉强接受它。

与 Windows 开发者喜欢创造千奇百怪的界面 skin 不同,也与 Linux 开发者干脆懒得认真开发界面不同,OS X 的开发者的倾向是紧跟 Apple 的步伐。Apple 放弃 Brushed Metal 风格,他们也立即放弃,Apple 在 Mail 里用 Unified Aqua 工具栏,他们也赶紧用,Apple 在 iLife 和 iTunes 里开始用 Polished MetalHUD 窗口,并放弃 Drawer,他们也一一复制,造就的结果就是用户口味特别刁钻,稍有点异味都能品出来,比如 Shiira 的开发者最近伴随 2.0 版本的发布提供了 HUD Framework,但却有人声称 CSSEdit 的 HUD 窗口“ blow these away by a mile”——就是这么苛刻,不过,如果你也是个对 GUI 设计精益求精的开发者,你就能习惯它。

大多数的跨平台 GUI Toolkit 最大的问题在于,它们能达到的只能是所有平台支持的“最大公约数”,而永远无法在任意一个平台下发挥最大效能,所以它们只好设置自己的 Design Guidelines,为了让不同平台下都呈现相同的外观和习惯。它们可能去为了 Apple Human Interface Guidelines 乃至 indieHIG 去修改自己的界面设计习惯吗?恐怕很难。

而且 KDE 的习惯又是以复制 Windows 为主,包括 File Choose Dialog 的设计,OK, Cancel Button 的位置,等等,从而就更难让 OS X 用户满意了。

事实上,跨平台的 GUI Framework 从来就没有达到过真正的跨平台的接受度,一般都只能在一个平台下拥有大量用户,其他平台下则寥寥无几。我觉得还是在软件内部封装一个跨平台 GUI 层,根据不同的需求在不同平台下调用不同的框架来实现会比较好,比如 vim 和 emacs 的做法就是如此。

9 Comments

  1. fishy:

    我倒是觉得KDE更接近于复制OSX,比如global menu bar之类的。
    跨平台的gui framework基本都sucks,比如Qt在OSX下难看,gtk在Windows下难看,wx在哪儿都难看。最好看的反而是SWT。

  2. fishy:

    说KDE更接近OSX还有一个理由是他的GUI程序互相之间的交互密切,比如KMail, KNote这些的,类似OSX下Mail, Address Book, iCal之间互相交互。
    刚才没想起来,ft

  3. Cavendish Qi:

    才4.0的alpha1,jjgod大侠就这么苛刻的要求了,hehe。

    至于HIG,我想对于Qt/KDE也是可能的。
    http://doc.trolltech.com/qq/qq20-hiviews.html

    只不过跨平台和平台特性本身就是一种矛盾。

    但我觉得KDE on Mac OS X以及未来的KDE on Windows的存在,本身就是一种精神的体现。不知道Mac OS X上有没有一个opensource应用程序列表,可以对应KDE各个应用所提供的功能。

    还有就是KDE on Mac OS X以及未来的KDE on Windows,可以大大的方便原来使用KDE的用户,或者喜爱某些KDE应用的朋友在多个平台上使用同一应用,对于他们这是再方便不过的事情了。不是么?

  4. jjgod:

    fishy: 我同意 SWT 是做得最好 (有趣的是,也是最 light-weight 的) 的一个 framework..

    Cavendish Qi: 我还是很喜欢一些 KDE based 的软件的,Konsole、Kopete 和 Kile 就是其中几个非常出色的,能在 OS X 中见到它们会很好。

    你给出的链接里似乎只是涉及 HIView 的使用,但 HIG 关注的其实不是这个,而更偏向于一种界面风格,有点像我们说 Windows 下边的程序有的时候会模仿 Office 2003 的风格,Visual Studio 2005 的风格。Cocoa 程序的风格也有其鲜明的特色,主要就是在 http://indiehig.com 有比较详细的介绍。像链接中给出的 web 浏览器的示例,两个工具栏按钮就很明显的与界面整体风格不协调。

    有个在 Carbon 上封装,但不是跨平台的 C++ 框架是 Nano:

    http://www.refnum.com/products/nano/

    这是目前我觉得做得比较好的一个。

  5. Cavendish Qi:

    konsole, kopete应该这次kde 4 on mac就可以看到了吧,kile好像不在kde4的核心包里,估计以后也是没有问题的。
    后来想了想,我帖的链接和你说的确实不同。这里还有一个链接,也许只是解决了一个小问题:
    http://doc.trolltech.com/4.3/qt4-3-intro.html#new-widgets-and-desktop-integration-enhancements

  6. yulewang:

    quote:我觉得还是在软件内部封装一个跨平台 GUI 层,根据不同的需求在不同平台下调用不同的框架来实现会比较好,比如 vim 和 emacs 的做法就是如此。

    還是用一個庫對各個平的庫做相同的封裝比較好.
    發者使用這個庫,在各平臺上都可以有native的look

  7. sdf:

    来看一下所写,欢迎回访
    (若能回访请留下博客地址,不胜感激)
    听景777-属于个人的Blog
    地址1 http://www.xsblog.com/u/natinne2/
    地址2 takepul.googlepages.com/2.htm
    tingjing777@gmail.com

  8. lackar:

    刚来,很好奇,看不太懂:P

  9. 片面:

    事实上楼主考虑的有点片面了.苹果用户对gui是很挑剔,但他们不是一成不变的。mac os x的界面也在变化,为什么他们就能够接受呢?关键是你做的能不能比苹果原有的界面更好。如果你做到了,苹果的用户会转而支持你。至于最后一段所提到调用不同框架的gui,不就是wxwidgets吗?我还是更欣赏qt的实现方式,那样可以保持各平台的效果都一样。

Leave a comment