2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Deno 将于 5 月 13 日发布 1.0 版本,Node.js 会逐渐失宠吗?

  • 2020-04-07
  • 本文字数:2344 字

    阅读完需:约 8 分钟

Deno将于5月13日发布1.0版本,Node.js会逐渐失宠吗?

Deno 是 Node.js 之父 Ryan Dahl 在 2018 年 5 月发布的开源项目,其产生的背景在于 Ryan Dahl 认为当下的 Node.js 太难用了。一般人说出这种话可能会被 Diss 你行你上,但这对 Ryan 来说并不是什么难题。虽然 Deno 1.0 的版本发布数次推迟,但 Ryan 近日表示经过详细的讨论后,确认了最终发布的日期:2020 年 5 月 13 日,这也将是 Deno 项目启动的两周年纪念日。

Deno 1.0,5 月 13 号见

2018 年 5 月,Node.js 之父 Ryan Dahl 发布了新的开源项目——Deno。从项目名就可以看出其与 Node.js 千丝万缕的联系。


官方文档介绍,Deno 是一个 JavaScript / TypeScript 运行时,具有安全的默认设置和良好的开发体验,构建在 V8 引擎、Rust 语言和 Tokio 之上。(最初的 Deno 版本是用 Go 语言写就,但在第二版中移除了 Go 转而用 Rust 语言替代,因为后者具有更好的安全性。)


Deno 的目标是为现代程序员提供一个高效、安全的脚本环境。


在业界看来,Deno 目前的状态更像是一个 Demo,而 Ryan 本人当时也表示“Deno 与 Node 最大的区别在于,Node 可以用于工作,而 Deno 还不行”。但对前端开发者来说,Deno 确是一个值得学习的新项目。


此前 Deno 项目中有关 1.0 版本的 issue 做了更新,Ryan 表示:


在努力做好(Deno)这件事和推出一款可用的产品之间很难取得平衡。因为还没有在开发工具支持特性上取得实质进展,官方团队再次推迟发布日期。官方团队进行了详细的讨论,得出结论是 2 个月的时间足够了。巧合的是,这是自 Deno 问世以来的两周年纪念日。因此,我们将 2020 年 5 月 13 日定为 1.0 版本发布日期。我们鼓励贡献者在 4 月 20 日之前对 API 进行重大修改——在那之后,我们将对 API 进行完善和 bug 修复。当然,在 1.0 之后,API 将继续发展和改进,但是我们将为一些接口提供显式的稳定性保证。


Deno,这个 Node 之父的 Demo 项目,终于迎来了正式发版之日。

Node.js,并未失宠

Deno 发布之初,前端圈不少人分析其将是 Node.js 的替代品,将其称为”下一代 Node“。


狼叔此前在应前端之巅约稿时有提到,Node.js 的意义具体而言有两方面:


首先它打破了原有的前端边界,之前应用开发只分前端和 API 开发。但通过引入 Node.js 做 BFF 这样的 API proxy 中间层,使得 API 开发也成了前端的工作范围,让后端同学专注于开发 RPC 服务,很明显这样明确的分工是极好的。

其次,在前端开发过程中,有很多问题不依赖服务器端是做不到的,比如场景的性能优化,在使用 React 后,导致 bundle 过大,首屏渲染时间过长,而且存在 SEO 问题,这时候使用 Node.js 做 SSR 就是非常好的。


以上可以看出,Node.js 在眼下的大前端布局里的重要性。


另一方面,Node.js 社区的生态和繁荣度发展仍旧十分迅速。此前 InfoQ 翻译的一篇 Node.js 基金会的调查报告显示,Node.js 的使用量仍然在快速增长,超过¾的参与者期望在来年扩展他们的使用场景,另外和前一年的报告相比,Node 的易学程度有了大幅提升。


而根据 ModuleCounts.com 的数据,Node 的包注册中心 NPM 每天会增加 507 个包,相比后一名要多出 4 倍。2018 年 Stack Overflow 调查也有类似的结果,JavaScript 是使用最广泛的语言,Node.js 是使用最广泛的框架。


更进一步,Serverless 技术的火爆也带来了 Node.js 势头的水涨船高。主流 Serverless 厂商纷纷把宝押在 Node.js 上,主要是看上了 JavaScript 工具的丰富生态,再加上 Node.js 的轻量化、容易分散与水平扩充、各种操作系统都容易运行的特性,将 Node.js 作为无服务器服务优先支持的框架,这也让 Node.js 更适合用于超大规模部署的应用。


Ryan Dahl 最初并没有意识到 Node.js 会产生如此大的影响,他将其归功于社区的持续改善,从而获得了越来越成熟的 Node.js 框架。这也从另一方面揭示了,对于一款成功的开源软件 / 框架而言,技术上的实现只是其中一步,如何形成完整的生态、活跃的社区,才是其获得长久发展的关键。


对于 Deno 而言,基本功能在 5 月 13 号以后应该就齐全了,但它要解决的问题还有很多。

这次,请别刷学不动了

我原本没想发明 Node.js,而是想用 Haskell 语言完成我的项目,但是失败了。我又不够聪明,没有能力改进 GHC(Haskell 语言的运行时),只好发明新的工具。


Ryan Dahl 在接受采访时曾表示,自己造 Node 轮子的原因在于自己不够聪明,没有能力改进已有工具,所以只好发明新的工具。这不禁让人回想起了他创立 Deno 之前的一句抱怨——“(现在的)Node.js 太难用了”,由此看来,他可能是真的认为发明新轮子比改进旧轮子省事儿。


