多多读书
612 字
3 分钟
用了几天Deno,我放弃了

自 Deno 的诞生以来,似乎一直不温不火。创始人 Ryan Dahl 设计 Deno 的初衷是打造一个更安全、更现代的 JavaScript/TypeScript 运行时环境,以期超越 Node.js。然而,现实情况似乎并未完全符合预期。所以到底是为什么?这几天我体验了一下 Deno,倒是有一些体会,虽然 Node.js 有一些饱受诟病的缺陷,但 Node.js 的使用体验还是 Deno 无法比拟的。

在 Node.js 中,node_modules 目录可能是最受关注的问题之一,因为它占用了大量的磁盘空间。最讽刺的应该是下面这张图,在这个图中,node_modules 被描绘得和天体物体一样,甚至比黑洞还要“重”,显然这是在调侃 Node.js 项目中 node_modules 文件夹可能达到的庞大体积。

为应对这一问题,Deno 改变了 Node.js 的包管理策略,采用了基于 URL 的模块导入方式,与传统的 Node.js 及其 npm 包管理器形成鲜明对比。这种方式虽然解决了 node_modules 体积过大的问题,但同时也引入了新的挑战。

Deno 一个重大的错误抉择是,它与现有的 Node.js 生态系统不兼容,缺乏强大生态的支持,自然难以吸引大量用户。我最近尝试使用了 Deno 的 Fresh 框架——一个面向 JavaScript 和 TypeScript 开发者的全栈现代 Web 框架。然而,由于缺乏成熟配套的 UI 组件库,又不能使用现有 Node.js 构建的 UI 组件库,开发过程中需要手动用 HTML 和 CSS 构建页面,这大大增加了开发难度且降低了效率。

此外,Deno 的模块导入机制对传统代码编辑器和集成开发环境(IDE)的支持不足。由于 Deno 直接从 URL 导入模块,这使得许多流行的编辑器和 IDE 无法提供像自动完成和智能提示等功能。与此相比,传统的编辑器和 IDE 通常依赖于本地文件结构和包管理工具(如 npm)来提供这些便利的功能。例如,在使用 Node.js 环境的 IDE 中,开发者可以轻松访问任何导入函数的定义或相关文档,这极大地提升了开发体验和效率。

总结来说,生态兼容性不够导致它不能被大部分人所接受。

用了几天Deno,我放弃了
https://fuwari.vercel.app/posts/20231122/
作者
我也困了
发布于
2023-11-22
许可协议
CC BY-NC-SA 4.0