Mozilla 被放弃的网页引擎“Servo”项目正在重启

Mozilla 基于 Rust 的 Servo 浏览器引擎长期以来被视为 Gecko/Blink 的一个有前景但被放弃的替代方案,如今正在复活,并因可能作为桌面应用的嵌入式引擎而重新受到关注,Tauri 也在探索这一方向。评论者围绕其在性能、安全性和浏览器引擎多样性方面的价值展开讨论,同时也提到其缺乏成熟的嵌入式 API、以及 Electron 和基于 Chromium 的方案在现实中的主导地位等实际障碍。讨论还回顾了 Mozilla 当初取消 Servo 的战略失误、原生与基于 Web 的桌面工具之间的更广泛取舍,以及人们希望 Servo 的新管理方能把它打造为一种可行、轻量的现有 WebView 替代方案。

Servo 的目的与重启背景

  • 评论者对 Servo 最初的定位存在分歧:
    • 作为一个全新开发的 Rust 引擎,最终取代 Gecko。
    • 作为一个试验平台,用来试验新的引擎技术,然后将其移植到 Firefox 中(例如 Quantum 时代的改动)。
  • 许多人认为这次重启是受欢迎的,尤其是在 Mozilla 裁撤 Servo 团队并将其捐出后,曾让人感到失望。
  • 也有人担心,如果资金或关注度再次动摇,历史可能会重演。

Tauri、WebView,以及“用 Rust 写的 Electron”

  • Tauri 正在尝试将 Servo 作为系统 WebView 的替代方案。
  • 系统 WebView 的痛点包括:不可靠(尤其是在 Windows 上做“去预装软件”式调整时)、平台差异,以及在打包基于 Chromium 的引擎时安装包体积很大。
  • 人们希望基于 Servo 的方案更小、更可控(可通过 Cargo 编译所需功能)。
  • 批评者指出,这实际上又回到了 Electron 模式(每个应用自带引擎),只是换成了 Rust。

原生应用与 Web 技术桌面应用

  • 争论非常明显:
    • 一方认为 Electron 式“浏览器套壳”应用臃肿、占用内存大,是一种“向下竞赛”。
    • 另一方则认为 Web 技术栈主导了就业市场,降低了跨平台开发成本,并使许多原本可能根本不会存在的应用成为可能。
  • 提到的替代方案包括 Qt/QML、GTK、wxWidgets、Flutter、React Native、Tauri、NodeGui、Sciter 等,但与 Electron 相比,人们认为采用率仍然很低。
  • 有人希望应用商店能提供更好的标识(例如“原生应用”徽章),而不是禁止 Electron。

作为可嵌入引擎的 Gecko/Servo

  • 有几位评论者希望有基于 Gecko/Servo 的 Electron 或 Chromium Embedded Framework 的对应方案。
  • 在 Firefox 之外使用 Gecko 被描述为很痛苦;过去基于 Gecko 的应用和浏览器大多已经消失,或迁移到了 WebKit/Blink。
  • 也有人对 Servo 自称可嵌入感到不满,因为它缺乏成熟、类似 CEF 的公共 API;虽然有嵌入示例,但被认为远远不够。

Rust、并行化与性能争论

  • 一种观点认为,Servo 和 Rust 促成了成功的并行 CSS 样式计算,而 Gecko 中的 C++ 尝试未能做到这一点,这让 Firefox 获得了独特的性能优势。
  • 反对观点则认为,成功更多归因于从零开始的重新设计,而不是 Rust 本身;类似的模式也可以在 C++ 中实现。
  • 有人否定 Rust 会自动带来安全性和性能的说法;也有人强调它在编译期保证以及浏览器中的安全收益。

Mozilla 的管理与战略

  • 不少评论批评 Mozilla 的领导层,尤其是高管薪酬、副业项目,以及被认为对浏览器本身缺乏专注。
  • 也有人反驳说,Mozilla 还有更广泛的生态(例如 Thunderbird),并不同意如果没有这个基金会世界会更好。