Nate Graham 发布的文章

Wayland 毁掉一切!”有些人已经看过了这篇 Probonopd 批评 Wayland 的略有名气的文章。Probonopd 是 AppImage 开发者的核心者之一,他批评 Wayland 并非 X11 的直接替代品。他在 GitHub 上创建了一个 新的仓库,再次吸引了公众的目光,他希望为目前 Wayland 原生应用无法使用的功能创建协议。而这些功能是 Wayland 标准协议有意缺失的,但缺乏标准化意味着它们无法成为应用开发者可信赖的平台组成部分。

尽管开发者圈子里有人对此一笑置之,乃至嘲笑,但对于普通人来说,“Wayland 毁掉一切!”这句指责可能戳中要害,或者至少看起来有几分道理。因为从某种角度,Probonopd 是对的:Wayland 确实破坏了所有直接依赖 X11 功能的事物!

只是这种角度是错误的。

试想,如果我说:“Linux 让 Photoshop 无法工作,你还是应该坚持使用 Windows!”你该如何回应呢?你可能会说:“等等,问题的关键是 Photoshop 不支持 Linux!”你说得对,这是一个微妙且重要的区别,它将责任放在了正确的位置。因为即使是 Linux,也无法“不破坏” Photoshop;相反,Adobe 需要为其产品进行移植,只不过他们还没有做罢了。

对于 X11 和 Wayland,情况也同样适用。Wayland 并不是为了取代 X11 而设计的,就像 Linux 不是为了取代 Windows 而设计的一样。当我们从一个操作系统转到另一个时,有必要调整我们的期望,认清可能需要的改变。

尽管 Wayland 并非设计为 X11 的直接替代品,但它最终肯定会取代 X11。但这意味着它从一开始就打算比 X11 做得更少,而这是正确的。

X11 是个糟糕的平台

在那些古老的日子里,X11 是个完整的开发平台。以 X11 为目标的应用程序可以使用 X11,通过内建的小部件工具包来进行 UI 绘制;借助自带的打印服务器打印文件;进行屏幕录屏;设定全局快捷键等等。这一切都远在我接触技术之前,但我感觉到,X11 要么是在最初就被设定为面向应用开发者的开发平台,要么在早期阶段迅速演变成了这样一个平台。

然而,情况并没有如预期那样发展。即使是以当时的标准而言,其内置的 UI 工具包看起来也很丑陋。那些请求同一资源的应用可能会互相冲突,破坏彼此的功能,除非卸载其中一个应用程序,否则根本无法修复。像打印这样的特性渐渐没落,因为将这样的功能放在窗口管理器里就是个错误,而后续的维护者也缺少必要的专业知识或兴趣去维护它。诸如此类,不一而足。

像 Qt 和 GTK 这样的 UI 工具包迅速崛起,以更适合用户和便于应用开发者定位的方式,接管了大多数此类应用平台程序的中间件职能。我们这里说的是九十年代中期,那已是相当久远的时代了。

(当然,这样说可能有些不公平;人们抱怨 Wayland 缺少的其实并不是打印服务器。实际上,更多的是关于应用能否设置自定义窗口图标,以及移动自身的窗口。这些都是非常困难的情况;Wayland 上没有这些功能,理由就是这些功能在 X11 中被滥用,导致了难以解决的问题。要将这些功能移植到 Wayland 并非易事,涉及很多的权衡决定。)

Linux 并非一个平台

然而,UI 工具包的兴起无疑导致了应用程序的格局变得支离破碎。现在,FOSS 应用程序开发者不再为一个目标(X11)进行开发,而是为 Qt、GTK 或其他工具进行开发,从而我们看到了了大量的“KDE 应用” 和 “GNOME 应用”。是的,这些应用可能在其他平台里也能运行,但很明显,它们是在哪个平台和工具包上开发的,在哪个平台和工具包上运行效果最好。在其他平台运行时,它们可能看起来感觉很奇怪,或者某些功能可能不好用或根本无法使用。

这就是我们今天的现状。没有人会专门去编写一个 “X11 应用”;他们的应用可能会采用 X11 的某些特性,但这只是因为没有更好的替代方案,而实际上,在应用的 99.9% 的功能实现中,他们会选择 Qt、GTK、KDE Frameworks 或者其他相似工具。

