Ladybird 浏览器项目

Ladybird 是一个从 SerenityOS 项目中分拆出来的实验性 C++ 网络浏览器引擎。它因一个小团队在很短时间内就让它渲染主流网站并从零开始实现现代 Web 标准而受到关注。评论者将其视为对 Blink/WebKit/Gecko 三足鼎立格局的少见新竞争者,也是对 Google 日益影响事实上的 Web 标准的一种对冲,但同时质疑其长期安全性、资金稳定性、宽松许可,以及对 Discord 进行协作的依赖。许多人指出,如今更丰富的规范和共享测试套件使这类项目比过去更可行,但也警告说,要达到主流浏览器的安全加固水平和功能面仍然是一项巨大的工程。

项目范围与进展

  • 许多评论者对一个小团队能构建出一个新的引擎并且已经能相当好地渲染复杂网站(例如 GitHub、Google Docs)表示印象深刻。
  • 先前的浏览器/引擎经验以及自定义的 C++ 标准库被认为是项目推进速度的关键推动因素。
  • “从零开始”的单一仓库做法(自有字符串类、自有图像解码器、SVG、JS 引擎、JIT,甚至一种新语言)因其迭代速度和整体一致性而受到称赞,但也有人认为这过于夸张。

资金、赞助与动机

  • 来自 Shopify 和一家房地产网站的赞助(该网站付费让自己的站点能够正确渲染)被强调为值得注意的企业支持。
  • 有人担心自 2023 年中以来没有新的赞助商,可能意味着资金方面存在挑战。
  • 关于这是否“只是为了好玩”还是一个严肃的长期浏览器,存在争论;一些人认为许多大型项目最初都是从爱好开始的,但也有人说,目前对安全性的期望应当先放低。

兼容性、标准与浏览器单一文化

  • 许多评论者表示 Firefox 几乎能正常访问所有网站;少数人提到某些网站只有在 Chrome/Blink 中才能使用。
  • 针对 Chrome/Blink 主导地位以及开发者只面向该引擎进行开发的批评持续不断;有人将责任归咎于浏览器厂商,也有人归咎于前端团队和管理层。
  • 标准以及大型共享测试套件(Web Platform Tests、JS test262、Interop 计划)被认为让今天开发新引擎变得更可行。
  • Ladybird 的务实策略是实现热门网站所需的功能,这与其他替代引擎(例如 Servo、NetSurf)形成对比,后者往往无法很好地渲染现代页面。

安全性与实现选择

  • 使用自定义媒体解码器和 C++ 让一些人感到担忧;怀疑者认为即便是大型厂商也很难确保这类代码的安全。
  • 支持者回应说,更小、更整洁的代码、严格的沙箱、模糊测试以及 sanitizer 可以让新的技术栈在安全性上具有竞争力,不过没人声称它是绝对无懈可击的。
  • 有些人希望最终能用项目中更安全的内存语言重写;也有人指出这门语言相关的工作已经放缓。

社区、许可与可访问性

  • 一些人批评使用 Discord 进行协作,以及采用宽松的(“pushover”)许可证;他们更喜欢 copyleft 和完全自由的基础设施。
  • 缺少官方二进制包/ISO,以及“只面向技术用户”的立场,在一些人看来像是生硬的把关行为,而在另一些人看来,则是在项目尚年轻时有意限制非技术支持负担的一种方式。