node 更新_被创造者嫌弃,Node.js 如何应对来自 Deno 的挑战

(给前端大全加星标,提升前端技能)

转自:OSC开源社区

JavaScript 运行时 Node.js 于日前更新到了 15 版本,该软件自发布至今已走过了 11 年的岁月。但在今年 5  月,其竞争对手 Deno 也发布了 1.0 版本。Deno 是一个 Javascript/TypeScript 的运行时,由 Node.js 之父 Ryan Dahl 开发,是专门为了修复 Dahl 认为的 Node.js 的关键弱点而创建的--包括安全问题、使用集中式仓库系统(npm)以及"繁琐的工具"。

目前,Deno 在 Github 上已有 68.7k 个 star,且还在持续增长中。Node.js 目前在 Github 上的 star 数则为 74.5k。

8c4bd535b2f52b1490f81473e8f42efa.png

e6b438409d0762c77c71ef67799678aa.png

为了了解当前一代 Node.js 维护者是如何应对新的挑战者的,进而了解他们是如何应对 Dahl 的批评的,一位名为 Richard MacManus 的编辑采访了红帽公司的高级软件工程师、Node.js 技术指导委员会成员 Bethany Griggs。Griggs 自 2016 年以来一直参与 Node.js 项目,主要工作于 Node.js Release Working Group。

Griggs 在采访中表示,Node.js 仍然是构建云原生微服务和后端应用程序的主要运行时之一。并补充称,Node.js 在 IoT 项目中也很流行,其中她最喜欢的一例应用就是 — NASA 使用 Node.js 来监视 space suit 数据。

对此,Richard 则认为,除了 space suit 之外,Node.js 已不再被视为 JavaScript 开发的热门新事物。相比较而言,前端 React 框架 Next.js,可能要更占据上风。且与 Deno 的一些先进特性(例如,Deno 是用流行的新编程语言 Rust 编写)相比,Node.js 项目如今更遵循相对保守的发展道路。Richard 称,因此,Node.js 15 是一个增量升级也就不足为奇了。

另一方面,Griggs 还指出 15 版中有一重要更新内容是,将未处理的拒绝改为了throw模式。并表示,这意味着开发人员现在可以获得“早期反馈,即他们正在忽略应用程序中的错误处理”。Richard 认为,不可否认这是一次有价值的技术更新,但他认为这更新不太可能在技术圈引起多大的关注和讨论。

回应 Ryan Dahl 的批评

在几年前,Dahl 曾做了一个演讲,讲述了他创建 Node.js 后的遗憾。指出一个主要的问题是,他没有把运行时做到尽可能的安全。之后,他则在创建 Deno 时解决了这一问题,Deno 也被宣传为 "默认安全"。

Richard 表明,他更好奇的是,Node.js 项目组是否进行了新的开发、或者修复,以解决 Ryan Dahl 在过去几年中提出的一些问题?

fdfa06a9e94917e2b8bee9ed80ac9b10.png

而 Griggs 则较为官方地回答了 Richard 的这一问题表示,Node.js 将从 Deno 中“汲取灵感”。不过她也指出,其实早在 Deno 诞生之前,Node.js 就已经有了围绕安全执行和限制 API 访问的讨论历史。并列出了几个与安全性有关的“实验性功能”(示例1,示例2)。

此外,Griggs 也表示,她并不认为 Deno 的安全优先的访问方式适合 Node.js。"对于实际应用来说,你很快就得妥协到授予对许多 API 的访问权,所以净价值与复杂性的关系会很低。"

她还透露,虽然 Node.js 项目团队有兴趣尝试更强的安全功能,但目前还没有一个充分的理由来驱使他们做出采用与 Deno 相同策略的决定。

至于 Dahl 批评 npm 是一个封闭的模块生态系统,Griggs 则认为,Node.js 没有理由在这一点上做出改变。

