Deno 能吞掉 Node.js 吗?

Deno入门:Node.js的现代替代品 fetch(url)异步地发起HTTP GET请求到指定的URL。response.ok检查HTTP状态码是否在200-299之间,表示请求成功。response.text()获取响应体的文本内容。parseJson(text)将文本内容解析为JSON对象。console.log(data)打印解析后的数据。// 在其他文件中导入// 输出 5。 阅读详情

最近,Node.js的原作者Ryan Dahl发布了Deno1.0 , 有网友创建了上述漫画,似乎Deno要吞噬整个Node.js社区了。

Deno是什么? 简单来说,它一个支持JavaScript和TypeScript的安全平台,有点像Node.js。

有了Node.js,可以让JavaScript运行在服务器端,为什么还要搞一个Deno?

其实就两个字:不爽!

Deno的作者,同时也是Node.js的作者Ryan Dahl想要一个有趣的、生产力强大的脚本语言平台,但是现在的技术平台满足不了他。

他看Python不爽,Ruby不爽,  甚至自己写的Node.js都看着不爽 !他还专门讲过“Node.js设计的十大失误”, 总是让我想起努尔哈赤起兵s时写的《七大恨》,不同的是努尔哈赤反的是明朝,而Ryan Dahl反的是自己。

他觉得Node.js有这么几个大的槽点:

1. Node module设计得很烂,还是集中式的

2. 需要支持很多遗留的API

3. 安全问题

既然如此,那就另起炉灶,再搞一个吧,把这些缺陷给修正了。

Deno 有什么重要特点呢?

1.  安全控制

你写的或者从别的地方导入的js/ts代码,默认不能直接访问硬盘/网络等资源了,需要在运行的时候给脚本授权。

比如下面整个命令就是授权app.ts可以访问环境变量,可以访问网络,可以读取/temp目录。

熟悉Java的同学立刻就会想到Java 的沙箱(Sand Box),程序是运行在沙箱中被控制的, 为什么要这么做呢?一个重要的原因是有很多第三方的代码库是从网络下载的,这些代码可能存在恶意破坏本地环境,偷取本地敏感信息的问题, 可见Deno把安全确实放到了比较重要的位置。

有趣的是Java 默认是开启访问权限,想限制的话需要提供策略文件, 而Deno默认是关闭访问权限, 更狠!

但我有一个感觉,这个功能并不是那么的重要和急迫,大家想一下,你定制过Java的安全策略吗?大部分时间都是默认配置的吧?现在有了Docker这样的容器来实现隔离,在应用层面再来授权,意义有多大呢?

2. 终于有标准库了!

用惯Java同学可能没啥感觉,因为一直在用JDK中的各种内置的class。

但是JavaScript一直没有标准库,很多功能靠第三方代码,会给人造成选择困难症。

现在Deno终于提供了一个标准库,涵盖了datetime, encoding,hash, http,log,testing等等,这将会极大地方便程序员。

不过,我浏览了一下标准库代码:https://deno.land/std, 都是用TypeScript编写的。

3. 支持开箱即用的TypeScript

TypeScript是JavaScript的超集,支持静态类型,现在已经很流行了。 

Deno对TypeScript支持得非常好, 你可以用TypeScript来写程序,然后直接Deno run xxx.ts,Deno在内部会编译成JavaScript运行。

静态类型还是香啊!可以想象,用了TypeScript的助阵。Deno可以支持大型的、有着复杂业务逻辑的应用程序开发,以后再也无人可以嘲笑“动态一时爽,重构火葬场”了。

对于Java程序员来说, 建议关注一下TypeScript。 

4. 干掉了集中化的代码仓库

Deno的包管理方式有了天翻地覆的变化, 抛弃了集中式的代码仓库, 代码从Web端直接导入:

这是直接从Web上导入ECMAScript模块, 看起来倒是挺清爽的。当然导入的模块会缓存到本地,下次可以直接访问。

可是分布式的包管理真的有那么好吗?想想在代码中的那些从各个网站import语句,我是觉得有点儿不爽,Python有pip, Ruby有gem , Java 有maven,它们的背后都是集中式的仓库,用起来挺香啊。

现在Deno提供了一个非常初级的搜索第三方的库的页面:https://deno.land/x ,  我认为以后必然会出现第三方库的托管网站,大家还是从同一个地方去搜索,下载软件包。

5. 内置了很多工具

JavaScript生态乱七八糟的工具太多,最好是能大一统。

