2025远离Deno和Fresh

news2025/6/7 14:43:50

原创作者:庄晓立(LIIGO)
原创时间:2025年6月6日
原创链接:https://blog.csdn.net/liigo/article/details/148479884
版权所有,转载请注明出处!

相识

Deno,是Nodejs原开发者Ryan Dahl重新设计并组织开发的JS/TS运行时平台。

Fresh,是专用于Deno平台的基于Preact实现的WEB开发框架。

这二者都是小众项目。Deno甚至还不如后生小子Bun知名度大;Fresh更不用提了,听过的人很少。

考虑到Deno是破旧立新的开源项目(相对于Nodejs),再加上其传奇的设计师,以及使用Rust语言开发,它对我有天然的吸引力,我对它有天然的亲近感。从0.1到1.0到2.0,我一直关注着它的开发进展,始终报以期望。感觉他们一步一个脚印,开发进展还是很快很扎实的。

2023年初我有一个小项目要做微信公众号后台,技术选型时选到了Fresh,那是我第一次接触Fresh。当时觉得Rust/CSharp/Nodejs的方案都重,Fresh更轻量级。

选型Fresh起到决定性作用的是如下两篇Deno官方博客上的技术文章:

  • You Don’t Need a Build Step (Fresh没有构建步骤)
  • A Gentle Introduction to Islands (Fresh支持岛屿架构)

为了它我忍了类React/JSX前端(当时有偏见后来觉得真香)。后来又陆续用它做了几个小项目(部分日常使用至今),总体感觉这个Fresh很不错,开发和部署门槛都低,都好用。Fresh引导我首次接触React/Preact,JSX,useState(),我很感激它。

相离

使用Fresh过程中发现了它的一些小毛病,但也无伤大雅:

  • 例1,React/Preact不支持双向数据绑定,需要手动监听表单事件读取新值赋值给状态变量。
  • 例2,Fresh的各种handlers方法签名杂乱不一。
  • 例3,JS中if-else是语句不是表达式不方便嵌入JSX。

部署至Deno Deploy时也遇到过一些棘手的维保问题,不提了,毕竟咱也不是付费用户。

前面说过“没有构建步骤”是Fresh吸引我的一大亮点,是我当初选用Fresh的决定性因素之一。可是2024年初,他们自己阉割了这一特性。让我说什么。我也忍了。

2023年底至2025年初这一年多时间里,Fresh没有实质开发进展。开发人员先是去做JSR,晾了Fresh几个月;回来后挖了个大坑(发起Fresh2),不久又去做Deno2,又晾了Fresh几个月;JSR和Deno2都完事后,依然没有回归开发Fresh2的任何迹象;几个月后才知道人家又被调去开发Deno Deploy新版啦,无语!持续关注一年半,我(LIIGO)几乎天天翻它的源码仓库啊,收获的只是一遍遍的失望。三番五次的被他们“耍”,你说我该不该爆粗口,再痴等傻等我是那个!至此已基本确定放弃关注Fresh。(当然我知道这是开源项目,不该有超出常规的企望。)

fresh-commits

压倒骆驼的最后一根稻草来了。是Deno老大ry前些天发布的一篇辟谣文章,是对近期网络传言“DENO将死”的官方辟谣。读完这篇文章,居然给我一种“辟谣就是实锤”的颠倒感。在辟谣文中,他承认Deno Deploy最初可用全球部署区域是25个,高峰时高达35个,现在仅剩6个了。他解释为这是成本驱动(不挣钱只能压缩成本?)也是使用量驱动(用户跑了?)。他承认以前追求的边缘部署策略已被证实不合时宜(用户不买账呗?),需要重新设计实现。他承认DenoKV不算成功,将来可能要大改。他承认Fresh开发延宕太久让用户失望。再考虑到从Deno 1.0的“反Nodejs”到Deno 2.0的“完全兼容Nodejs”的一百八十度大转身,以上种种,似乎多处印证了这种感觉:他们的重大决策多有失误,数次押宝没押对。是时候反思他们的技术和产业前瞻性了。

2025年,我要远离Deno和Fresh。同时我也送上祝福,希望它们早日凤凰涅槃,卷土重来。希望将来有一天,我还会拥抱它们。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2403016.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flask+LayUI开发手记(七):头像的上传及突破static目录限制

看了看,上篇开发手记是去年8月份写的,到现在差2个月整一年了。停更这么长时间,第一个原因是中间帮朋友忙一个活,那个技术架构是用springboot的,虽然前端也用layUI,但和Flask-python完全不搭界,所…

MiniExcel模板填充Excel导出

目录 1.官方文档 2. 把要导出的数据new一个匿名对象 3.导出 4.注意事项 5.模板制作 6.结果 1.官方文档 https://gitee.com/dotnetchina/MiniExcel/#%E6%A8%A1%E6%9D%BF%E5%A1%AB%E5%85%85-excel // 1. By POCO var value new {Name "Jack",CreateDate n…

MCP协议重构AI Agent生态:万能插槽如何终结工具孤岛?

前言 在人工智能技术快速发展的2025年,MCP(Model Context Protocol,模型上下文协议)正逐渐成为AI Agent生态系统的关键基础设施。这一由Anthropic主导的开放协议,旨在解决AI模型与外部工具和数据源之间的连接难题,被业界形象地称…

阿里云事件总线 EventBridge 正式商业化,构建智能化时代的企业级云上事件枢纽

