写点什么

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:085489
用户头像
小智 让所有人认同的文字称不上表达

发布了 408 篇内容, 共 390.7 次阅读, 收获喜欢 1982 次。

关注

评论

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

Parallels Desktop 19 for Mac 一键激活版(PD19虚拟机)

iMac小白

Premiere Pro 2022 for Mac v22.6.2中文激活版下载

iMac小白

One Switch mac版 菜单栏一键控制神器 支持M/Intel

南屿

mac效率工具 One Switch for Mac 菜单栏一键开关控制神器 One Switch破解

F5:伴随生成式AI的发展,2024年将出现十大网络安全风险威胁

科技热闻

苹果Mac自用软件推荐:Unite for mac 将网站转化为应用程序 支持M1/M2/Intel

南屿

Unite for Mac Unite破解版 将网站转化为应用程序 Mac软件资源站

Linux常用命令—findfs命令

百度搜索:蓝易云

云计算 Linux 云服务器 uuid findfs

【http服务】使用命令来查看和停止端口教程。

百度搜索:蓝易云

Linux 运维 云服务器 ECS

Java执行Python代码的两种方法(Jython与ProcessBuilder)

百度搜索:蓝易云

Java Python Linux Jython ProcessBuilder

如何用 Python 实现一个 “系统声音” 的实时律动挂件

北桥苏

Python pyaudio 系统声音

深入理解TF-IDF、BM25算法与BM25变种:揭秘信息检索的核心原理与应用

汀丶人工智能

nlp 搜索系统 BM25算法 关键词检索

Rhinoceros 6 for Mac(犀牛6) 6.31.20315完美激活版

mac

苹果mac Windows软件 Rhinoceros 3D设计软件 犀牛

TikTok直播专线的优势及应用价值

Ogcloud

直播 直播优化 TikTok

Parallels Desktop 18 for Mac v18.3.2永久激活版下载

iMac小白

每日一题:LeetCode-10037. 移除后集合的最多元素数

Geek_4z9ami

Go 面试 算法 LeetCode 贪心算法

苹果电脑YouTube客户端下载:YouTube for mac激活版v1.22(56)中文版安装教程

南屿

YouTube客户端 苹果mac软件 Clicker for YouTube

【最新中文版激活序列号】Macs Fan Control Pro 苹果电脑掌控风扇必备软件

南屿

Macs Fan Control Pro下载 Macs Fan Control Pro破解 Mac 电脑风扇速度

行云部署成长之路--慢SQL优化之旅 | 京东云技术团队

京东科技开发者

软件测试开发/全日制/测试管理丨软件测试流程

测试人

软件测试 测试开发

轻松完成图片转换矢量图,推荐Vector Magic for Mac破解版

南屿

mac软件下载 Vector Magic破解版 矢量图片转换工具

有关SCADA系统的所有信息:什么是SCADA?

2D3D前端可视化开发

物联网 组态软件 工业自动化 SCADA HMI

Magnet for mac v2.14.0中文免激活版下载

iMac小白

Axure RP 8 中文激活授权码 Axure RP 8 完整安装教程 Mac/win

南屿

原型设计 Axure RP 8授权码 Axure RP 8下载 Axure RP 8汉化包

DNA序列分析软件 SnapGene 5 v5.3.1中文激活版 下载安装

南屿

SnapGene 5破解版 SnapGene 5下载 分子生物学软件 DNA序列

快麦ERP退货借助APPlink快速同步CRM

RestCloud

零代码 CRM ERP APPlink

实践案例:通过API优化加快上市时间

幂简集成

产品 MVP API OpenAPI REST API

Emby for Mac:多媒体影音库管理工具 兼容M1

南屿

苹果软件下载 Mac破解软件 Emby for Mac 多媒体影音库管理工具

3D建模设计 Vectorworks 2022 SP5激活版 for Mac 下载安装教程

南屿

3D建模软件 Vectorworks 2022下载 破解软件 Vectorworks 2022注册码

左耳听风-我的三观「读书打卡 day 01」

Java 工程师蔡姬

程序员 读书 读书感悟 左耳朵耗子

软件开发

Geek_8da502

StarRocks Awards 2023 年度贡献人物

StarRocks

数据库 数据分析 开源社区 StarRocks

Fig Player - play mp4 mkv mp3 苹果电脑媒体播放器

南屿

mac视频播放器 苹果软件下载 Fig Player破解下载 Fig Player Mac版

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