2018 年 5 月,Deno 上线 GitHub 之初,就有许多国内开发者在 issue 区灌水,“别更新了,学不动了”。前端之巅认为,这种“中国式”的程序员幽默,并不适宜于用在一个正式项目的 issue 区,考虑到文化差异的问题,这种“幽默”不仅显得更加不合时宜,而且会进一步造成对中国开发者的误解。


对于绝大部分开源项目而言,issue 的首要目标是为项目维护者而不是项目使用者提供服务。issue 的意义在于追踪 bug、新增 feature、推动项目进度等有助于项目发展的事件,而不是类似 BBS 的无聊灌水。


技术的更新换代是正常发展规律,“别更新了,学不动了”最终也会被“真香”所取代。对于新陈代谢尤为迅猛的前端领域而言,前端开发者们更应该保持对技术的热爱,不要把自己局限在“切图仔”的狭小天地里。


最后送给大家三条建议:


  1. 不要纠结于开发工具——不管是库、编程语言还是平台。尽可能使用原生的构件。不要歪曲技术,也不要歪曲了问题本身。为要解决的问题选择合适的工具,否则你要为你所选择的工具重新安排你的工作。

  2. 远离“炒作驱动开发”,但你要去了解它们,做一些尝试。

  3. 走出舒适区,每天都要学习。把学到的东西分享出来。如果你以大师自居,就不是在学习。接触更多的编程语言、技术、文化,保持一颗好奇心。


2020-04-07 14:085853
用户头像
小智 让所有人认同的文字称不上表达

发布了 410 篇内容, 共 410.2 次阅读, 收获喜欢 1986 次。

关注

评论

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

局域网视频会议软件BeeWorks Meet

BeeWorks

即时通讯 IM 私有化部署 局域网视频软件

iVX 引领软件开发进入 “可视化逻辑时代”

代码制造者

最佳实践:RunnerGo API性能测试实战与高并发调优

数据追梦人

谷歌云 | AI驱动医疗健康变革:智能代理、增强搜索与关键平台深度解读

Cloud Ace 云一

人工智能 生命科学 谷歌云 健康医疗

SQLShift 全新上线:Oracle→OceanBase 迁移利器

爱可生开源社区

oracle dba 存储过程 oceanbase

蚂蚁数科发布金融智能体开发平台Agentar 内测上线超百个金融MCP服务

Lily

通义灵码 CCF 算法大会首秀,解码研发智能落地「黄金三角」| 文末领取PPT

阿里云云效

阿里云 云原生 通义灵码

龙蜥大讲堂浪潮信息专场精彩预告来袭,解锁AI解决方案、安全、eBPF等技术新进展

OpenAnolis小助手

操作系统 龙蜥社区 龙蜥大讲堂 OpenAnolis

Msty一键搞定:让Qwen3带着知识库在你的电脑上奔跑

JustYan

人工智能 本地部署 RAG知识库 Qwen3

A2A与MCP:理解它们的区别以及何时使用

数据追梦人

什么是DNS缓存?怎么清理DNS缓存?

防火墙后吃泡面

一文搞懂国际化:架构设计

量贩潮汐·WholesaleTide

架构 国际化

Java 开发效率天花板被打破!飞算 JavaAI 如何做到「代码生成即生产级」?

飞算JavaAI开发助手

文献解读-The chromosome-scale genome of the raccoon dog: Insights into its evolutionary characteristics

INSVAST

生物信息学 Sentieon 变异检测 全基因组测序 生物信息分析服务

深入解析 Spring AI 系列:解析函数调用

不在线第一只蜗牛

人工智能 spring

点面结合发展 龙蜥社区第 32 次运营委员会会议圆满结束

OpenAnolis小助手

开源 操作系统 龙蜥社区 OpenAnolis

稳定币迎来ChatGPT 时刻,如何驱动DeCloud?

PowerVerse

defi 稳定币 DeCloud

云交易技术对接全景

京东科技开发者

数据可溯破局!iVX 可视化调试如何改写 AI 编程规则

代码制造者

AI编程

怎么用drawio一键生成图表?drawio必备的使用技巧盘点!

职场工具箱

人工智能 drawio 办公软件 AIGC Ai绘图

通义灵码 CCF 算法大会首秀,解码研发智能落地「黄金三角」| 文末领取PPT

阿里巴巴云原生

阿里云 云原生 通义灵码

Taro on Harmony :助力业务高效开发纯血鸿蒙应用

京东科技开发者

自己写插件-实现时间戳自由

京东科技开发者

国内首个「混合推理模型」Qwen3深夜开源,盘点它的N种对接方式!

王磊

45分钟从零搭建私有MaaS平台和生产级的Qwen3模型服务

GPUStack

大模型 模型推理 Qwen GPU集群 Qwen3

实力 “出圈”:龙蜥新增多个行业标杆,富滇银行、小红书、国网蒙东电力等在列

OpenAnolis小助手

操作系统 龙蜥社区 OpenAnolis

中国联通网络资源湖仓一体应用实践

Apache Flink

大数据 flink 实时计算 实时湖仓 实时分析

呼声超高的 TiDB 性能调优最佳实践来啦,这些“绝招”让你事半功倍!5 月 29 日,TiDB vs MySQL 线上 Meetup 第四期,欢迎 TiDBer 们参与!转发海报参与 TiDB Chaos Mesh 马克杯抽奖!

TiDB 社区干货传送门

MySQL 数据库 SQL优化 TiDB

企业级私有化部署,内部聊天软件

BeeWorks

即时通讯 IM 私有化部署 企业级应用

SEO的关键词研究与优化 一

溪抱鱼

前端开发 Google SEO 前端开发框架

Deno将于5月13日发布1.0版本,Node.js会逐渐失宠吗?_大前端_小智_InfoQ精选文章