刚看到那篇讲 Unix spell 怎么在 64KB 内存里跑拼写检查的文章,挺感慨。现在装个编辑器都吃几百兆内存,回头看七十年代那帮人,字典、哈希、外部排序各做一块,靠管道拼起来就把事办了。说白了"一个工具只干一件事"做到极致,没内存给你浪。
从某种角度看,这种被逼出来的精简,比今天"先 npm install 再说"的风气更贴近开源本意。那时候代码写给人读,模块靠标准输入输出接起来,改一块不碍另一块。如今依赖树一拉几万文件,可读可改反倒成了奢望。
我有时琢磨,约束未必是负担。写工具前先问句"还能再小吗",往往比急着堆功能更逼得出好设计。当然这也值得商榷,不是什么场景都该极小化,但那种克制比无脑加依赖耐看。严格来说
前阵子翻出自己十年前写的脚本,跑起来比现在这些"正规工程"顺手,大概就是这道理 ( ̄▽ ̄)