Linux桌面环境碎片化严重,亟需整合统一

Linux开发者重复造轮子的倾向已成常态。尽管有超过三分之一个世纪的持续开发,但桌面环境却是一个失败的典型例子。目前存在23种类似Windows风格的桌面环境,包括Xfce、MATE、LXDE、Cinnamon等,它们都基于Windows 95的设计理念。这种重复开发代表着程序员努力、技能和时间的巨大浪费,数百甚至数千人在不同项目上辛勤工作数十年,却没有一个能达到卓越水平。

Linux开发者喜欢重新发明轮子,这已经不是什么秘密。就像房间里的大象一样显而易见。

实际上,Linux本身以及构建它的GNU工具都是对现有专有工具的自由开源重新创造。但尽管经过超过三十年的持续开发,Linux只有一个版本,GNU工具的替代品也很少。有些领域能够保持统一。

然而,有些领域却失败得相当惨烈。让我们看看在FOSS桌面中一个更严重的例子:任何终端用户操作系统最可见的部分——桌面环境。

正如我们之前详细讨论过的,当今FOSS中绝大多数桌面环境都共享相同的设计,这是一个源自Windows的设计。近20年前,微软曾威胁要就此提起诉讼。虽然最终没有发生,但并不是因为微软缺乏证据:正如我们在2013年详细说明的,迹象非常明显。诉讼没有发生是因为不清楚应该起诉谁,或者是否可以起诉任何人的免费社区驱动努力。

我们所说的类似Windows是什么意思?具体来说,是类似Windows 95——因为从那以后的每个Windows版本都继承了相同的核心设计。当Windows 95迎来20周年时,The Register给予了它一个小小的致敬,你可以在那里看到核心设计。屏幕一整个长边上有一个面板,从左到右阅读,首先是应用程序启动按钮,然后是打开窗口的一排按钮,接着是一个带有时钟的凹陷"系统托盘",通常还有一些通知图标。其中一些用作扬声器音量等功能的控件。启动器按钮打开分层视图,顶层有主要应用程序和系统控制功能,加上包含辅助功能的文件夹。

基于图标的文件管理器,每个窗口中有一个可选的左窗格,包含目录层次结构的可展开树。在此之前,文件管理器最流行的布局是经典的Norton Commander风格,现在称为Orthodox File Manager。甚至Windows 3的文件管理器也是这样工作的。

Windows 95中用户界面功能的组合是独特的。在它之前没有任何东西具有所有这些功能。充其量,有一些断开连接的功能模糊地相似,比如RISC OS的图标栏或NeXTstep的Dock。但是从1995年开始发明的几乎所有东西都具有这种确切的组合。

按照21世纪的标准,Windows 95是微小的。第一个版本只适合13张软盘。对于那些不记得磁盘的人来说,它不到25 MB。

原始的Windows资源管理器是200 KB的代码。虽然很小,但它是一个杰作,它重新定义了计算机用户界面,这种情况直到22年后的iPhone才再次发生。

在我们看来,它至今还没有被超越。这就是为什么这么多团队和产品都复制了核心设计。

原始资源管理器的设计不仅在视觉上简单:至少一些底层实现也是如此。例如,在Windows 3.x和NT.x中,程序管理器只支持单级层次结构。应用程序必须保存在组中,存储在.GRP文件格式中,这些不能嵌套。相反,资源管理器引入了快捷方式文件,开始菜单存储在简单的目录树中:图标是快捷方式,子菜单是子目录。Linux自然有自己的版本,这相当复杂。

Linux上有数量惊人的Windows风格桌面——这主要也适用于BSD。它们大多数用C实现,并且大多数使用各种版本的Gtk工具包来制作小部件:菜单、对话框、按钮等。

按大致年龄顺序,今天仍在维护的有Xfce;MATE,这是GNOME 2的分支;LXDE;Linux Mint的Cinnamon;以及用以GNOME为中心的Vala语言实现的Budgie。

GNOME在第3版中重新发明了自己,变成了非常不像Windows的东西,但它仍然提供GNOME Classic和GNOME Flashback,这两者都具有更像GNOME-2的桌面布局。Cinnamon桌面最初是一组称为MSGE的自定义,但变成了一个完整的分支,偶尔会重新基于上游GNOME Shell的较新版本。Zorin OS桌面仍然使用多个扩展的方法,而不是分叉代码。

LXDE在主要开发者转向LXQt后,已经安静了几年,但最近有一些更新。即便如此,许多发行版仍然提供LXDE,Raspberry Pi OS仍然使用一些LXDE组件。它的继任者LXQt,像KDE Plasma一样,使用Qt工具包而不是Gtk,用C++代替C。继续的KDE 3.5分支Trinity Desktop也是如此。

在西方很少见到但在东半球更常见的是另外两个类似Windows的桌面。Uniontech的发行版使用深度桌面环境,麒麟系列发行版使用UKUI。一个或两个在从Arch到Ubuntu的各种其他发行版中也可用,两者似乎都包含Gtk和Qt组件的混合。