Deno顺应了这个趋势, 提供了诸如打包、格式清理、测试、安装、文档生成、linting、脚本编译等一揽子解决方案,内置可用,不用到处安装下载, 这一点儿必须点赞。

小结

不得不佩服Ryan Dahl, 打造一个Node.js已经足够“吹嘘”一辈子了,可是他还能革自己的命,推出Deno这么一个新平台,为兴趣工作,不断创新,让人赞叹。

Deno非常激进,直接采用了ECMAScript模块,抛弃了Node Module,这也让它和现有的JavaScript生态系统不兼容。

说Deno替代Node.js还为时过早,毕竟这才是一个刚刚1.0的版本,和一个发展了10多年的平台难以直接相提并论。Deno还没有经受生产环境的考验,对于一些特殊的案例表现如何我们还不知道。

也许过一段时间,会有“先行者”公司分享它们的使用经验,解决Deno的坑,那个时候Deno才会变成一个真正有用的平台,让我们拭目以待吧。

微服务把我坑了

如何降低程序员的工资?

程序员,你得选准跑路的时间!

两年,我学会了所有的编程语言!

一直CRUD,一直996,我烦透了,我要转型

字节码万岁!

上帝托梦给我说:一切皆文件

Javascript: 一个屌丝的逆袭

Node.js :我只需要一个店小二

我是一个线程

TCP/IP之大明邮差

一个故事讲完Https

CPU 阿甘

Promise 核心原理与生产级实践:状态机、链式传递与监控 Promise 是 JavaScript 异步编程的基础抽象,其本质是一个具有 pending/fulfilled/rejected 三种不可逆状态的状态机。它通过错误冒泡、值的可传递性与链式组合,解决了回调地狱带来的不可维护、不可调试、不可取消等工程痛点。在现代前端中,Promise 不仅支撑 fetch、async/await、React Suspense 和 WebAssembly 加载,更深度融入 Service Worker 更新与 Deno/Node.js 的 I/O 模型。理解 Promise 阅读详情

相关推荐

基于V8隔离与代理优先架构构建安全浏览器沙箱实践指南

浏览器沙箱技术是现代Web安全与前端工程中的核心概念,它通过在受限环境中执行不可信代码来保障系统安全。其原理通常基于进程隔离或虚拟机技术,将潜在危险的操作限制在独立空间内。这种技术的核心价值在于为需要执行用户自定义代码的场景(如在线代码编辑器、云IDE、网页爬虫平台)提供了安全可控的执行环境。V8引擎的隔离(Isolate)机制是实现JavaScript沙箱的关键技术,它允许创建多个独立的JavaScript运行时实例,每个实例拥有独立的内存堆和执行上下文。结合“代理优先”架构,可以将所有网络请求、DOM操

413

Deno 与 Node 两款前端神器的争锋与较量

Deno 正式发布啦,还不清楚 Deno和 Node 的区别嘛?那就赶紧 take part in .... 前言 Deno 已经正式发布了????! 我说这句话时候,是不是很多前端 和 NodeJS 工(码)程(农)师已经按不住自己的40米大刀了。心中的不仅感慨前端是真的会造轮子,有了 node 还不够吗,还没学会 node 又搞了个 deno,node 和 deno 啥区别?! 的确,deno 和 node 形态很相似,要解决的问题似乎也相同,那他们到底有啥区别,让我们走进本篇文章,一探究竟。 Deno

小青蛙的博客 1588

Claude Skills MCP桥接插件:让TypeScript技能在任意Agent中运行

MCP(Model Context Protocol)作为Agent生态的事实标准,旨在统一能力注册与调度,解决多框架间工具复用难题。其核心价值在于语言无关、协议轻量、可插拔——通过标准化的tool_call/tool_result交互,实现能力发现、调用与响应闭环。在此基础上,Claude Skills作为经过验证的TypeScript原子能力单元,具备强上下文感知与工程化封装优势,但长期受限于封闭运行时。本方案聚焦‘能力复用断层’这一行业级痛点,提供一个零侵入、类型保真、生产就绪的MCP桥接层,使原生T

weixin_30247307的博客 383

Deno 和 Node 的区别

Deno VS Node Node Deno API 引入方式 模块引入 全局对象 模块系统 CommonJS & 新版 node 实验性 ES Module ES Module 浏览器实现 安全 无安全限制 默认安全 Typescript 第三方,如通过 ts-node 支持 原生支持 包管理 npm + node_modules 原生支持 异步操作 回调 Promise 包分发 中心化 npmjs.com 去中心化 import url 入口 pac

