大家好,我是Echa。 说到Deno,让小编联想到2020年5月13日Node。js的作者RyanDahl对外宣布Deno1。0版本正式发布并面世大众,圈内一片哗然。都在讨论一个话题:Deno会取代Node。js吗? 一传十,十传百。这一晃快三年了。结果很显然,Deno和Node。js出生同一个作者RyanDahl之手,都还活着,而且越活越壮大了。 Node和Deno的star 小编先从下面几个维度进行分析当前这个结果,看看有没有道理,欢迎粉丝们评论下面讨论。成熟度维度:Node已经在大量商业应用中,Deno只是还在商业试验阶段生态维度:Node已经有丰富的生态,包含各种框架和库,并且都已经广泛应用。Deno的框架和库基本上都是刚刚起步学习成本维度:如果你已经了解Node,Deno也还是需要不少时间去熟悉,而且现代程序员普遍感觉到学习疲劳了。如果从零开始熟悉JS服务端编程,Deno相对来说会容易些,因为使用的现代JS语法。流行程度维度:Node基本上是人尽皆知,但是Deno在很短时间内,获得了大量几乎和Node一样GitHub点赞数。 javascript的发展简史 结论 从实际的产出价值(公司和个人)来说,不管是JS服务端初学者还是已经会Node开发的程序员,学Deno的路还很长。为了考虑到新学者,小编先看看上图的2019前javascript的发展简史,然后介绍Deno生态中的联盟框架讲解。全文大纲Deno介绍FreshAlephoakHonoUltraLumeAlosaurDeno下一步计划Deno介绍 官网:https:deno。land Github:https:github。comdenoland Deno是一个简单、先进且安全的JavaScript和TypeScript运行时环境,其基于V8引擎并采用Rust编程语言构建。 特性默认安全设置。除非显式开启,否则不能访问文件、网络,也不能访问运行环境。天生支持TypeScript。只有一个唯一的可执行文件。自带实用工具,例如依赖检查器(denoinfo)和代码格式化工具(denofmt)。有一套经过审核(审计)的标准模块,确保与Deno兼容:deno。landstd有大量的企业对使用Deno感兴趣 deno的组成 Deno的作者是RyanDahl,他是Nodejs背后的策划者。Deno建立在V8、Rust和Tokio的基础上,它的架构如下:Rust是由Mozilla主导开发的通用、编译型编程语言。设计准则为安全、并发、实用,支持函数式、并发式、过程式以及面向对象的编程风格。Deno使用Rust语言来封装V8引擎,通过libdeno绑定,我们就可以在JavaScript中调用隔离的功能。Tokio是Rust编程语言的异步运行时,提供异步事件驱动平台,构建快速,可靠和轻量级网络应用。利用Rust的所有权和并发模型确保线程安全。Tokio构建于Rust之上,提供极快的性能,使其成为高性能服务器应用程序的理想选择。在Deno中Tokio用于并行执行所有的异步IO任务。V8是一个由Google开发的开源JavaScript引擎,用于GoogleChrome及Chromium中。V8在运行之前将JavaScript编译成了机器代码,而非字节码或是解释执行它,以此提升性能。更进一步,使用了如内联缓存(inlinecaching)等方法来提高性能。有了这些功能,JavaScript程序与V8引擎的速度媲美二进制编译。在Deno中,V8引擎用于执行JavaScript代码。 如下图: Deno官网 主流浏览器API支持图 Fresh介绍 官网:https:fresh。deno。dev Github:https:github。comdenolandfresh Fresh是面向JavaScript和TypeScript开发者的全栈现代Web框架,可帮助他们轻松创建高质量、高性能、稳定性好,以及支持定制的Web应用。 Fresh核心是路由框架和模板引擎的组合,支持在服务器上按需渲染页面。除了在服务器中提供的即时(JIT)渲染之外,Fresh还提供了一个接口,用于在客户端上无缝渲染某些组件,以实现最大的交互性。该框架使用Preact和JSX在服务器和客户端上进行渲染和模板化。 一句话描述Fresh:在服务器端渲染并将HTML推送到客户端。 Fresh亮点特性无构建步骤零配置边缘JIT渲染轻量且快速(框架不需要客户端JS)单个组件支持可选的客户端Hydration由于采用渐进式增强和使用原生浏览器功能而具有很强的适应性开箱即用的TypeScript文件系统路由采用Next。js Fresh最显著的优点之一是它不需要任何构建步骤。您编写的代码是在服务器和客户端上运行的代码,任何必要的TypeScript或JSX到普通JavaScript的转换都是在运行中完成的。这允许非常快速的迭代循环和部署。 Fresh的关键区别在于,它可以及时运行所有内容,而不需要任何构建、包装、捆绑或运输。这不仅节省了时间,而且消除了复杂性,因为你可以准确地看到你得到了什么。这将大大减少代码占用,只向访问您网站的用户发送03kb的代码(加上您选择发送的任何客户端JS),而不是预绑定、传输、聚合、预构建的10mbJavaScript。 如下图: Fresh官网 Aleph介绍 官网:https:alephjs。org Github:https:github。comalephjsaleph。js Aleph。js是一个web框架,它提供了一种简单而灵活的方式来构建服务器渲染的web应用程序。Aleph的一个关键特性是它的零配置方法,它消除了开发过程中构建步骤的需要。这意味着模块只需要编译一次,并且可以使用热模块替换(HMR)和快速刷新在浏览器中立即更新更改。 Aleph依赖项使用URL导入,并由Deno的缓存系统管理,从而无需使用package。json文件或nodemodules目录。 Aleph。js的其他功能包括文件系统路由、实时服务器端渲染(SSR)、流式SSR、用于自动CSS的内置Unocss、对Deno中TypeScriptJSX的开箱即用支持、导入映射、中间件支持以及MDX等自定义模块加载程序。 目前,Aleph。js处于测试版,不建议用于生产。它支持几个流行的框架,包括React、ReactwithMDX、Vue、SolidJS(实验性)和Yew(在Rust中),并计划在未来支持Svelte和Lit等其他框架。 如下图: oak介绍 官网:https:oakserver。github。iooak Github:https:github。comoakserveroak Oak是一个中间件框架,用于在Deno、DenoDeploy和Node。js中构建服务器端web应用程序。它提供了一个用于处理HTTP请求和响应的最低限度API,以及一个中间件路由器,可以轻松地为应用程序添加附加功能。 Oak的一个关键特性是它使用了中间件功能,可以将应用程序的逻辑分解为可以轻松管理和测试的离散功能。Oak包括用于日志记录、错误处理和CORS支持等常见任务的几个内置中间件功能,以及用于创建自定义中间件功能的简单API。 Oak的极简主义设计和对简单性的关注使其成为希望快速轻松地构建简单web应用程序的开发人员的绝佳选择。它与Deno的核心库集成,并支持asyncawait语法,使其成为构建服务器端web应用程序的强大而灵活的工具。 如下图: Hono介绍 官网:https:hono。dev Github:https:github。comhonojs Hono是一个快速、轻量级的web框架,专门为边缘计算环境设计。它支持多种平台,包括CloudflareWorkers、FastlyComputeEdge、Deno、Bun、Vercel、Lagon和Node。js。 Hono与众不同的是其超快路由器,它使用RegExpRouter和TrieRouter等先进技术提供高性能路由,而无需线性环路的开销。这使得Hono成为需要快速响应时间和低延迟的开发人员的首选。 此外,Hono还提供一流的TypeScript支持和内置中间件,用于身份验证、验证和缓存等常见用例。它建立在Web标准API之上,具有零依赖性,是边缘计算环境的有效选择。 总的来说,Hono是一个很有前途的框架,可以在Deno和其他平台上构建快速高效的web应用程序。它对性能、灵活性和易用性的关注使它成为那些希望以最小开销构建高性能应用程序的开发人员的绝佳选择。 如下图: Ultra介绍 官网:https:ultrajs。dev Github:https:github。comexhibitionistdigitalultra Ultra是一个ReactDeno框架,专为Suspense服务器端渲染而设计。它提供了一种非规范性的web应用程序开发方法,让您可以自由使用自己喜欢的库或编写自己的库,目的是简化开发过程并精简工具链。 Ultra利用了最新的浏览器功能,如导入地图和ESM,使您能够编写ESM并运送ESM。使用Ultra,您可以利用服务人员缓存ESM源代码,并从上到下受益于本机导入映射。 该框架不那么固执己见,并通过自定义服务器客户端控件支持React生态系统的大部分内容,使您能够灵活地使用自己的路由、样式、数据获取和头库。如果您喜欢使用TypeScript和JSX,Ultra也支持它们。 如下图: Lume介绍 官网:https:lume。land Github:https:github。comlumeland Lume是一个基于Deno运行时环境的静态站点生成器,支持多种语言,如Markdown、Nunjucks、TypeScript和JavaScript。有了Lume的智能插件,可以搜索和分页内容,从Lume中的数据生成页面变得简单明了。 Lume提供了许多开箱即用的功能,如代码语法高亮显示、SEO支持、WindiCSS支持、分页和组件支持、关系支持、内置搜索功能以及图像和SVG支持。 尽管与其他网站生成器相比,Lume是一个新的静态网站生成器,但它提供了很多配置选项,您几乎可以用它做任何事情。有了Lume处理器和预处理器,您可以使用JavaScriptDOMAPI轻松地操作HTML代码。 如下图: Alosaur介绍 官网:https:alosaur。com Github:https:github。comalosauralosaur Alosaur是一个使用Deno运行时构建快速且可扩展的服务器端应用程序的框架。它提供了一组工具和功能,使开发和维护web应用程序变得容易,包括强大的路由系统、中间件支持和内置的依赖注入。 Alosaur强调性能和简单性,采用轻量级和模块化架构,允许您根据需要定制和扩展框架。它还支持广泛的第三方库和工具,使其成为web应用程序项目的绝佳选择。 如下图: Deno下一步计划 虽然与Node。js相比,Deno的框架生态系统较小,但需要注意的是,Deno是一个相对较新的运行时环境,于2018年推出。因此,它仍处于开发的早期阶段,并在对构建优先考虑安全性、性能和易用性的应用程序感兴趣的开发人员中迅速流行起来。 Deno项目有一个路线图,其中概述了一些即将推出的功能和改进。一些重点领域包括:稳定性Deno团队希望确保平台坚如磐石,没有漏洞。这包括改进测试基础设施和解决任何悬而未决的问题。性能Deno已经表现良好,但仍有改进的空间。该团队计划优化运行时间并提高各种操作的速度。安全性Deno在设计时已经考虑到了安全性,但该团队计划通过实现内置沙箱系统等功能使其更加安全。工具Deno团队希望通过改进工具生态系统,让开发人员更容易使用Deno。这包括开发更好的IDE集成以及创建更多的库和模块。兼容性该团队计划提高与现有Node。js模块和包的兼容性,使开发人员更容易将代码迁移到Deno。正如我们在文章开头所看到的,在这一领域已经取得了很多进展。总的来说,Deno项目的重点是继续改善开发人员的体验,使其成为构建现代web应用程序的更具吸引力的平台。考虑到Deno的受欢迎程度有多快,随着越来越多的开发人员使用Deno而不是Node开始他们的新项目,Deno很有可能会取代Node。js。最后 一台电脑,一个键盘,尽情挥洒智慧的人生;几行数字,几个字母,认真编写生活的美好; 一个灵感,一段程序,推动科技进步,促进社会发展。 创作不易,喜欢的老铁们加个关注,点个赞,打个赏,后面会不定期更新干货和技术相关的资讯,速速收藏,谢谢!你们的一个小小举动就是对小编的认可,更是创作的动力。