惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
博客园 - Franky
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
量子位
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
V
Visual Studio Blog
雷峰网
雷峰网
T
Tailwind CSS Blog
宝玉的分享
宝玉的分享
Blog — PlanetScale
Blog — PlanetScale
有赞技术团队
有赞技术团队
博客园 - 叶小钗
Microsoft Azure Blog
Microsoft Azure Blog
T
The Blog of Author Tim Ferriss
U
Unit 42
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
小众软件
小众软件
阮一峰的网络日志
阮一峰的网络日志
Y
Y Combinator Blog

News Hacker | 极客洞察

Rockstar GTA 6 团队组工会:薪酬透明、灵活工时、反 crunch 古罗马公寓:日常、城市规划与沉浸式体验 AI时代的专家价值:验证、经验与大学角色 Chad Whitacre 退 tech 转离线:Home Depot、印刷杂志、东正教社区 本地 Git remote:共享、隔离与 GitHub 误解 AI只该做琐事,别替代人情与创作 AISlop:检测 AI 生成代码坏味道的多语言 CLI 英国低价值采购系统:每月零申报的官僚负担 郁金香狂热:泡沫神话与理性争议 用 LLM 写代码,也要让人比模型更累 AI会重演前端“失去的十年”吗? AI 编程提产却压缩思考,工程质量与协作承压 Cloudflare 多 agent AI 代码评审引发成本与流程争议 500K AI电影“戛纳首映”被质疑只是公关噱头 8×H200跑2B模型到3k tok/s,“标准GPU”标题引争议 防水夹克演化:材料回潮、帽兜变迁与AI争议 意大利人与荷兰人教学时共享手势本能 Claude Code 隐藏配置考古:文档滞后、版本易碎与自动执行争议 大众汽车用 client assertion 阻断 Home Assistant 接入 Zot 支持 Claude Opus 4.8,评论聚焦 Claude Code 计费与 harness 神秘 Hy3 LLM 在 OpenRouter 霸榜:便宜、刷量与隐私争议 佛州 Blue Origin New Glenn 静态点火爆炸,堪比 N1 联网汽车监控升级:数据售卖、监管失灵与断网自保 Blue Origin New Glenn静态点火爆炸,发射台损毁恐延一年 住宅建造为何难规模化:地段、法规、偏好与收入 十种基础云:观云分类、光学现象与云计算误会 据称被 Shopify 收购后,Garnix 关停并开源 Bot Company疑借Airbnb私测家务机器人,致房屋受损 Coalton:Common Lisp 上的静态类型 Lisp,讨论集中在上手与类型建模 ktx:面向 data agents 的开源可执行上下文层,自动生成语义层与业务 wiki
Perry 用 SWC+LLVM 直编 TypeScript,评论质疑 runtime、GC ...
2026-05-30 · via News Hacker | 极客洞察

🎯 讨论背景

Perry 是一个试图把 TypeScript(JavaScript 的超集)直接编译成原生可执行文件的项目,前端用 SWC(一个用 Rust 写的快速 JavaScript/TypeScript 转译器),后端借助 LLVM(常见的编译器基础设施)生成机器码。它在 GitHub 上公开了仓库和展示页,并宣称可以减少甚至不需要传统 runtime。评论者因此把讨论集中到 TypeScript 的动态语义、garbage collector(垃圾回收器)和二进制体积等现实成本上。与此同时,项目的提交节奏和文案风格又让人怀疑大量内容由 AI 生成,使得大家对稳定性和工程成熟度保持戒心。另一些人则把它和 WASM(WebAssembly)路线并列,认为这类项目更像探索性的原型,而不是已经准备好替代 JS runtime 的成熟方案。

📌 讨论焦点

无 runtime 与 GC 质疑

不少评论直接质疑“no runtime dependencies”这类宣传。TypeScript 保留动态语义时,通常仍需要 garbage collector(垃圾回收器)和其他运行时支持,不能靠编译一步就消失。有人还指出,如果只是把 JS engine 的 JIT 事情提前到 AOT(ahead-of-time)阶段,本质上并没有摆脱运行时,只是把它藏进了二进制里。另有评论认为,把完整 UI 库静态链接进每个应用后,再说没有 runtime 也有些牵强。

[来源1] [来源2]

性能 vs 语义保留

围绕性能的讨论集中在 Perry 用 NaN-boxing 来保留 TypeScript 的动态类型系统这一做法。评论提到其 PERF_ROADMAP 里在图像卷积上比 Zig 慢 1.86x,并把 1.24 billion wasted instructions 归因于 NaN-box 的解包开销,说明保留动态语义确实有成本。另一方则反驳说,关键不在于放弃 TypeScript 语义,而在于做 monomorphization 和其他优化;“三项优化”文件被拿来证明完全可以在不丢语义的情况下继续缩小差距。

[来源1] [来源2]

AI 生成痕迹与稳定性质疑

也有很多人把注意力放在项目的成熟度上,而不是技术本身。评论指出官网文案很像 AI 生成,GitHub 提交记录里又出现频繁的 AI-powered commits,平均每小时十几次,让人担心代码质量和可维护性。还有人直接把“几百万行 AI 写的 Rust”称为稳定软件的说法视为大胆,配合展示页“goofy”的截图,整体观感更像实验性演示而非经过打磨的产品。

[来源1] [来源2] [来源3]

WASM/跨平台潜力

少数评论对这个方向保持开放态度,认为“用 TypeScript 做跨平台原生/字节码输出”本身很有意思。有人把它和 WASM(WebAssembly,一种可移植字节码格式)路线联系起来,觉得真正有价值的可能是 TS-wasm 与 TS-web 之间的接口和互操作,而不一定是完全替代传统编译链。也有人顺带指出,Rust 等语言即便能产出跨平台库,也常常会有较大的二进制体积,所以“体积大”本身未必足以否定这类项目。

[来源1] [来源2] [来源3] [来源4]

📚 术语解释

NaN-boxing: 一种把动态值编码进 IEEE 754 的 NaN 比特位中的技巧,常用于在运行时保存多种类型。

monomorphization: 根据已知类型把泛型代码专门化生成多个版本,以提升性能并减少动态分发开销。

WASM / WebAssembly: 一种可移植的低级字节码格式,可在浏览器和其他运行环境中执行。