【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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

评论

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

java开发之Redis数据结构

@零度

redis JAVA开发

2022年RPA行业发展十大趋势,六千字长文助你看懂RPA

王吉伟频道

RPA 机器人流程自动化 RPAaaS 超自动化 自动化优先

在字节,A/B 实验是这么做的!

字节跳动数据平台

大数据 字节跳动 AB testing实战 ab测试

恒源云(GPUSHARE)_实例关机后如何操作迁移?

恒源云

gpu 运维 实例

数据安全是指什么?有什么意义?

行云管家

防火墙 信息安全 数据安全 堡垒机

大数据平台中的企业级数仓建设

五分钟学大数据

数据仓库 1月月更

推动数字化人才发展|奈学科技CEO孙玄受邀出席2022年CXO领导力峰会

科技热闻

17 Prometheus之服务发现介绍

穿过生命散发芬芳

Prometheus 1月月更

实战 MongoDB Aggregate

PingCode研发中心

mongo pipeline Expression

前端开发之Vue事件修饰符和按键修饰符

@零度

Vue 前端开发

无服务器应用DevOps最新实践(内附完整演讲+视频)

亚马逊云科技 (Amazon Web Services)

计算

建木持续集成平台v2.2.0发布

Jianmu

开源 持续集成 CI/CD

深入解析Apache Pulsar系列: Broker消息确认的管理

博文视点Broadview

LeetCode 每日一题 No.1220 统计元音字母序列的数目

DawnMagnet

rust LeetCode 力扣

IT运维人员日常工作包含哪些?核心任务是什么?工作量多吗?

行云管家

运维 IT运维 服务器运维

带你玩转Flink流批一体分布式实时处理引擎

华为云开发者联盟

flink 分布式 实时计算 批处理 流处理框架

【网络安全】2022年第一次靶场渗透实战学习

H

网络安全 渗透测试

改进企业CRM系统实施的方法

低代码小观

企业管理 CRM 企业管理系统 CRM系统 企业管理工具

60岁代码匠的几篇小作文,解决了大多数程序的迷茫(上)

图灵社区

java 编程

都2022年了,你的前端工具集应该有vueuse

华为云开发者联盟

Vue 前端 API 工具集 vueuse

复盘和反思一个被全公司邮件通报的漏测

LynnYang

测试 Postman Mock

Flink是如何支持批流一体的

编程江湖

flink

Linux下玩转nginx系列(一)——初识nginx及其使用入门

anyRTC开发者

nginx Linux 音视频 WebRTC 服务器

这8个JS 新功能,你应该去尝试一下

华为云开发者联盟

JavaScript 前端 开发 索引 开发语言

阿里云视频云「 vPaaS 」演绎了怎样的音视频应用开发「未来图景」?

阿里云视频云

阿里云 音视频 低代码 低代码开发平台 视频云

60岁代码匠的几篇小作文,解决了大多数程序的迷茫(下)

图灵社区

java 编程

第二节:SpingBoot单元测试

入门小站

java 编程

手把手教程|通过部署 Apache Superset 实现 Amazon S3 的数据可视化

亚马逊云科技 (Amazon Web Services)

analytics

物联网场景中灵活实施对设备的控制管理

亚马逊云科技 (Amazon Web Services)

analytics

4 种高速安全混合云解决方案,助力您的云迁移之旅!

亚马逊云科技 (Amazon Web Services)

网络

iOS——解密RunLoop原理

iOSer

ios iOS面试 ios开发 RunLoop

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