1. 微擎百科首页
  2. 开发学习

deno来了,要不要学?学得动吗?

Deno 是作者 Ryan Dahl 在 Node 之后的又一大作,它是一个新的运行时,用于在 Web 浏览器之外执行 JavaScript 和 TypeScript,其采用 Rust 编写而成(最初用的是 Golang)。

功能亮点

默认安全。外部代码没有文件系统、网络、环境的访问权限,除非显式开启。

支持开箱即用的 TypeScript 的环境。

只分发一个独立的可执行文件 (deno)。

有着内建的工具箱,比如一个依赖信息查看器 (deno info) 和一个代码格式化工具 (deno fmt)。

有一组经过审计的 标准模块,保证能在 Deno 上工作。

脚本代码能被打包为一个单独的 JavaScript 文件。

干掉node?

从名称来看,“Deno”似乎是把“Node”的拼写拆开重排,那到底颠覆了哪些node的设计呢?

我们在该领域的原始事业Node.js被证明是一个非常成功的软件平台。人们发现它对于构建Web开发工具,构建独立的Web服务器以及许多其他用例很有用。但是,Node是在2009年设计的,当时JavaScript是一种非常不同的语言。出于必要,Node必须发明概念,这些概念后来被标准组织采纳,并以不同的方式添加到语言中。在“ Node中的设计错误 ”演示文稿 ,对此进行了更详细的讨论。由于Node拥有大量用户,因此发展该系统既困难又缓慢。

随着JavaScript语言的不断变化以及诸如TypeScript之类的新添加功能,构建Node项目可能会成为一项艰巨的工作,涉及管理构建系统和其他繁重的工具,这些工具摆脱了动态语言脚本的乐趣。此外,通过NPM存储库从根本上集中了链接到外部库的机制,这不符合Web的理想。

没有package.json和node_modules

那怎么安装第三方库?在deno中可以使用”import”关键词引用库的URL地址

import { assertEquals } from “https://deno.land/std/testing/asserts.ts”;

也不会出现npm install之后生成体积巨大的“node_modules”目录及可能带来的依赖冲突问题

 

对前端技术的影响?

虽然node诞生之初只是让js的运行脱离了浏览器,并不是一个“前端工具”,但node在后端的流行程度及生态却发展得不如在前端中的好。

可现代的前端开发的项目构建、发布、运行却已经重度依赖node工具链了,deno诞生之后会给变化已经风起云涌的“前端娱乐圈”带来又一次的颠覆吗?

早在作者开坑立项的时候,deno的github页面的issues区中就涌现了很多中文的比如:“别更新了,老子学不动了”之类的垃圾留言,这也反映了大家对大神的新项目会不会又一次颠覆行业的技术栈的担忧。

也许未来的前端工具链也会从node迁移到deno,不过我自己先持观望态度,时间会考验这个新东西有没有真正解决开发的痛点。

本文来自投稿,不代表微擎百科立场,如若转载,请注明出处:https://www.w7.wiki/develop/3915.html

发表评论

登录后才能评论

评论列表(1条)