到目前为止有13个。现在我们深入到黑暗森林...

虽然它可以做更多,但Enlightenment共享相同的默认布局,继续的分支E16和Moksha也是如此。所有这些都使用它们自己版本的Enlightenment Foundation Libraries而不是Gtk。

Equinox桌面环境EDE使用FLTK而不是Gtk。由于FLTK再次积极开发,也许EDE应该更新了。XPde使用Kylix,Delphi的Linux版本,而不是C,但它也早已死亡。Lumina是用C++和Qt为FreeBSD构建的,但近年来也在Linux上运行。同样极简的是ChromeOS桌面Aura。

IceWM重新积极开发,JWM(Joe's Window Manager)也是如此。甚至FVWM95几年前也得到了更新。公平地说,这些是窗口管理器,不是桌面,但它们仍然共享熟悉的任务栏和开始菜单设计,并在当前的发行版中使用,如antiX和Damn Small Linux。

现在我们达到了23个。我们可以挖得更深,但我们希望现在已经说明了这一点。这里有几种不同的语言(但远少于23种),以及几种不同的图形工具包(但再次,远少于20种)。这是花费在重新发明然后维护轴端圆形物体基本概念上的巨大努力。

但这里的基本概念实际上是相当简单的。窗口管理器无法匹配Windows 95资源管理器的功能,没有一个桌面捕获了原版的简单优雅。Windows 95让你把任务栏放在任何屏幕边缘,但你只得到一个,你不能改变它的长度,或重新排列或调整其内容的大小,更不用说改变它们的方向。多行是你唯一的选择。

今天,我怀疑很少有FOSS开发者记得Elvis或Stevie。它们是早期另外两个领先的FOSS Vi克隆——你知道,19世纪末。

想象一下,如果我们有23个不同的Vi克隆,而不是Vim,每个发行版都包含其中大部分,因为它们的爱好者仍在争论哪个更好。想象一下,如果它们每个都有自己的配置文件格式,并且不能导入其他的。想象一下,除了核心的1970年代用户界面之外,它们都使用不同的按键。所有都有自己的语法高亮例程、自己的脚本语言、自己的插件等等。

除了纯粹的混乱,它们中的任何一个似乎都不太可能获得Vim的功能吗?

没有办法将所有不同的类似Windows的Linux桌面合并为一个,甚至只是三个或四个。没有有用的方法将用C编写的大型程序与用C++或Vala编写的程序结合,或将使用Gtk构建的程序与用Qt构建的程序结合。

但它们可以协作合作。

记住Unix哲学的基础:

编写做一件事并且做得很好的程序。编写协同工作的程序。编写处理文本流的程序,因为这是一个通用接口。

1995年的设计很简单。桌面的组件——任务栏、文件管理器、文本编辑器等——不需要交换大量丰富、复杂的消息。

用户应该可以自由地——例如——将MATE面板与Xfce窗口管理器、Cinnamon文件管理器和Budgie开始菜单一起使用。

所有都可以共享通用设置格式。所有都应该能够读取相同的配置文件,并理解三十年前建立的相同核心最低公分母功能,比如主面板在哪里。我们当时不需要重新排列面板项目,现在也不需要:重新排列泰坦尼克号上的甲板椅是一个毫无意义、浪费行动的谚语。

近两打不同的类似Windows的用户界面代表程序员努力、技能和时间的巨大浪费。数百人,也许数千人,几十年来努力工作...但都在不同的项目上,意味着它们都没有达到伟大。例如,看看KDE Plasma的36个启动器菜单。

距离KDE首次发布已经27年了,我怀疑微软从那时起一直在笑着赚钱。FOSS世界可以做得更好,是时候开始尝试了。

Q&A

Q1:Linux为什么有这么多类似Windows的桌面环境?

A:Linux开发者倾向于重新发明轮子,几乎所有FOSS桌面环境都复制了Windows 95的核心设计:屏幕边缘的面板、应用程序启动按钮、任务栏和系统托盘的组合。因为这个设计在1995年是独特且成功的,所以被广泛复制,导致出现了23个以上的类似实现。

Q2:这些不同的Linux桌面环境能否合并成一个?

A:无法直接合并。因为它们使用不同的编程语言(C、C++、Vala等)和不同的图形工具包(Gtk、Qt等)。用C编写的程序无法与用C++或Vala编写的程序有效结合,使用Gtk构建的程序也无法与用Qt构建的程序合并。

Q3:如何解决Linux桌面环境碎片化问题?

A:虽然无法合并,但可以通过协作来改善。遵循Unix哲学,让不同组件能够协同工作,比如允许用户混合使用MATE面板、Xfce窗口管理器和Cinnamon文件管理器。所有桌面应该共享通用设置格式,能读取相同配置文件,理解核心基础功能。

来源:The Register

0赞

好文章,需要你的鼓励

2025

11/11

08:34

分享

点赞

邮件订阅