kkm486622296的博客 3508

0226NodeJS文件合并packagejson配置Demo

0226NodeJS文件合并packagejson配置Demo

百度飞桨+文心大模型实战:生成式AI工程师认证备考全攻略(含真题解析)

本文详细解析百度飞桨与文心大模型结合的生成式AI工程师认证备考策略,涵盖认证体系、学习路径、核心技能突破及真题分析。帮助开发者掌握大模型原理、飞桨平台操作和文心大模型应用,高效通过工信部与百度联合认证考试。

loss4bartender的博客 682

2024 年应该使用 Bun、Node.js 还是 Deno

2024 年应该使用 Bun、Node.js 还是 Deno

qq_42880714的博客 1571

std::map看来可以被淘汰了?可以用vector来替代,而且更好

vector的优势在于内存连续,可以先std::sort,然后std::lower_bound,或者std::binary_search。而std::map,insert的时候,需要new出内存。

tumu_C的博客 1019

Deno 2.2 深度解析:TypeScript 运行时、权限模型与工程化落地

JavaScript后端开发中,运行时与工具链的选择直接影响工程效率与安全性。Deno作为新一代运行时,以TypeScript原生支持、安全权限模型和内建工具链为核心,重新定义了服务端应用的开发范式。它默认禁止文件、网络等敏感资源的访问,通过显式授权降低供应链攻击风险;同时兼容npm生态,支持URL导入与JSR包管理,让现有代码得以平滑迁移。在异步编程、内置测试、编译分发等方面,Deno同样提供了开箱即用的能力。本文从Deno 2.2出发,系统对比Node.js的差异,解析权限机制、工作区实践、生产环境风险

weixin_34175509的博客 517

World Action Model:经典论文

郑困时,图prorpt为机量人压务时,退过驱制解弱词表(constrsinsd decoding), 强附模型只从.256个者动作token中保H, B象总注活地。始VLA之一,RT-2使用了大量的五联网VQ据与少里的机械网的AcSonDat行CoFine-Tunng, 独组sl, 共i744个episode,Mous使用三个专累模,分是vidogonmedel,actonesget,understandng。包的核定之的的观到沟血黄动作,预之后现(vorlemodel),tseing,2。

u013250861的博客 406

银河麒麟V10 SP3系统下如何安全安装gcc-toolset-10(附yum仓库避坑指南)

本文详细介绍了在银河麒麟V10 SP3系统中安全部署gcc-toolset-10的完整方案。核心在于通过配置默认禁用的yum仓库(如EPKL仓库)并配合--enablerepo参数进行精准安装,有效规避依赖冲突风险,实现与系统默认GCC 7.3的稳定共存。文章还提供了多版本环境切换、系统维护及故障排查的实用指南,确保操作的可控与可逆。

h0i1j2k3l的博客 589

NX2navi如何预编译数千着色器:Ampere降级Maxwell与着色器翻译器完全拆解

NX2navi 把 Switch 2 版《塞尔达传说:塞尔达时之歌》重编译为原生 Windows x86-64 应用,而它最烧脑的部分,是如何在玩家开机之前就**预编译数千个着色器(shader pre-compilation)**,让游戏全程 60 fps 不卡顿。本文完整拆解这套机制:从 Ampere(SM86)指令降级到 Maxwell、着色器翻译器(shader translator)的构

gitblog_00740的博客 275

114.Android简单的动态切换app的图标,两种方式

- 默认的图标-->-- 需要切换的图标-->android:label="短信"-- 默认activity-->

曹二少的博客 5573

JavaScript生成器:协程式控制流与V8状态机原理

生成器(Generator)是JavaScript中实现协程式控制流的核心机制,其本质并非语法糖,而是基于V8引擎原生字节码(如Yield指令)构建的可暂停、可恢复的状态机。它通过yield表达式建立双向通信通道,支持按需产出、天然取消与精确错误传播,在流式处理、状态建模和异步协调等场景中展现出远超Promise和async/await的可控性。结合for...of迭代协议与Symbol.iterator定制能力,生成器可安全封装资源生命周期;而Bun等新运行时的性能跃升,更使其在高频实时系统中具备工程落地

weixin_34274029的博客 470

告别AT串口线!用STM32F407的USB FS口直连EC800M进行物联网通信

