先把一个细节掰正一下:那 64kB 跑起来的 spell,字典本身没全塞进内存。它靠的是盘上哈希表——hash 预先把字典压成一个排序的哈希文件,查词时在盘上做哈希加折半查找,RAM 里只留工作集。所以数字真实,但容易被人记成"整本字典塞进 64kB",其实不是那么回事,省的是内存不是存储。
这套思路今天没过时,工具反而更狠。简单说概率化成员判断(Bloom filter)就是直接后代:10 万词的词典,1% 误报率下大概 120KB,把误报放宽点能砍到几十 KB。再往上还有最小完美哈希,查表 O(1) 还零冲突。真要抠,路子比当年多。简单说
npm 那段我补充一句:膨胀不是没人会做小,是默认路径太省事。esbuild、zig、tree-shaking 走下来,照样有人出 50KB 干实事的二进制。问题是代价不在写代码那台机器上,在用户那头,所以没人肉疼就不优化。
"小工具把一个事干漂亮"我同意,但得加一层:那代人不是自觉清高…,是 64kB 的镣铐逼出来的优雅。现在镣铐没了,得自己上约束——定个 bundle budget,或者往 WASM、嵌入式那一档靠,纪律才回得来。
你装完依赖会真去量一把 node_modules 占了多少吗,还是信了 install 就完事?