每周见闻:TypeScript 的类型系统可以运行毁灭战士
每周见闻:2025-03-02 - 2025-03-09
周刊:此方的手帐 - 周刊
微信公众号:此方的手帐
思考
AI 时代下,除了显卡,下一个吃紧的会不会是内存?
对于使用 AI 的人来说,无论是本地模型还是 Agent 都是需要内存。有次在开了 4、5 个 Windsuf 后,我的 MBP(16 G)竟然跳出内存不够的警告。
打开 Activity Monitor 观察,只要 Windsuf 打开的时间一长。内存使用就直接翻黄。别提还有 Chrome、Teams 等其他“大户”。没想到有一天能在 Mac 上体验到卡顿。
再者苹果的笔记本也同意 16 G 内存起步,这次新款 Air 还支持到了 32 G 内存。可想随着今后的发展,各个软件对内存的需求只会越来越高。下次再有换电脑的需求时,可能得考虑内存的容量了。
Coding
1、TypeScript 的类型系统可以运行毁灭战士[^1]
标签:TypeScript,FUN
是的,你并没有看错。一位国外的大神使用 TypeScript(修改后的版本) 的类型系统成功运行了经典游戏 DOOM(毁灭战士)。为了做到这一点,他构建了一整套在 TypeScript 类型系统内的计算机系统,包括:
- RAM
- 磁盘系统
- 调用栈
- 子程序
- 内存指针
- 执行上下文
活脱脱地手搓了一个系统,一些类型定义的文件更是多大了十多万行。作者修改了 TS 的各种限制,以支持各种超乎寻常的情况。
并且由于数量庞大,每次运行都要消耗 100G 内存。同时没有 IDE 能支持如此庞大的文件量;甚至连错误信息都只有内存溢出,完完全全的开发噩梦。
在如此严苛的条件下,作者坚持一年终于完成。为了渲染游戏的第一帧,项目需要在 12 天内处理 177 TB TypeScript 类型定义。
文章主要介绍了工作过程与难点,并且有一个简单的介绍视频。不得不说真的太牛了。这简直是体操中的体操了。
之前在看“神光”大神的 TS 类型体操的小册里,就有提到
TypeScript 的类型系统是图灵完备的,也就是能描述各种可计算逻辑。简单点来理解就是循环、条件等各种 JS 里面有的语法它都有,JS 能写的逻辑它都能写。
看来真的是一点都不假。
其他
1、为什么我切换到Firefox并从此不再回头[^2]
标签:Tools
本文介绍了作者在旧电脑上的 Chrome 占用太多内存,从而用回 FireFox 的原因。在 Chrome 上能做的事,FireFox 也都能做,并且在多标签的情况下内存占用更少。并且在标签管理上也比 Chrome 更为友好。
最近我也面临内存的问题,也打算切换一下试试。
工具
1、GitHub - hkdobrev/cleanmac: 用脚本清理你的macOS,无需昂贵的应用[^3]
标签:Tools
一个清理 Mac 系统的脚本,用来释放磁盘空间、内存等。
主要清除了系统日志、brew 的安装包、npm 依赖、不用的 docker 镜像。
在公司的电脑上试着跑了一下,因为东西太多,还挺花时间的。
类似的应用有 CleanMyMac、腾讯的 Lemon 等,都挺好用的。
参考文章:
- [1] 密歇根TypeScript创始人成功在类型系统内运行毁灭战士游戏…: https://socket.dev/blog/typescript-types-running-doom
- [2] 为什么我切换到Firefox并从此不再回头: https://www.howtogeek.com/why-i-switched-to-firefox-and-never-looked-back/
- [3] GitHub - hkdobrev/cleanmac: 用脚本清理你的macOS,无需昂贵的应用: https://github.com/hkdobrev/cleanmac