Griggs 还表示,Next.js 和 Gatsby 等 JavaScript 框架的流行,以及 Jamstack 及其静态网站生成方式的兴起,也并没有对 Node.js 的应用造成多大影响。Node.js 仍被大量用于构建微服务;在构成客户端 JavaScript 开发管道的工具中,Node.js 也仍然被大量使用。

最后,在未来愿景方面,Griggs 透露,在 Node.js 项目的未来十年计划中,该团队已将开发人员的经验、稳定性、操作质量,Node.js 维护者经验以及最新的技术和 API 定义为优先事项。

推荐阅读  点击标题可跳转

1、彻底搞懂 Node.js 中的 Require 机制

2、前端赋能业务:Node实现自动化部署平台

3、sync_hooks、CLS 与 Node 中异步资源生命周期监听

觉得本文对你有帮助?请分享给更多人

关注「前端大全」加星标,提升前端技能

b1b21c2921212658f8a1b9ea2a5f8623.png

点赞和在看就是最大的支持❤️

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428157.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

L1-046 整除光棍 (20 分)

这道题的解题过程真是一波三折,也真是发现人外有人,天外有天,好多神人真是。 原题如下图,也可点击这个链接到原题自己测试光棍原题链接: 一开始做的时候的想法:so easy,虽然看到了题目中提示s可能超级大…

uci数据集_数据分析找不到数据集?快来看这个盘点

前言数据集相对于机器学习而言是至关重要的,可以说好的数据集是成功的一半。但是,我们很难找到一个特定的数据集来解决各种机器学习问题,甚至是进行实验。因而找到合适的数据集是一件很难的事情,接下来我们就盘点一下一些优质的数…

git保留两个repo的commit并进行合并

以往的合并时首先要删除repo的.git文件夹,然后重新add-commit-push。带来的问题是会丢失某一个仓库的提交信息,不利于时光倒退。经过摸索终于实现了保留两个仓库提交信息的合并方法。介绍如下: 比如要将DownloadPicsBySeleniumAndPhantomJS这…

安利一款编辑神器——Markdown

经常使用word或者那些浏览器自带编辑器的你可能会和我有时候遇到一样的烦恼,调整格式可真是不容易,如果你也有同样的烦恼,不妨可以试一下Markdown,值得你拥有哈。 Markdown的使用 1.安装使用篇 a.首先安装软件,然后创…

一个项目部署多个节点会导致锁失效么_Redis分布式锁

分布式锁在很多场景中是非常有用的原语, 不同的进程必须以独占资源的方式实现资源共享就是一个典型的例子。有很多分布式锁的库和描述怎么实现分布式锁管理器(DLM)的博客,但是每个库的实现方式都不太一样,很多库的实现方式为了简单降低了可靠性&#xff…

GIT_服务器与本地环境构建

linux安装git包 很多yum源上自动安装的git版本为1.7,这里手动编译重新安装1:安装依赖包yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker2:删除已有的gityum remove git3&#xff1a…

Maven项目的基本创建步骤

先来个自己笔记的图片备忘一下,如果以后有时间再慢慢更新详细。

visualvm远程监控jvm_大型企业JVM实战:优化及面试热点分析

本次课程的笔记非常多,而且内容已经整理了好几个小时了,接着下来内容也会更多,也是大型企业JVM性能调优实战的最后一节,希望对你有帮助!04:JVM性能监控与故障处理工具 大型企业JVM性能调优实战之总结17&…

Markdown图片路径的改变方法

Markdown图片路径的改变方法 Markdown用时一时爽,路径一改火葬场 Markdown在占用内存少的优点的同时,也注定了图片的存储不会是占用内存,而是根据路径和链接链到md文件里的。 相信有不少人会像我一样在做完一个Markdown笔记后,在…

SROP