本文介绍了一种创新的物联网通信方案,利用STM32F407的USB FS接口直连EC800M模块,替代传统的AT串口线连接。通过详细的硬件对比、STM32CubeMX配置和USB驱动调试步骤,展示了如何实现更高效的AT指令通信,同时降低硬件复杂度和功耗。

weixin_29189987的博客 706

TI CC2642R蓝牙5.2模块实战:从零搭建智能门锁原型(附电路图)

本文详细介绍了如何基于TI CC2642R蓝牙5.2模块从零搭建智能门锁原型,涵盖硬件选型、低功耗配置、蓝牙安全交互等关键环节。通过CC2642R的高性能MCU和蓝牙5.2技术,开发者可实现低功耗、高安全性的智能门锁设计,并提供实用的电路图和PCB布局建议。

o5p6q的博客 110

遭老牌 Node.js、新贵 Bun “围攻”,Deno 之父紧急求变!

【优快云 编者按】截至目前,Node.js 仍然是使用最为广泛的 JavaScript 运行时环境,但是同样出自 Node.js 之父 Ryan Dahl 之手的 Deno 却更加安全。不过近日,一款集构建、转译、依赖管理于一身的高性能 JavaScript 运行时 Bun 横空出世,在 Server、Sqlite、ffi 等方面都超过了 Node 和 Deno,似乎是迫于压力之下,Deno 于......

优快云资讯 1万+

【论文复现】——基于改进FPFH特征提取的点云模板匹配方法

基于改进FPFH特征提取的点云模板匹配方法 [J]. 应用激光, 2024, 44 (04): 196-204.

点云侠的博客 611

Deno 运行时入门教程:Node.js 的替代品

这几天假期,我学习了一下Deno。它是 Node.js 的替代品。有了它,将来可能就不需要 Node.js 了。 这篇文章就是 Deno 的一个初步介绍,尝试回答为什么 Node.js 不能满足需要,以及 Deno 能够带给我们什么? 以下内容主要基于Bert Belder和Ryan Dahl的最新演讲。 0、 进入主题之前,先说一下 Deno 这个词怎么发音。 两种发音,"德诺"和"蒂诺",我都听到过。看起来,"蒂诺"这个发音应该更合适一些,因为 Deno 的标志是一只恐龙。恐龙(...

Cool的博客 1445

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Deno 并不是下一代 Node.js

这几天前端圈最火的事件莫过于 ry(Ryan Dahl) 的新项目 deno 了,很多 IT 新闻和媒体都用了标题:“下一代 Node.js”。0. 为什么开发 Deno...

justjavac的专栏 3577

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

NodeJS已经很强大了,为什么还会出现Deno?

综上所述,选择 Node.js 还是 Deno 取决于具体的项目需求、开发团队的技术栈和偏好。如果注重安全性和现代的开发体验,并且愿意接受新的技术和相对较小的生态,Deno 可能是一个不错的选择。设计理念更新:Deno 代表了一种新的设计理念和开发体验,旨在解决 Node.js 在发展过程中积累的一些痛点,并提供更简洁、现代化的 API 和功能。总之,Deno 的出现是为了满足开发者对于更安全、更简洁、更现代化的 JavaScript 运行时环境的需求,为开发者提供了更多的选择和可能性。

东南草堂 1196

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Deno、Node.js、Bun、Deno Deploy... 速度大 PK!最后赢家是它?

最近我写了一篇关于如何在 Deno 运行时、Deno Deploy、Node.js、Bun 和 Cloudflare Workers 下让 oak 框架工作的文章,我开始思考它们之间是否会有性能差异。嗯,我找到了答案。方法和过程我在 JavaScript/TypeScript 领域看过很多基准测试,并且几乎每一个都被反复辩论过优劣。我相信某些人会对我的方法和过程提出异议,但我想做一些我认为公平的事...

weixin_44829437的博客 1194

什么是Deno?Node.js的进阶版?

在这篇文章中,你将探索Deno的基础知识,了解它与Node.js和Bun的比较,并跟随一个实践演示,使用Deno来构建一个简单的HTTP网络服务器。

WPHunter的编程技术资料库! 1278

Deno 正式发布,彻底弄明白和 node 的区别

前言Deno 已经正式发布了????!我说这句话时候,是不是很多前端 和 NodeJS 工(码)程(农)师已经按不住自己的40米大刀了。心中的不仅感慨前端是真的会造轮子,有了 node ...

图灵教育 946
上一篇: Java对Python的渗透能成功吗?
下一篇: 这才是程序员理想的工作!
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值