Deno是什么?为什么大家都在谈论它?
Deno 是一个炙手可热的新型运行时环境,它有可能取代 Node.js。每个人都在谈论它,仿佛它就是下一个重大突破。它很可能就是。原因如下。
什么是Deno?
手册原文:
Deno 是一个 JavaScript/TypeScript 运行时环境,具有安全的默认设置和出色的开发者体验。
它基于 V8、Rust 和 Tokio 构建。
Deno旨在取代我们挚爱的 Node.js,它由 Ryan Dahl 领导,他早在 2009 年就启动了 Node.js 项目。该设计源于他对 Node.js 的 10 个遗憾之处。
所以 Deno 的目标是挑战 Node.js,如果没有 Ryan 的领导,这简直就是一项不可能完成的任务。以下是关注 Deno 的几个原因:
- 它是由Node.js的创始人创建的。
- 它直接解决了Node.js的不足之处。
所以,目前看来开局不错。但让我们来看看它背后的一些技术,看看这是否重要。
是什么赋予了迪诺力量
手册里提到了V8、Rust和Tokio。如果你不知道这些是什么,手册就没什么用了。
V8是谷歌的高性能 JavaScript(现在也支持 WebAssembly)引擎。Node.js 和 Chrome 目前都在使用它。V8 可以独立运行,速度极快。过去几年,该引擎的开发取得了巨大的成功。注意:V8 会将 JavaScript 编译成原生机器代码,以实现超快的性能。以下是关于 V8 的一些更精彩的信息。
Rust是一种速度极快的系统编程语言。它没有运行时库或垃圾回收器。它的主要关注点是性能和内存安全。以下是 Rust 的其他一些优点。
Tokio是 Rust 的异步运行时环境。它是一个事件驱动平台,用于构建快速、可靠且轻量级的网络应用程序。它速度极快,并且能够很好地处理并发任务。
所以你看出其中的规律了吗?Deno 由快速、轻便、安全的技术组成。我们已经有了一个良好的开端。
那么,为什么要推陈出新呢?
自 2009 年以来,JavaScript 已经发生了很大的变化。开发、性能和功能在这段时间里都发生了翻天覆地的变化,而 Node.js 也尽力跟上时代的步伐。或许从头开始才是更好的选择。
Dahl 指出,以下是他发现的 Node.js 的一些设计问题。
- 模块系统及其分布
- 必须支持的旧版 API
- 安全问题
Deno旨在解决所有这些问题。
如果你使用Node.js有一段时间了,你肯定了解 NPM 及其一些特性。就我个人而言,我觉得它还不错,当然还有改进的空间。它采用的是中心化仓库模式 (npmjs.com),这种模式也存在一些问题。
Deno 模块可以托管在任何地方。此外,它们还会缓存在本地。除非你想更新,否则无需更新它们。非常棒。
Deno 的安全机制是集成式的。除非明确启用,否则它无法访问文件或网络资源。如果出现未捕获的错误,程序会崩溃。
TypeScript 是内置的——这完全是为开发者准备的。您可以充分利用 TypeScript 进行开发,并使用所有那些高级的显式类型和其他语言特性。
最大的潜在收益是什么?
Deno 承诺提供卓越的性能和安全性。这固然是一大优势,但它最大的优势在于开发者体验。它旨在让你的工作更轻松。具体来说:
您可以使用:
- ES6
- TypeScript
- 远程存储库
太棒了,这些都很好。但你也可以:
- 使用 Deno 进行测试- 无需费力寻找各种工具或争论哪个最好,核心中内置了测试运行器。
- 格式化代码- 你可以使用“deno fmt”来格式化文件。这是我喜欢 Go 的原因之一。在过于注重规范的环境下工作固然有其弊端,但它也能为开发者节省大量时间。
- 调试- Deno 内置了调试功能,因此您无需在互联网上苦苦寻找最好的调试器。
- 编译和打包- 据我所知,这项功能尚未完成,但它有一个相当不错的打包器,而且未来还会有更多改进。
这些都是以开发者为中心的改进。虽然人们可能会对速度和安全性赞不绝口,但更令人欣慰的是,开发者使用 Deno 创建应用程序不会再遇到太多难题。
哦,而且它只有一个可执行文件。这真是个好消息。任何经历过依赖关系和破坏性变更的人都知道,拥有一个稳定可靠的可执行文件是多么令人欣慰。你可以随时更新它,而不用担心依赖关系的问题。
结语
Deno 将会掀起一场变革。它将带来:
- 表现
- 安全
- 减少开发者的痛苦
这里蕴藏着巨大的潜力。迪诺还承诺:
- 遵守网络标准
- 防止 API 被弃用
- 包含 TypeScript
- 内置工具
Deno 的未来一片光明,我迫不及待地想深入研究并用它来创造一些东西。它看起来非常有前途。
你用Deno做过什么东西吗?你觉得怎么样?快告诉我吧!
如果你想提升你的 JavaScript 技能,不妨看看这些很棒的课程。
文章来源:https://dev.to/pluralsight/what-is-deno-and-why-is-everyone-talking-about-it-336d