title: SROP date: 2018-02-21 19:58:12 categories: 栈溢出 tags: - CTF - PWN - 栈溢出 SROP全称为 Sigreturn Oriented Programming ,表明利用sigreturn这个函数实现ROP的技术。 参考资料 http://www.freebuf.com/articles/network/87447.htmlhttp://bobao.360.c…

canvas绘制图像image

canvas绘制图像image 1.image的三个script的基本语法 准备工作:1.定义画布长度,获取2D绘图环境 ​ 2.建立对面对象,设置图片路径 ​ 3.载入图片,开始绘制 a.简单的画布上根据坐标绘制 ctx.drawImage(img,x,y) img为要绘制的图像&#…

根据时间戳生成编号_分布式系统的唯一ID生成算法对比

在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。那么如何实现全局唯一id呢?有以下几种方案。(1)方案一:独立数据库自增id这个方案就是说你的系统每次要生成一个id,都是往一个独立库的一个独立表里插入一条没什么业务…

解决使用Servlet输出乱码问题(一行代码解决一切)

使用servlet接收表单数据后,输出出现了乱码,如下: 解决方法: 将下面这行代码粘到你重写的doGet或者doPost方法里就可以了。 response.setContentType("text/html;charsetutf-8");

Canvas之进度条的制作(矩形,圆环)

Canvas之进度条的绘制 基本进度条的绘制 1.矩形进度条 关键语法 获取画笔 var ctxdocument.getElementById(“id”).getContext(“2d”); 填充颜色 ctx.fillStytle“color”; setInternal()和clearInternal()的使用 代码(两种类型): <!DOCTYPE html> <html>…

该文件没有与之关联的程序来执行该操作_Liunx tty子系统分析之三 tty字符设备文件操作接口说明...

本章主要介绍tty字符设备文件对应的操作接口&#xff0c;从而说明tty设备的数据打开、关闭、读、写等接口的实现等内容。tyy file_operations定义tty字符设备文件操作接口的定义如下&#xff0c;主要包括tty_fops、console_fops、hung_up_tty_fops&#xff0c;其中console_fops…

初学echart的简单使用

简单的echart使用方法 1.引入外部echart的js文件 <script type"text/javascript" src"js/echarts.min.js"></script> 2.建立放置容器&#xff0c;div使用放置容器布局 放置容器配置 <style>body {text-align: center;}#domain1 {widt…

列名 userid 不明确。 表结构_那些你不知道的表结构设计思路

ERP表结构的设计--第9篇用日志记录“开源软件”的诞生赤龙ERP开源地址&#xff1a;点亮星标&#xff0c;感谢支持&#xff0c;与开发者交流 kzca2000码云&#xff1a;https://gitee.com/redragon/redragon-erpGitHub&#xff1a;https://github.com/redragon1985/redragon-erp赤…

PCL—关键点检测(rangeImage)低层次点云处理

博客转载自&#xff1a;http://www.cnblogs.com/ironstark/p/5046479.html 关键点又称为感兴趣的点&#xff0c;是低层次视觉通往高层次视觉的捷径&#xff0c;抑或是高层次感知对低层次处理手段的妥协。 ——三维视觉关键点检测 1.关键点&#xff0c;线&#xff0c;面 关键点 …

lombok的使用三部曲及使用中遇到的问题(持续更新)

lombok的使用 1.安装lombok插件 工欲善其事&#xff0c;必先利其器&#xff08;这一点是不能忘记的&#xff0c;好多小伙伴可能只导入了依赖&#xff0c;却忘了去下载安装插件&#xff09; 2.导入lombok依赖&#xff0c;看准了千万别倒错 导入依赖&#xff0c;记得更新PoM文件…

详细设计说明书示例_专利说明书常用句型汇总

第六课 说明书常用句型1. 以上一般描述和以下的详细说明都只是本发明的示例&#xff0c;并旨在提供概况或框架&#xff0c;用来理解如本发明所主张的本发明的本质和特征。It is to be understood that both the foregoing general description and the following detailed desc…