DHH 锐评“打包工具”:前端根本不需要构建 (No Build)


继“移除 TypeScript”后,Ruby on Rails 作者 DHH 近日又在公开场合发表了一番“暴论”——称最快的打包工具就是没有打包 (No Build),有了 HTTP/2 以及浏览器原生支持 ES Modules ,前端根本不需要构建

在上周举办的 Rails World 大会上,DHH 说道:“最先进的(打包)技术不再是寻找更复杂的方法来构建 JavaScript 或 CSS,因为前端根本不需要构建。现在可以依靠 HTTP/2 和对 import map 的普遍支持来避免打包。”

via https://twitter.com/dhh/status/1712145950397841826

对于 DHH 提出的「No Build」,Vercel CTO Malte Ubl 称他们已尝试过,结果是行不通。因为在 HTTP2 中,每个请求的开销仍然非常大,并且存在并发限制,此外还会出现瀑布流和低效压缩。 目前,“打包”对于高性能网站来说是无法绕过的。

via https://twitter.com/cramforce/status/1712265070213050390

DHH 不认可 Malte Ubl 所说的“行不通”。他说道,这就是技术讨论的奇怪之处。即便已经有案例证明项目能完成大规模任务(如 Rails 之于 Shopify),但人们也会声称它不能进行扩展。或者已顺利使用某种方法多年(如 no build JS 之于 HEY 网站),也会有人说这套“行不通”。

最后,DHH 展示了其公司主站 https://www.hey.com/world/ 的性能表现。他表示 HEY 主要应用运行的 JavaScript 代码没有经过构建。


相關推薦

2023-09-09

表示这是开历史倒车。大家怎么看? 对了,不久前知名前端 UI 框架 Svelte 也宣布从 TypeScript 切换到 JavaScript。

2023-04-24

前 Deepin CTO 王勇近日在社交网站发布招聘信息时,提到了他们团队对于各种编程语言的丰富使用经历。 接着他本人谈论了一些关于各种编程语言的感悟,其中包括 Golang、Rust、Java、Python,甚至提到了比较小众的 Vala。下面是对

2023-03-12

字节跳动开源了一款采用 Rust 开发的前端模块打包工具:Rspack(读音为/'ɑrspæk/)。 据介绍,Rspack 是一个基于 Rust 的高性能构建引擎,具备与 Webpack 生态系统的互操作性,可以被 Webpack 项目低成本集成,并提供更好的构建性

2022-11-15

刚刚正式掌管 Twitter 不久的马斯克对公司进行了大刀阔斧的裁员,从他今天发表的推文来看,很显然他对此决策颇为满意,直言“Twitter 越来越充满活力”。 但与此同时,马斯克旁敲侧击地对 Twitter 的开发团队“批判”了一番

2022-11-17

。 有了 Deno,使用 npm 就更容易、更安全了。Deno 的内置工具链、std 库和强大的 IDE 支持意味着你可以更快地提高生产力。Deno 的默认安全、选择进入的权限模型意味着花更少的时间担心可疑的软件包,而花更多的时间交付产品

2023-10-27

件包选择成为可能,这是 Python 的独特卖点。 因此他们需要谨慎实现 no-GIL,避免破坏这些优势,或者导致其他开发者放弃数十年的软件包开发。 由于还没有实现 no-GIL,评估实际影响以及让第三方软件包适应新的自由线程的实

2023-10-09

类型检查可能不如 TypeScript 的类型系统完整和准确。 工具支持的差异:尽管一些工具和编辑器可以利用 JSDoc 注释进行类型检查,但与 TypeScript 相比,它们的功能和智能感知可能有所限制。 生态系统的差异:TypeScript 有一

2023-04-27

于 core crate 以及 borrow-checker 的实现,并开发一些必要的工具来尝试并通过 Rust 1.49 testsuite。 其目标是在下一个主要的 GCC 版本 (即 GCC 14)中,将 Rust 1.49 版本的标准库与编译器一起发布,并希望向后移植足够多的更改到 GCC 13 分支

2022-08-07

le 或 Windows Visual C++ 的 projects/workspaces 。文件 CMakeLists.txt 需要手工编写,也可以通过编写脚本进行半自动的生成。 CMake 3.24.0 现已发布,一些亮点更新内容如下: “FetchContent”模块和“find_package()”命令现在支持集成功能。

2022-06-20

发者通过 Tauri 几乎可以使用任何编译为 HTML、JS 和 CSS 的前端框架来构建桌面 UI。 Tauri 核心库采用 Rust 编写,使用 Tauri 开发的应用程序的后端是一个基于 Rust 的二进制文件,带有一个前端可以与之交互的 API,通过 JS Api 调用后

2022-11-09

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快

2022-12-17

发环境 Node.js LTS (nvm instal --lts) 和 Golang。 以下是推荐的打包方法(带有SQLite,方便本地测试) TAGS="bindata sqlite sqlite_unlock_notify" make build 启动 Gitea 主程序。这里先走完初始化步骤,会生成一个配置文件,位于当前目录下的

2023-01-21

iOS specific 当NO_FLIPPER=1时排除react-native-flipper以防止 iOS 构建失败(f47b5b8b5d) 修复在 iOS 13.0+ 上使用 SceneDelegate 时 RCTAlertController 不显示的问题。(0c53420a7a) 处理 Null 异常以验证 RCTAlertController 和 RCTDevLoadingView 中的输入(79e

2022-05-05

平化,但保留了全系统范围的模糊效果。 dock 的菜单和工具提示被赋予了一个更现代的外观。 低图形模式现在工作得更好,仪表盘速度也比以前快。 现在 Unity7 的内存占用率略低,而 Ubuntu Unity 22.04 的内存占用率已大幅降低