近期,OpenAI 联合创始人 Andej Karpathy 继「氛围编程」(vibe coding)、「上下文工程」(Context Engineering)之后,又创造了一个新词 ——「细菌式编程」(Bacterial code)。
Andrej Karpathy 分享了维护开源社区的看法,提倡要 “细菌 DNA” 式的编码风格。
🧬 如何像细菌一样写代码,来建立一个繁荣的开源社区
细菌的代码(基因组)有以下特点:
🦠 小巧
(每一行代码都消耗能量)
🦠 模块化
(被组织成可相互替换的 “操纵子” 群组)
🦠 独立自足
(通过 “水平基因转移” 可以轻松地 “复制粘贴”)
💡 如果代码块是小巧、模块化、独立自足且极易复制粘贴的,那么社区就能通过 “水平基因转移” 的方式蓬勃发展。
对于你写的任何一个函数(基因)或类(操纵子),你能想象有人在不了解你其余代码、也无需导入任何新依赖的情况下,喊一声 “我的了!”(yoink)就直接拿去用并从中获益吗?你的代码能成为 GitHub 上热门的 Gist 吗?
这种编码风格使得细菌能够占领地球上从寒冷到炎热、从酸性到碱性的每一个生态位,甚至包括地球深处和太空真空,并演化出了极其多样的碳合成与能量代谢方式。它极其擅长快速原型开发,但是…… 它无法构建复杂的生命体。
相比之下,真核生物的基因组是一个体量大得多、更复杂、更有组织性且紧密耦合的单一代码库(monorepo)。它的创造性显著降低,但对于构建复杂生命体 —— 例如构建完整的器官并协调其活动 —— 却是必需的。
凭借我们 “智能设计” 的优势,我们应该可以兼得两者的优点。如果必须的话,你可以构建一个真核生物式的单一代码库作为主干,但要最大化地采用 “细菌 DNA” 式的编码风格。
据 Karpathy 的介绍,细菌编程拥有三个特点:代码块精简、模块化、自包含且易于复制粘贴。拥有上述三个特点后,代码社区就可以通过「水平基因转移」而蓬勃发展。
Karpathy 解释,细菌历经地球各种时期:从严寒到酷暑,从酸到碱,甚至外太空,但细菌几乎能够殖民生态圈的每一处。而细菌能够如此强大,靠的正是其基因组那套厉害的演化逻辑。Karpathy 认为,开发者也应该向细菌的生存方式学习。
在生物学中,为了减少能量消耗,细菌基因组里拥有了「自我精简机制」,Karpathy 认为「开发者们也应该有这样的意识」:写代码太容易、成本太低,导致大家开发十分随意,最后代码变得臃肿不堪,甚至脆弱且杂乱。
另外,Karpathy 也承认了「细菌编程」的局限性:无法构建复杂的生命体。相比之下,更高级的真核生物的基因组,宛如一个庞大、复杂,但高度耦合的单体仓库(Monorepo)。有了单体仓库,才能实现组织性和协调性。
对此,Karpathy 认为,人类在面对「细菌」和「真核生物」两种方式时,可以取长补短:在一个统一、用有结构化的项目(Monorepo)中进行开发,但大框架下,要做到每一个功能、模块写得像细菌基因组一样 —— 精简、独立、自包含,甚至拥有「复制粘贴」功能。