2026年7月26日
两坨便便和一根棒棒糖
在一次次基准胜利之间讲述人的故事,学习如何推广严肃的开源系统软件。
我是 LinkedIn 新人。
职业生涯中的大部分时间,我都藏在一家家私营企业内部,编写代码、设计系统架构,而且那些系统毫无疑问都是闭源的。它们由我诞生在企业的地下墓穴里,注定永远见不到外面的阳光。
我一直是个高产的程序员,只不过这些产出几乎全都属于私下完成的工作。
偶尔,雇主会明确批准把某些东西发布给社区:一个旧原型、一条已放弃的分支,或一个经过删减、与最终交付系统早已面目全非的版本。这样,我便有了可以公开分享的东西,又不会暴露仍留在高墙之后的专有成果。
但这些发布只是例外。工作、家庭和生活用光了所有时间。我偶尔会启动一个开源项目,取得一些进展,然后眼看着它慢慢变成化石;与此同时,那些别人付钱让我编写的软件仍在紧锁的大门后不断生长。
后来,两件事变了。
自由与杠杆
第一,我不再供职于别人的公司,而是创办了自己的咨询业务。
这给了我自由。我可以决定哪些问题值得解决、哪些软件应该公开,以及用什么许可证发布。我不再需要一个委员会来裁决一段有用的代码能否逃到外面的世界。
第二,AI 到来了。
这给了我杠杆。
AI 让我的生产力提高了大约 50 倍。在 AI 出现以前,别人就已经认为我的产出异乎寻常;但每一项实现、实验、测试框架、基准和文档改动,仍然必须经过同一双手。
软件开发中有很大一部分工作,是把一个决定变成现实:编写样板代码、追踪陌生代码、找到 /proc 下那个确切的文件、想起哪个系统调用会暴露所需信息、构造测试数据、接好基准测试,或发现某个库对“超时”的理解与你的不太一样。
思考也许只需两分钟,通过键盘把它表达出来却可能要花两天。
AI 改变了这个比例。
该存在什么,仍然由我决定。架构、数据结构、取舍和基准由我选择。我审查实现,也对结果是否正确负责。但我不必再亲手拧紧每一颗螺栓。
第一个变化给了我发布的许可。
第二个变化给了我时间。
所以现在,我开始源源不断地产出制品
Goblin Core 是一款兼容 Redis 的数据库,在许多方面性能更好,内存占用更是显著优于现有实现。
Goblin Store 是一款兼容 Memcached、面向大对象工作负载的对象存储。在我关心的场景中,它同样比现有实现性能更高、内存占用更低。
而且不只这两个。我大约有十几个项目正在向前推进:数据库、缓存、SIMD 实现、网络实验、编译器工作,还有其他从实验室里爬出来的奇怪生物。
它们不是提示词生成的演示项目,不会只在 README 里宣称自己战胜了计算机科学。
它们是制品。
它们有测试,有基准,运行在真实硬件上。我用精心构造的工作负载将它们与严肃的现有实现比较。那些看着我一连消失几天、埋头设计基准的人会说,我的认真程度或许已经到了痴迷的地步。
这正是有趣的部分。
遗憾的是,写出好软件还不够。
没人会下载自己根本不知道存在的软件
无人发现的公共软件,远不如一套正在积极服务其开发企业的私有软件有用。
你必须解释它能做什么。
你必须证明为什么别人应该在意。
你必须赢得足够的信任,让某个人愿意下载它、运行它,甚至把自己基础设施中的一个小角落,托付给一个住在佛蒙特州、拥有太多旧服务器的陌生人。
换句话说,你必须推广它。
市场推广对我来说是一项新技能。
我的本能是发布一张图,展示某个实现少用了 36% 的内存,把 P99 延迟砍掉一半,或让一台老到已经拥有投票权的机器搬运多得令人尴尬的字节。
所有人肯定会立刻明白这有多棒。
显然并不会。
人们关心基准,也关心基准背后的人。他们想知道项目为何存在、什么问题把我惹恼到非得亲手解决、哪里出了错、什么让我意外,以及我在残骸中爬行时学到了什么。
基准告诉人们发生了什么。
故事告诉他们为什么应该记住。
学习 LinkedIn
我正在 LinkedIn 上开始这门功课。
我的项目还很年轻,而这里的受众对此相对温和,至少肯定比 Reddit 或 Lobsters 温和。在后两个地方,第三段少一个分号都可能招来一场审判。
LinkedIn 很奇怪,但也很有用。它会奖励技术工作,前提是技术工作到来时,外面包裹着某种一眼就能认出的人情味。
这要求我做一点调整。
无论我多么想谈论最新的基准、新功能、内存分配器、编译器实验,或与 Linux 内核之间一场晦涩的争论,我都不能没完没了地发布图表,还指望人们始终在意。
每赢下一次基准,我就需要先发两篇关于软件开发中人性一面的帖子。
那些挫折。
那些历史。
牵涉其中的古怪机器。
我为什么选择一种取舍而不是另一种。
某个让我在基准连续运行六小时期间保持愉快的小笑话。
某个我相信了二十年,却发现其中藏着微妙错误的观念。
这些其实并不是次一等的帖子。很多时候,人们对它们的反应最强烈。对于那些没有坐在我身旁、看着我构建软件的人,它们让技术工作变得可以理解。
但我的工程师大脑仍然把它们视为挡在我和甜点之间的蔬菜。
或者,更准确地说:
两坨便便和一根棒棒糖。
棒棒糖是那篇我迫不及待想发布的基准文章。
两坨便便则是我必须先写的人情故事。只有这样,当我终于亮出一张图,展示自己仅仅通过重新排列十二个字节,就多跑了每秒 1400 万次操作时,还会有人愿意听。
显然,这就是市场推广。
这个 Goblin 还在学习。