这给我们带来了一个潜在的棘手问题: Linux 也不是一个真正的平台,在成为一个平台方面它并不比 X11 更成功。因为几乎没人会专门编写一个“Linux 应用”;直接调用原始的 Linux 内核系统通常是没必要的,因为无论你使用的是什么 UI 工具包,都会封装这些功能,并且将其抽象到工具包所支持的所有各种平台上。这样一来,工具包就能确保这些功能在 Linux 平台也都能顺利工作。

真正的平台

那么,对于跨桌面的互操作性而言,所有希望都已经破灭了吗?不,实际上现在的前景比以往任何时候都要美好!因为如今事实上出现了一个新兴的平台;如果你需要,它可以将各种应用工具包都抽象化。我说的是 Portals、PipeWire,以及 Wayland 协议。

Probonopd 认为这些都是附加组件,不应该在系统上运行,但我认为他的这种观点并不站得住脚。提供全面功能的单体窗口服务器模式在几十年前就被证明是失败的。取而代之的是库和 API,每个 FOSS 开发者都可以合理预期在现代系统运行这些。

门户系统提供了一种标准化的方法,用于展示平台原生的打开或保存对话框、发送通知、以其他应用打开文档、打印文档、拍摄截图、录制屏幕、处理拖放操作、查看用户当前主题是亮色还是暗色,等等。在很多功能的实现上,门户系统都倚赖于 PipeWire,因此你可以预期 PipeWire 也会被安装。同时,你也可以期待大部分 Wayland 合成器 — 尤其是两个最重要的合成器 KWin 和 Mutter — 支持几乎所有公开标准化的 Wayland 协议。

我认为这就是平台:Portals + Wayland + PipeWire。很明显,并没有一个好记的名字来囊括这一切。? 或许我们可以叫它 PW 2。不过,如果你的应用程序以这些平台为目标,那么它几乎可以在所有现代 Linux 系统上运行。并且,Qt 和 GTK 这两个大型的 FOSS 工具包都为此提供了全面的支持。所以,使用你喜欢的任何 UI 工具包都可。

为何是现在?

我们最近听到越来越多关于这个话题的讨论,因为这个转型正在加速发展。X11 的维护者已经宣布终止对其的维护,而 Plasma 则开始默认采用 Wayland,GNOME 也是如此。Fedora 甚至完全放弃了对 X11 的支持。

我们现在正处于这样一个阶段,那些以前从未考虑过这个问题的人开始思考,并意识到他们的特定使用场景所需的所有组件都还没有到位。可这其实是好事!他们的意见被听取了,变化就有可能发生。我希望这一切能早点发生,但我们也要承认现实,我们还在路上,最近围绕远程控制、色彩管理、绘图板以及窗口布局等方面的提案和工作非常频繁。可能会有一个尴尬的阶段在等我们,直到所有需要的部分都到位。对于那些由于关键遗漏而备受困扰的人,我建议他们继续使用 X11,直至问题解决。没人会去阻止你(嗯,除了 Fedora,所以如果你确实无法适应,那就不要用 Fedora ?)。探索新事物应该是充满乐趣的,如果不是这样,那就转换一个角度再尝试吧。

结语

在这个语境下,“毁掉一切”或许可以更准确地表达为“还没完全移植所有事物”。这种移植是必要的,因为 Wayland 设计的目标聚焦于未来,而未来并不完全兼容我们过去所做的一切,因为事实证明,其中很多东西已经没有意义了。对于那些有意义的东西,我们已经提供了一个兼容层(XWayland),同时,任何需要深度系统集成的部分,一般都有一个解决的路径(如 Portal、Wayland 协议以及 PipeWire)或者正在积极的研发中。整个世界,都在发生变化!

(题图:DA/d5a50347-47e0-472f-833b-58203196a743)


via: https://pointieststick.com/2023/12/26/does-wayland-really-break-everything/

作者:Nate Graham 译者:ChatGPT 校对:wxy

这是 Linux 走向大众最重要的一件事。

