AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

Deno 1.0 发布:为 JavaScript 和 TypeScript 提供安全运行时环境

  • 2020-06-23
  • 本文字数:1409 字

    阅读完需:约 5 分钟

Deno 1.0发布:为JavaScript和TypeScript提供安全运行时环境

经过了为期 2 年的开发,Deno 终于在 2020 年的 5 月份完成了1.0版本。其官方网站宣称,Deno 为 JavaScript 和 TypeScript 提供了一个安全的运行时环境。听起来是不是和 Node.js 类似?没错,就是这样,因为 Deno 是由 Node.js 的原班人马开发的。Ryan Dahl(Deno 和 Node.js 作者)之前发表过一篇文章——“关于Node.js最让他后悔的10件事”。为了解决文章中提到的问题,他创造了 Deno。和 Node.js 一样,Deno 可以在 V8 引擎上运行 JavaScript,TypeScript 和 WebAssembly 应用。对于应用开发者来说,相对于 Node.js,在使用 Deno 开发时有些地方是需要注意的。


在模块方面,Node.js 是二进制模块化文件,而 Deno 是单个二进制文件应用。它没有使用像 NPM 那样复杂的依赖管理解决方案。取而代之的是,当开发人员需要定义依赖关系时,只需要在源码中直接使用 URL 即可。截至目前,已经大约有超过500个第三方的Deno模块可以供使用。看看这种方式是否可以在企业应用中进行推广,将是一件很有趣的事情。因此,Deno 通常不兼容那些为专门为 Node.js 编写的 NPM 包。不过,移植并非难事,因为它们使用了相同的编程语言和框架。Deno 已经支持了大量的Node.js内置库对象。与 Node.js 相比,Deno 的运行时默认就是安全的,因此如果应用需要访问文件系统或者网络,那么开发者就需要进行额外的声明。


在 API 编程方面,Deno 优先支持 TypeScript。Deno 的运行API大量的采用了 TypeScript 或 JavaScript 中的 Promises 和 async/await API,这些 API 在 Node.js 被设计时还不被支持。除了 TypeScript 和 JavaScript,Deno 应用还可以加载和执行 WebAssembly 的字节码程序。例如,在 Deno 中,Sqlite模块就被从 C++编译成了 WebAssembly。此外,开发者还可以使用 Rust 对 Deno 进行扩展,这将允许使用 Cargo(Rust 的依赖和包管理系统)来管理 Deno 的插件和附加组件。


在底层方面,Deno 使用 Rust,而没有像 Node.js 那样使用 C 或者 C++来访问底层 V8 引擎。同时,在支持 web 应用的高并发时,Deno 使用了 Rust 的Tokio,而不是 libuv。


虽然 Deno 才刚刚完成 1.0 版本,但是它已经得到了很多业内知名人士的支持。其中,有诸如AWS LambdaAzure Functions和 Google Cloud Run之类主流云供应商;也有来自Begin.com的布赖恩·勒鲁(Brian Leroux),他同时还在 AWS 上对 Deno 进行了测试,且宣称Deno的启动时间只需要短短的6秒;还有 JetBrain 的WebStorm(最受欢迎的 JavaScript 的 IDE)也宣布支持 Deno。


然而,在对 Deno 的未来一片看好的情况下,依然还有大多数的开发人员相信 Node.js 会继续存在下去,且未来 Deno 很难超过 Node.js。这些开发者们的理由是 Node.js 有庞大的生态系统和大量的企业应用。


Fernando Doglio(Node.js 专家和书籍作者)说到:

Deno 目前还只是一个经过了 2 年研发的想法,还没有在生产系统进行实践和测试。因此它现在还只适合给早期使用者玩玩。


在 Deno1.0 版本发布之后的三周里,Deno 团队已经发布了5个小版本,主要是为了修复一些 bug。Deno 的下一个版本是v1.1,该版本的计划是对 CLI、公共 API 及其 Rust 插件系统进行改进。要了解更多关于 Deno 的未来计划,请查看即将在公开的OpenJS世界大会上 Ryan Dahl 的演讲


Deno 是基于 MIT 协议的开源软件。如果想对Deno项目进行贡献和支持的话,需要遵循它的贡献指南


原文链接:


https://www.infoq.com/news/2020/06/deno-1-ready-production/


2020-06-23 12:294273

评论

发布
暂无评论
发现更多内容

我摊牌了,大厂面试Linux就这5个问题

艾小仙

Java Linux 面试 大厂

《图解数据结构》.pdf

田维常

数据结构

计算机网络基础

Minar Kotonoha

node.js 大前端 计算机网络 HTTP

Spock单元测试框架实战指南三 - f esle 多分支场景测试

Java老k

单元测试 spock

自营电商渠道转化率的简单设计思路

boshi

推广

区块链防伪溯源平台开发解决方案

t13823115967

区块链+ 区块链产品溯源

K8s 将弃用 Docker;TypeScript 超越 C++ 成第四大语言

京东科技开发者

程序人生

蕃茄田宋姝梦:科技赋能时代,儿童在线艺术教育的思考

ZEGO即构

美女面试官问我:说说你对序列化的理解

田维常

序列化

话题讨论 | Vue凭什么成为2020的一匹黑马?

黑马腾云

话题讨论

架构师训练营第三周学习总结

Geek_xq

福利 | 这些网站有免费代理IP!

前嗅大数据

大数据 代理IP 网站反爬 免费代理ip 封ip

大型团队实践敏捷开发管理的挑战与应对

万事ONES

敏捷开发 研发管理 敏捷开发管理 开发管理

甲方日常 63

句子

工作 随笔杂谈 日常

分布式搜索引擎Elasticsearch的架构分析

vivo互联网技术

elasticsearch 分布式 分布式搜索引擎

苦修月余,斩获bigo、腾讯offer,面经奉上!

艾小仙

Java 腾讯 面试 腾讯大厂

话题讨论 | 用好VSCode这13款插件和8个快捷键,工作效率提升10倍

程序员柠檬

话题讨论

让战略不再”空虚“的战略描述

Alan

战略思考 战略

架构师训练营第十一周学习笔记

一马行千里

学习 极客大学架构师训练营

软件开发中的防呆方法总结

张明云

DevOps 软件开发 技术架构 防呆 模式

架构师训练营第十一周命题作业

一马行千里

极客大学架构师训练营 命题作业

vivo官方商城架构演进之路

vivo互联网技术

中台 架构演进 服务化

系统稳定性建设实践总结

架构精进之路

系统架构 自我思考 系统稳定性

智慧公安大屏可视化决策系统搭建

t13823115967

智慧公安 智慧大屏可视化

DeFi质押挖矿APP系统开发|DeFi质押挖矿软件开发

系统开发

JVM垃圾回收?全面详细安排!

程序员的时光

JVM GC

《程序员数学:使用Python进行3D图形,机器学习和仿真》PDF免费下载

计算机与AI

Python 学习 数学

架构师视角 | 分布式缓存如何选择 ?

Java架构师迁哥

传销组织的CTO | 法庭上的CTO(4)

赵新龙

CTO 传销 法庭上的CTO

LeetCode题解:45. 跳跃游戏 II,贪心正向查找,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

程序员有必要读研吗?

Java架构师迁哥

Deno 1.0发布:为JavaScript和TypeScript提供安全运行时环境_大前端_Vivian Hu_InfoQ精选文章