作者:肯梦、稚柳 产品演进历程:在技术浪潮中的成长之路 早在 2018 年,Gartner 评估报告便将事件驱动模型(Event-Driven Model)列为十大战略技术趋势之一,指出事件驱动架构(EDA,Eve…

CentOS8.3+Kubernetes1.32.5+Docker28.2.2高可用集群二进制部署

一、准备工作 1.1 主机列表 HostnameHost IPDocker IPRolek8s31.vm.com192.168.26.3110.26.31.1/24master&worker、etcd、dockerk8s32.vm.com192.168.26.3210.26.32.1/24master&worker、etcd、dockerk8s33.vm.com192.168.26.3310.26.33.1/24master&worker、etcd、…

学习日记-day23-6.6

完成目标: 知识点: 1.IO流_转换流使用 ## 转换流_InputStreamReader1.字节流读取中文在编码一致的情况,也不要边读边看,因为如果字节读不准,读不全,输出的内容有可能会出现乱码 2.所以,我们学了字符流,字符流读取文本文档中的内容如果编码一致,就不会出…

Pytorch安装后 如何快速查看经典的网络模型.py文件(例如Alexnet,VGG)(已解决)

当你用conda 安装好虚拟环境后, 找到你的Anaconda 的安装位置。 我的在D盘下; 然后 从Anaconda3文件夹开始:一级一级的查看,一直到models Anaconda3\envs\openmmlab\Lib\site-packages\torchvision\models 在models下面&#x…

有人-无人(人机)交互记忆、共享心智模型与AI准确率的边际提升

有人-无人(人机)交互记忆、共享心智模型与AI准确率的边际提升是人工智能发展中相互关联且各有侧重的三个方面。人机交互记忆通过记录和理解用户与机器之间的交互历史,增强机器对用户需求的个性化响应能力,从而提升用户体验和协作效…

【OpenGL学习】(五)自定义着色器类

文章目录 【OpenGL学习】&#xff08;五&#xff09;自定义着色器类着色器类插值着色统一着色 【OpenGL学习】&#xff08;五&#xff09;自定义着色器类 项目结构&#xff1a; 着色器类 // shader_s.h #ifndef SHADER_H #define SHADER_H#include <glad/glad.h>#inc…

408第一季 - 数据结构 - 栈与队列的应用

括号匹配 用瞪眼法就可以知道的东西 栈在表达式求值运用 先简单看看就行&#xff0c;题目做了就理解了 AB是操作符,也是被狠狠加入后缀表达式了&#xff0c;然后后面就是*&#xff0c;只要优先级比栈顶运算符牛逼就放里面&#xff0c;很显然&#xff0c;*比牛逼 继续前进&#…

超声波清洗设备的清洗效果如何?

超声波清洗设备是一种常用于清洗各种物体的技术&#xff0c;它通过超声波振荡产生的微小气泡在液体中破裂的过程来产生高能量的冲击波&#xff0c;这些冲击波可以有效地去除表面和细微裂缝中的污垢、油脂、污染物和杂质。超声波清洗设备在多个领域得到广泛应用&#xff0c;包括…

“草台班子”的成长路径分析

一、草台班子的起点&#xff1a;用最小成本验证价值 特点&#xff1a; 团队规模小&#xff08;通常3-5人&#xff09;&#xff0c;成员背景杂&#xff08;可能是程序员产品经理运营的混搭&#xff09;&#xff1b;资源匮乏&#xff08;无资金、无技术中台、无客户积累&#x…

软件测评服务如何依据标准确保品质?涵盖哪些常见内容?

软件测评服务涉及对软件的功能和性能等多维度进行评估和检验&#xff0c;这一过程有助于确保软件的品质&#xff0c;降低故障发生率及维护费用&#xff0c;对于软件开发和维护环节具有至关重要的价值。 测评标准依据 GB/T 25000.51 - 2016是软件测评的核心依据。依照这一标准…

Python打卡第46天

浙大疏锦行 注意力 注意力机制是一种让模型学会「选择性关注重要信息」的特征提取器&#xff0c;就像人类视觉会自动忽略背景&#xff0c;聚焦于图片中的主体&#xff08;如猫、汽车&#xff09;。 从数学角度看&#xff0c;注意力机制是对输入特征进行加权求和&#xff0c;…

Unity优化篇之DrawCall

当然可以&#xff01;以下是完整、详尽、可发布的博客文章&#xff0c;专注讲解 Unity 的静态合批与动态合批机制&#xff0c;并详细列出它们对 Shader 的要求和所有限制条件。文章结构清晰、技术深度足够&#xff0c;适合发布在 CSDN、掘金、知乎等技术平台。 urp默认隐藏动态…

SpringCloud学习笔记-2

说明&#xff1a;来源于网络&#xff0c;如有侵权请联系我删除 1.提问&#xff1a;如果注册中心宕机&#xff0c;远程调用还能成功吗 答&#xff1a;当微服务发起请求时&#xff0c;会向注册中心请求所有的微服务地址&#xff0c;然后在向指定的微服务地址发起请求。在设计实…

从混乱到秩序:探索管理系统如何彻底改变工作流程

内容摘要 在许多企业与组织中&#xff0c;工作流程混乱是阻碍发展的“绊脚石”。员工们常常被繁琐的步骤、模糊的职责和沟通不畅等问题搞得焦头烂额&#xff0c;工作效率低下&#xff0c;错误频发。而与之形成鲜明对比的是&#xff0c;一些引入了先进管理系统的团队&#xff0…

最新研究揭示云端大语言模型防护机制的成效与缺陷

一项全面新研究揭露了主流云端大语言模型&#xff08;LLM&#xff09;平台安全机制存在重大漏洞与不一致性&#xff0c;对当前人工智能安全基础设施现状敲响警钟。该研究评估了三大领先生成式AI平台的内容过滤和提示注入防御效果&#xff0c;揭示了安全措施在阻止有害内容生成与…

HTML5+CSS3+JS小实例:具有粘性重力的磨砂玻璃导航栏

实例:具有粘性重力的磨砂玻璃导航栏 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width…

Python爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…