查看原文
其他

人称“Node杀手”的Deno正式发布2.0,这集又是Rust赢了!

开源中国 OSC开源社区
2024-10-25
↑点击上方蓝字关注「OSC开源社区」
开源 JavaScript 和 TypeScript 运行时 Deno 于近日正式发布了 2.0 版本。

作为一个现代化的 JavaScript/TypeScript 工具链,Deno 在上个版本就已经具备了原生 TypeScript 支持、内置的格式化和测试等功能。

此次 2.0 版本的亮点在于,Deno 现在可以与 Node.js 生态实现完全的向后兼容

Deno 创建于 2018 年,由 Node.js 之父 Ryan Dahl 发起,旨在为 JavaScript 和 TypeScript 提供一个安全、现代化的运行时环境。

经过 2 年的发展,Deno 1.0 版本于 2020 年正式发布。尽管 Deno 一直在稳步发展,但与 Node.js 的不兼容性在一定程度上限制了它的应用范围。

Deno 2.0 的核心变化是全面支持了 Node.js 和 npm 生态。这意味着现有的 Node.js 应用程序可以平滑地迁移到 Deno 上运行。
开发者不仅可以在当前的 Node.js 项目中使用 Deno,还能渐进式地引入 Deno 的各种工具,如使用 deno fmt 格式化代码等。
此外,Deno 2.0 还原生支持 package.json 和 node_modules,并提供了新的包管理命令如 deno install / add / remove 等。这使得使用 npm 包的体验和在 Node.js 中几乎一致。
Deno 团队表示,这种兼容性的实现带来了优异的性能,在依赖安装速度上比 npm 还要快。

不仅如此,Deno 在日常 JavaScript 和 TypeScript 开发中也实现了重要的性能改进——无论是启动时间、处理复杂请求还是整体效率。

以下是一些展示 Deno 优势的基准测试,证明了它能够为开发者和生产环境提供顶级性能。

值得一提的是,Deno 的标准库也已经稳定,提供了数十个经过严格审核的实用模块。不少模块可以取代 npm 上常用的同类库,如测试框架、CLI 解析、基础工具集等。

此外,Deno 2.0 对私有 npm 源、monorepo 工作区等场景也提供了完善的支持。

尽管做了大量的兼容性工作,但 Deno 并不会改变 “去繁就简” 的设计理念。用户仍然可以不依赖任何配置文件来运行 Deno 代码。新增的包管理命令也不是必需的,主要是为了方便管理更为复杂的项目。

Deno 团队强调,他们的目标不是成为 Node.js 的替代品,而是为 JavaScript 提供一个更现代、高效的全功能工具链,让 Web 开发变得更简单。

那么最后问题来了:


下图是三大主流 JavaScript 运行时的特性对比 :

Deno 是基于 V8 引擎和 Rust 编程语言编写的现代化 JavaScript 和 TypeScript 运行时,由 Node.js 之父 Ryan Dahl 创造。

Ryan Dahl 在 2018 年的演讲“我为 Node.js 感到后悔的十件事” (“Design Mistakes in Node”)中宣布了 Deno,

当时他提到后悔为 Node.js 制定的部分设计,例如没有在 API 中使用 JavaScript 的 Promise、GYP 建构系统、省略文件的扩展名、node_modules 与 package.json、使用 index.js 进行模块解析、V8 的沙盒环境等等。

Ryan 还指出了一个主要的问题——他没有把运行时做到尽可能的安全。之后,他在创建 Deno 时选择采用主打“内存安全”的 Rust 编写,以解决这一问题。Deno 也被宣传为“默认安全”。

对此,五星开源上将麦克阿瑟表示,Ryan Dahl 做开源就跟打游戏一样,大号级数再高,总想练个小号,避过玩大号时候走过的坑。

相关来源

https://deno.com/blog/v2.0

https://www.theregister.com/2024/10/09/deno_20_now_plays_nicer/


延伸阅读

JS三大运行时对比:Deno、Bun和Node.js

Windows版Bun将于本月发布,Zig编写的JavaScript运行时

Rust编写的跨平台UI框架——Tauri正式发布2.0稳定版,是时候把“毒瘤”Electron换掉了

Zig编写的 “全家桶” JavaScript运行时Bun,性能完爆Node.js和Deno


END


热门文章

Rust非常安全编程语言,使Android漏洞大幅下降
高通拟收购英特尔——Arm与x86之争到此为止?“革命性”「Safe C++」扩展提案:质疑Rust、理解Rust、成为Rust?
我有一个大胆的想法:呼吁Linus延迟退休!Zen浏览器——号称是“开源版Arc”、轻如鸿毛、快如闪电

分享、在看与点赞 Orz
继续滑动看下一个
OSC开源社区
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存