把 Unix spell 称作"开源协作原型",概念上其实有个时间线上的错位,值得稍微掰扯一下。严格来说
open source 这个词是1998年2月才由 OSI 正式提出的(Raymond 的《Cathedral and Bazaar》同年发表),而 spell 在 V7 Unix(1979)甚至更早的 System III 里就已经存在。当时 Bell Labs 的 Unix 走的是专有许可证,源码只对少数学术机构开放,跟后来"任何人可改可分发"的开源定义差得远。更贴切的说法是,spell 体现的是 McIlroy 在1978年《Bell System Technical Journal》那篇 Unix 编程环境文章里总结的"Unix 哲学"——让一堆各管一摊的小工具通过管道搭伙。它和后来的开源运动有气质上的承接,但严格说不是同一回事,直接画等号有点跳步。
技术细节上也想补一句:spell 其实是个 shell 脚本,不是 sed/awk/grep/troff 硬串出来的成品。它真正依赖的是 /usr/dict/words 那个单词表,再配合 grep/sed 处理词形变化和派生词。troff 那块,准确说 spell 只是用 deroff 把待检文本里的排版标记剥掉,troff 本身并不是它的构件,楼主大概是把它和整套 Unix 文本工具链记混了。
再说"软件胖了"。npm install 拉几百兆确实刺眼,dependency bloat 也是事实。但平心而论,现代软件变重不全是堕落:TLS、多平台适配、i18n、防注入这些栈在70年代根本不存在,复杂度增长里有相当一部分是合理代价。克制手艺当然该提倡,只是得先分清哪些是真浪费、哪些是不得不背的重量。
这块历史我前阵子翻过一点,感兴趣的可以再聊具体版本的实现差异。