10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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:294346

评论

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

七月创作之星挑战赛开始咯~

Openlab_cosmoplat

开源 开源社区 创作活动

谁在以太坊区块链上循环交易?GeaFlow+Kafka的0元流图解决方案

TuGraphAnalytics

区块链 以太坊 kafka 图计算 GeaFlow

SpringIoc容器之Aware | 京东云技术团队

京东科技开发者

spring aware springloc Aware 接口 企业号 7 月 PK 榜

华为云GaussDB亮相2023可信数据库发展大会,荣获三项评测证书!

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

实例讲解看nsenter带你“上帝视角”看网络

华为云开发者联盟

开发 华为云 华为云开发者联盟 企业号 7 月 PK 榜

一辆没有“刹车”的跑车,你敢开多快?

原点安全

数据资产价值 数据安全管理 贴源保护

持续推进平台化、生态化用友助力数智化安全有效落地

用友BIP

信创 国产替代

Mybatis-SQL分析组件 | 京东云技术团队

京东科技开发者

mybatis sql mybatis入门 企业号 7 月 PK 榜

CST电磁仿真软件配置的CPU、内存、显卡显存越大越好吗?

思茂信息

cst cst使用教程 cst操作 cst电磁仿真 cst仿真软件

科兴未来|2023“直通乌镇” 全球互联网大赛

科兴未来News

全新技术驱动预算管理全面升级

用友BIP

全面预算

从混沌到秩序的蜕变,SRE解码云计算运维奥秘

鲸品堂

云计算 SRE SRE实践 企业号 7 月 PK 榜

网易三个S级项目制作人,为什么选择在这个渠道“爆料”?

最新动态

从大数据到图计算-Graph On BigData

TuGraphAnalytics

GitHub 大数据 开源 图计算 GeaFlow

一文搞懂Git,掌握日常命令和基本操作

互联网工科生

git 知识

Kubernetes云原生实战:分布式GeaFlow实现图研发,构建第一个商业智能应用

TuGraphAnalytics

Kubernetes 云原生 k8s BI 商业智能

构建学生数据库

猫九

数据库·

论文解读|TuGraph Analytics 流式图计算论文入选国际顶会 SIGMOD

TuGraphAnalytics

大数据 论文 图计算 SIGMOD GeaFlow

如果我是一个小白,怎么开发网页

猫九

前端

数智化底座正在成为当前竞争的焦点

用友BIP

数智底座

体系完整的数智化底座支撑企业创新发展,实现国产替代

用友BIP

国产替代

我感兴趣的技术四剑客 | 社区征文

法医

前端 年中技术盘点

APP流水线测试领域探索与最佳实践 | 京东物流技术团队

京东科技开发者

测试 app测试 app自动化测试 企业号 7 月 PK 榜

Pytorch: autograd与逻辑回归的实现

timerring

人工智能

谈谈分布式事务

Monin

分布式事务 微服务 云原生 事务 java 编程

掌握 Dubbo:入门教程

Apifox

程序员 gRPC dubbo RPC 开发

使用第一性原理思维思考如何打造提高生产力的平台 | 京东云技术团队

京东科技开发者

数字化转型 平台工程 企业号 7 月 PK 榜

云拨测全面升级丨单次拨测低至 0.001 元

阿里巴巴云原生

阿里云 云原生 可观测 云拨测

基于STM32的300W无刷直流电机驱动方案

元器件秋姐

驱动 无刷电机 直流电机 SMT32 FOC

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