Skip to content

选题讨论

Status: SUSPENDED

目前全组成员经过讨论,初步确定选题为:

  • 对 Rust 编写的 JS 引擎 Nova 进行完善和性能优化。预期可以比目前唯一的 Rust 编写的 JS 引擎 Boa 快 30% 以上。
  • 编写基于 Nova 的 JS 运行时的 event loop 和 fs 部分

选题依据

  1. JavaScript 是目前最流行的编程语言之一,且在浏览器等环境下没有与之竞争的语言。
  2. GNOME Shell 使用 JS 编写,而 Chrome OS 也高度依赖执行 JS 的能力。JS 引擎的发展对于操作系统自身的发展有着重要的意义。
  3. 虽然 V8 等成熟引擎已经足够 (内存) 安全,但 Rust 编写的 JS 引擎可以更好地和 Rust 生态结合,从而实现整体的安全性提升。
  4. Nova 作为轻量级的引擎,相比 V8 更适合在一些嵌入式场景中使用。
  5. Nova 包含了一些对 JS 引擎的创新设计,比如使用 index 而非 compressed pointer 等,因此即使性能无法超过 V8,仍然有很高的积极意义。

选题缺陷

  1. 由于 V8 已经投入了大量的人力进行了长时间的开发,没有其他引擎能够比肩其性能,包括 Nova。上述 4. 5. 说明了在这种情况下 Nova 的价值。
  2. Node / Deno / Bun,尤其是 Bun,均已在 JS Runtime 上进行了大量的优化,已经拥有极高的性能,我们大概率无法在规定时间内超越它们(比如对于 fs 模块)。因此在性能上超越他们不是我们的目标。