你可能看过 最近 Linus Tech Tips 关于切换到 Linux 的视频,以及 他对 KDE 软件的一些抱怨的那个视频。对于那些关注此事的人,我想让你们知道,我们(KDE)正在努力修复 Linus 提出的问题,你们可以在 这里 跟踪我们的进展。值得庆幸的是,大部分的问题都相当小,应该很容易解决。

关于桌面 Linux 需要什么才能成为主流的问题。Sway 开发者 Drew DeVault 针对该视频发表了一篇文章,而这篇博文是我的版本。Drew 强调了可访问性,我也同意,但结论略有不同。

桌面 Linux 需要预装在零售硬件上才能在主流市场取得成功

就是这样。

请允许我解释一下。

人们经常被功能和可用性所困扰,这些都很重要,但它们只是达到目的的手段,本身并不是目的。如果人们根本不能得到它,质量就毫无意义。而如果没有可访问的发行版,人们就无法得到它。高质量的 Linux 发行版还不够;它们需要被预装在你可以在主流零售店买到的硬件产品上。“主流人群”会购买他们可以触摸和拿起的产品;如果在主流商店找不到它,它就不存在。

想一想,为什么普通人都使用 Windows 或 macOS?因为他们购买的实体电脑包含了它。iOS 或 Android 呢?它被默认装在了他们的实体智能手机上。对于“主流人群”来说,不存在用一个新的操作系统替换设备的操作系统的想法。只有 “三点”用户 才会这么做,而他们只占市场的 5% 左右。如果获得你的操作系统的唯一途径是自己安装,那么你就没有机会在主流市场取得成功。

至于功能,人们通常只使用可用功能的很小的一部分。在可用性方面,大多数用户是 记住他们的软件如何使用而不是理解它 —— 如果你真的需要,你可以记住任何东西。一个更好的用户界面会有所帮助,但是对于那些记忆这些的人来说并不是必需的,而它主要有利于那些能够识别模式,并欣赏逻辑、一致性和良好设计的高级用户(市场上 30% 的“二点及以上”人群)。因此,这些东西本身就不够好。

但这并不意味着我们应该忘记功能和可用性!一点也不。但是如果我们的目标是“走向主流”,我们就必须了解真正的受众:是硬件供应商,而不是终端用户。我们的目标是让软件产品有足够的吸引力,以便在供应商选购时被他们选中,因为它基本上就是这样做的。像苹果这样为知名产品定制自上而下的硬件和软件的公司很少。大多数公司都建立在第三方软件之上,这些软件需要他们内部软件团队进行最少的整合和定制工作。如果你的软件不能胜任,他们会转向下一个选择。因此,当一些硬件供应商有需求时,你的软件最好已经准备好了!

而硬件供应商需要什么?

  • 灵活性。你的软件必须容易适应他们的任何类型的设备,而不需要大量的定制工程,他们将在产品的生命周期中负责支持。
  • 能使他们的设备看起来不错的功能。对其物理硬件特性的支持、良好的性能、令人愉快的用户界面……人们购买它的理由基本上是这些。
  • 稳定性。不能崩溃并将用户抛弃在命令行终端提示符下。必须可以实际工作。不能让人感觉像一个业余的科学展览会项目。
  • 可用性要足够好,以减少支持成本。当出现问题时,“主流人群”会联系他们的硬件供应商。可用性需要足够好,以便尽可能少地发生这种情况。

它不需要完美。它只需要做这些事情。这就是 Windows 在 90 年代征服了个人电脑市场的方式,尽管它很糟糕!而我们的东西要好得多!

我看到有证据表明 KDE 已经是这样了。Pine 在 PinePhonePineBook Pro 上分别为 Manjaro 提供了 Plasma 的移动版和桌面版。Valve 也为 Steam Deck 选择了 Plasma 的桌面版,在他们的新版 SteamOS 中取代了 GNOME。我认为 KDE 软件定位良好,并且一直在变得更好。因此,让我们继续加倍努力提供硬件供应商销售其出色产品所需的东西。

原文由 KDE 开发者 Nate Graham 发表在他的 博客 PointiestStick 中。 本文经许可后转载。所表达的观点代表作者自己,可能不能反映我们的观点。


via: https://news.itsfoss.com/what-desktop-linux-needs-to-succeed-in-the-mainstream/

作者:Nate Graham 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出