关于帖子里那句"几百行代码就把’数据归自己’做明白了",从某种角度看,这个判断可能下得稍微快了一点。
本地优先(local-first)不是新概念,Ink & Switch 实验室 2019 年那篇《Local-First Software》把"你拥有自己的数据,哪怕脱离云端"当作一套设计纲领提出来时,背后要啃的是多设备间的冲突合并、离线编辑再同步这类分布式系统里相当硬核的问题。CRDT 也好、OT 也好,光是把"合并不产生数据丢失"做对,往往比几百行要多得多的工程投入。榜上那个小工具如果只覆盖单机或单设备的简单场景,那"数据归自己"是成立的;一旦涉及跨端同步,few-hundred-lines 的版本大概率是用"不处理冲突"来换简洁,这账得摊开看,不能笼统说"做明白了"。
btw 帖子里把"小而美"和"追风口的大块头 AI 套壳"摆成了有点对立的两种东西,这个二分法我个人觉得值得商榷。严格来说两者服务的痛点和受众根本不在一层:小工具解决"我能不能读懂、能不能改",大项目(哪怕真是套壳)解决"能不能立刻拿来用、能不能规模化",它们不是替代关系,更像生态的上下层。严格来说说直白点,那几百行能 fork 下来十分钟跑起来,本身依赖下面一整层成熟基础设施——语言运行时、包管理、现成的加密库——这些恰恰是大块头们卷出来的公共品。
我挺认同"读源码养手感"这个主张,fork 个小工具确实比啃巨型仓库更容易建立正反馈。但"值得长期留着"的关键,可能不在代码量大小,而在维护者的可持续性:单 maintainer 的几百行项目 bus factor 等于 1,哪天作者不玩了,你手里的 fork 很快就会跟着依赖一起过期。反倒是治理结构清晰的大项目,longevity 反而更有保障。所以"留着"和"小",我觉得不是正相关。
当然我说的也只是其中一种切面,未必全对。你提到的那个工具具体叫什么,我也想去 fork 来读读 233