评论: Linux开发者重新发明轮子的现象并不是什么秘密。这不仅仅是显而易见的问题,而是满载着从Ambelodon到Stegodon的每一个已知和未知的长鼻目成员的喷气式导向方舟……
实际上,Linux本身以及它所构建的GNU工具,都是现有专有工具的FOSS的再创造。但尽管经过了超过三分之一世纪的持续发展,只有一个Linux——而GNU工具的替代品也非常少。有些领域设法保持了其稳定性。
然而,有些领域则失败得相当明显。让我们看看在Reg FOSS团队看来,最为明显的例子之一:也许是任何最终用户操作系统中最显眼的部分——桌面。
正如我们之前详细讨论过的,今天FOSS中绝大多数桌面环境采用相似的设计,而这个设计源于Windows。近20年前,微软曾威胁提起诉讼。虽然最终没有发生,但并不是因为微软缺乏证据:正如我们在2013年所阐明的,证据非常明显。之所以没有发生,是因为不清楚应该起诉谁,或者是否可以对任何自由社区驱动的努力提起诉讼。
在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 桌面仍然通过多个扩展来实现功能,而不是直接分叉代码。
自从主要开发者转向 LXQt 后,LXDE 已经沉寂了几年,但最近有了一些更新。即便如此,许多发行版仍然提供 LXDE,而 Raspberry Pi OS 仍然使用部分 LXDE 组件。它的继任者 LXQt 和 KDE Plasma 一样,使用 Qt 工具包,而非 Gtk。延续的 KDE 3.5 分支 Trinity Desktop 也是如此。
在西方不常见,但在东半球却更为普遍的还有两个更像 Windows 的桌面。Uniontech 的发行版使用 Deepin 桌面环境,而 Kylin 家族的发行版使用 UKUI。这两个桌面在从 Arch 到 Ubuntu 的多个发行版中也能找到,并且似乎都包含 Gtk 和 Qt 组件的结合。
到目前为止,我们已经介绍了 13 个。接下来,我们将深入这片黑暗的森林……
它的功能更为强大,但 Enlightenment 共享相同的默认布局,这同样适用于延续的分支 E16 和 Moksha。所有这些都使用各自版本的 Enlightenment Foundation Libraries,而非 Gtk。
春分桌面环境(EDE)使用 FLTK 而不是 Gtk。由于 FLTK 重新进入活跃开发阶段,也许是时候更新 EDE 了。XPde 使用 Kylix,即 Delphi 的 Linux 版本,而不是 C,但它也早已停止开发。Lumina 是为 FreeBSD 用 C++ 和 Qt 构建的,但近年来它也可以在 Linux 上运行。同样简约的还有 ChromeOS 的桌面环境 Aura。
IceWM 重新开始活跃开发,JWM(乔的窗口管理器)也是如此。甚至 FVWM95 在几年前也得到了更新。公平地说,这些是窗口管理器,而不是完整的桌面环境,但它们仍然共享熟悉的任务栏和开始菜单设计,并在当前的发行版中使用,如 antiX 和 Damn Small Linux。
我们现在已经提到 23 种。我们可以更深入地挖掘,但我们希望到现在为止已经表达了我们的观点。这里有几种不同的语言(但实际上远没有 23 种),还有几种不同的图形工具包(但同样,远低于 20 种)。这是大量的努力,花费在重新发明和维护一个简单的基本概念,就像轴端的一个圆形物体。
但这里的基本概念其实相当简单。窗口管理器无法匹配 Windows 95 资源管理器的功能,而没有一个桌面能展现出原始的简单优雅。Windows 95 让你可以将任务栏放在任何屏幕边缘,但你只能拥有一个,并且无法改变其长度,或重新排列或调整其内容的大小,更不用说改变它们的方向。多个行是你唯一的选择方式。
当这个秃鹫推出 Tilde 文本编辑器时,我们在标题中提到年份是有原因的:1976 年是比尔·乔伊发布 Vi 第一个版本的年份。自1988年起,我一直不情愿地使用 Vi,并且在这37年里始终不喜欢它。然而,我必须承认 Vim 是一个伟大的编辑器,受到成千上万,甚至数十万人喜爱。这也是我为布拉姆·穆伦纳尔撰写讣告的原因之一。
今天,我想很少有 FOSS 开发者会记得 Elvis 或 Stevie。他们是早期的两个主要 FOSS Vi 克隆 – 你知道的,就是20世纪末。
想象一下,如果我们不是在用 Vim,而是有23个不同的 Vi 克隆,每个发行版都包含其中大多数,因为他们的爱好者仍在争论哪个更好。想象一下,如果它们每一个都有自己的配置文件格式,无法导入其他的。想象一下,除了核心的 1970 年代用户界面,它们都使用不同的按键组合。它们都有自己的语法高亮方式、脚本语言和插件等等。
难道没有任何一个能达到 Vim 的功能吗?
没有办法把所有不同的类 Windows 的 Linux 桌面合并成一个,甚至连三个或四个都不行。没有有效的方法将一个用 C 编写的实质性程序与一个用 C++ 或 Vala 编写的程序,或一个使用 Gtk 的程序与一个用 Qt 构建的程序结合在一起。
但它们可以一起协作。
记住 Unix 哲学的基本原则:
1995 年的设计很简单。桌面的组件——任务栏、文件管理器、文本编辑器等等——不需要交换大量丰富而复杂的信息。
用户应该可以自由地——例如——搭配 MATE 面板、Xfce 窗口管理器、Cinnamon 文件管理器和 Budgie 启动菜单。
所有这些都可以共享一个统一的设置格式。所有人都应该能够读取相同的配置文件,并理解三十年前建立的相同核心最低共同功能,比如主面板的位置。我们当时不需要重新排列面板项目,现在也不需要。‘在泰坦尼克号上重新排列甲板椅子’是一个无意义且浪费时间的行动的比喻。
近二十种不同的类 Windows 的用户界面代表了程序员努力、技能和时间的巨大浪费。数百甚至数千人,几十年来努力工作……但由于各自的项目不同,他们都无法取得伟大的成就。举个例子,看看 KDE Plasma 的 36 个启动菜单。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.