简单不等于小巧:Unix 哲学的误区
Simple Is Not Small

最近我在分享代码覆盖率调试经历时,被问到如何避免复杂的调试故事,我当时的回答是“追求简单”。但事后我意识到,我们常把“小巧”误当作“简单”。Unix 管道虽然由许多小巧的工具组成,但为了完成特定任务,它们往往紧密耦合,导致修改逻辑异常困难。相比之下,像 Google Drive for Desktop 这样庞大的程序,对用户而言却异常简单。真正的简单在于解耦,而非体积大小。在 Rust 和 Clojure 的对比中,我们可以看到数据结构与类型检查的耦合程度如何影响程序的灵活性。保持程序小巧在资源有限时很有用,但追求简单应始终是我们的目标。
Unix 工具是“小巧”的,但它们并不“简单”。