智源社区 前天 10:22
Karpathy最新脑洞「细菌编程」:优秀的代码应该具备细菌的三大特质
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

Andrej Karpathy提出“细菌编程”概念,主张代码块小而精、模块化、自包含且易于复制粘贴,借鉴细菌的生存智慧,通过“水平基因转移”促进开源社区发展。该理念强调代码的精简性、模块化设计及自包含特性,旨在构建更灵活、高效的软件开发模式。Karpathy还提出了“More gists, less gits”的口号,鼓励开发者创建可独立复用的代码片段,而非依赖庞大复杂的monorepo。这一概念与他的“软件3.0”和“Vibe coding”等理念相呼应,共同描绘了未来编程范式的演进方向,其中自然语言编程大模型和AI agent的兴起将成为关键驱动力。

🔬细菌编程的核心特征是代码块小而精、模块化、自包含且易于复制粘贴,借鉴细菌基因组的演化逻辑,强调代码的精简性和高效性,避免代码臃肿和依赖混乱。

🧬模块化设计如细菌的操纵子(Operon),对应软件开发中的高内聚、低耦合模块,每个模块可独立激活、抑制或转移,实现功能的灵活组合与替换。

🔄水平基因转移机制强调代码片段的自包含性,不依赖项目特定配置或外部库,类似GitHub Gist的可独立复用,促进代码的广泛传播与快速迭代。

🚀More gits, less gits的理念鼓励开发者创建可独立复用的代码片段,而非依赖庞大复杂的monorepo,通过代码的“基因转移”加速开源社区的创新。

🧠Karpathy认为细菌编程擅长快速原型设计,但需与真核生物monorepo的智能设计结合,兼顾灵活性与完整性,构建更适应未来需求的软件开发体系。

像细菌一样编写代码!

创造出“氛围编程”、“软件3.0”的大神Karpathy又抛出一个新概念,引起网友广泛讨论——

菌编(Bacterial code),要有三个特点:代码块小而精、模块化、自包含且易于复制粘贴。

如此一来,开源社区就能通过“水平基因转移”蓬勃发展。

网友们就Karpathy提出的这个新概念进行了广泛讨论。

甚至有网友认为这则推文是他“近十年来看到过的最有趣的帖子”。

还有网友好奇Karpathy的脑洞:

老天奶,这些知识是怎么融入你的知识体系的。

More gists, less gits.

Karpathy的新理念,源于对生物演化生存策略的深刻洞察。

他觉得,若想打造一个充满活力、能快速迭代的开源社区,开发者不妨向地球上最具生存智慧的生命形式细菌学习。

这些微观世界的“生存大师”历经亿万年物竞天择,早已将适者生存的法则刻进了基因深处。

不管是极寒、酷热,还是强酸、强碱,乃至太空环境,细菌几乎能殖民地球上所有的生态位,靠的正是其基因组(即“代码”)那套厉害的演化逻辑。

Karpathy把这套演化逻辑提炼成三条法则,还映射到软件开发实践里:

生物学里,复制、维护每个DNA碱基对都得消耗能量。这种“成本约束”,让细菌基因组天然自带“自我精简机制”。

Karpathy觉得,软件开发也该有这意识。写代码太容易、成本太低,大家随手就加依赖,最后代码臃肿不堪,又脆弱又混乱。

细菌的基因,会组织成叫“操纵子(Operon)”的功能簇。这些模块能整体被激活、抑制或转移,实现功能的 “即插即用”。

在编程中,这对应于高内聚、低耦合的模块化设计。每个类或模块都应像一个独立的“操纵子”,可以被轻松地替换或与其它模块组合,而不会引发连锁反应。

咋理解?细菌演化出了“水平基因转移”Horizontal Gene Transfer)的强大能力,可以直接从其它细菌那里“复制粘贴”有用的基因片段(如抗生素抗性基因),而无需理解对方完整的基因组上下文。

对应到软件开发中,也就是说代码片段应是自包含的,不依赖于项目特定的复杂配置、全局状态或大量的外部库。

更通俗一点,如何判断软件代码是否符合“细菌编程”标准?

就此,Karpathy提出了两个问题:

对于你写的任何一个function基因或class(操纵子),你能想象有人在不了解你项目其余代码、也无需导入任何新依赖的情况下,直接“顺手牵羊”(yoink)地拿走它,并立即从中获益吗?你的这段代码,有没有潜力成为一个热门的GitHub Gist?

用一句话总结:More gists, less gits.

当然,“细菌编程”并非万能灵药。它虽然擅长快速原型设计,但无法构建复杂生命。

Karpathy表示,相比之下,真核生物基因组是更大、更复杂、组织更紧密的monorepo,创新性明显较低,却是构建完整器官和协调生命活动的必要条件。

凭借智能设计的优势,应该可以兼取两者之长:

必要时构建真核生物monorepo骨架,但最大化保留“细菌 DNA”的特性

那些由Karpathy提出的大火概念

作为前特斯拉AI总监和OpenAI创始成员,Andrej Karpathy在AI和软件开发领域具有重要影响力。

在提出“细菌编程”之前,还有多个概念被他提出并带火,包括:

软件3.0(Software 3.0)

软件3.0,即用自然语言编程大模型的新时代,这个概念Karpathy在上个月刚刚提出

他表示,软件在过去70年基本没怎么变过,但最近几年却连续经历了两次根本性变革。

    软件1.0:代码,就是我们熟悉的传统编程,程序员敲代码指挥计算机通过指令执行任务。
    软件2.0:权重参数,神经网络时代不再直接写代码,而是调整数据集,让优化器生成神经网络的权重参数。

他认为,当初很多人觉得神经网络就是个分类器,跟决策树差不多,真正的巨变发生在大模型出现后。

以前的神经网络都是固定功能的机器,比如AlexNet只能做图像识别。但大模型不一样,它们是可编程的!你的提示词(prompt)就是程序,而且还是用英语(或其他自然语言)写的。

由此,我们现在进入了用自然语言编程大模型的软件3.0新时代。

站在软件3.0的起点,Karpathy对想要进入科技行业的人分享了自己的看法:

我们需要重写海量的代码,专业程序员要写,vibe coder也要写。在接下来的十年里,我们会把自主性滑块从左边推到右边。

短期来看,大量软件需重构为 “人类+大模型” 协同模式,半自主应用爆发。

中期来看,大模型逐步渗透企业级工作流,代码、文档、数据分析全面智能化。

长期来看,类似《钢铁侠》贾维斯的智能助手普及,自主权滑动条从左到右延伸,但人类始终是闭环中的决策者。

这是一个需要同时掌握 Software 1.0(代码)、2.0(模型训练)、3.0(提示词工程)的时代。

氛围编程(Vibe coding)

Vibe coding,是另一个由Karpathy提出的流行词,核心是既然大模型能理解英语,那每个会说话的人都能编程

Karpathy称自己发了推特15年,也猜不到究竟哪条会火,以为随便聊聊Vibe coding这个自己想出来的新词不会有太多人关注,结果这个词现在火到连维基百科页面都有词条了。

Karpathy自己尝试了Vibe coding,虽然不会Swift,但一天就做出了iOS应用。还做了个叫Menu Genie的餐厅菜单图片生成器。

不过他发现写代码反而是容易的部分,真正困难的是部署——认证、支付、域名配置这些都要在浏览器里点来点去。“计算机在告诉我该点哪里,这太荒谬了,为什么不是它自己去点?”

由此,Karpathy认为:需要为AI agent重建基础设施。

现在的软件都是为人类设计的,到处都是“点击这里”的指令,大模型看不懂。一些先驱如Vercel和Stripe已经开始提供大模型友好的文档,用Markdown格式,把所有“点击”替换成了curl命令。

这就像给网站加robots.txt一样,Karpathy建议加个LLM.txt,直接告诉AI这个网站是干什么的。

另外,还有一个新词,虽然不是Karpathy率先提出的,但得到了他的力挺,这个词就是前几天大火的——上下文工程(Context Engineering)

Karpathy表示,很多人觉得提示词就是日常用大模型时输入的简短指令,但在所有工业级LLM应用中,“上下文工程”完全是另一门艺术与科学,它得精准把控上下文窗口里的信息填充。

说它是“科学”,是因为要做好这件事需要整合任务说明、示例演示、检索增强生成(RAG)、相关多模态数据、工具调用、状态记录和历史对话等要素,还要通过压缩技术优化内容。

信息太少或形式不当,LLM 就缺乏足够的上下文来发挥最佳性能;信息过多或无关,则会推高调用成本并降低效果,要做到恰到好处绝非易事。

说它是“艺术”,则因为这需要对LLM的“行为逻辑”有直觉性的把握,如同理解人类思维的规律。

除了上下文工程本身,Karpathy表示,一个LLM应用还需要:

    合理将问题拆解为可控的工作流
    精准填充上下文窗口
    调用匹配任务需求的LLM模型
    处理生成-验证的用户交互流程
    更多细节:安全防护、效果评估、并行处理、预加载机制等

总之AI的进化速度已经远超预期,而Karpathy的这些脑洞,或许正是未来编程范式的早期信号。

参考链接:
[1]https://x.com/karpathy/status/1941616674094170287
[2]https://x.com/karpathy/status/1937902205765607626

一键三连「点赞」「转发」「小心心」

欢迎在评论区留下你的想法!

—  —

专属AI产品从业者的实名社群,只聊AI产品最落地的真问题  扫码添加小助手,发送「姓名+公司+职位」申请入群~
进群后,你将直接获得:
 👉 最新最专业的AI产品信息及分析 🔍 
 👉 不定期发放的热门产品内测码 🔥
 👉 内部专属内容与专业讨论 👂

🌟 点亮星标 🌟

科技前沿进展每日见

内容中包含的图片若涉及版权问题,请及时与我们联系删除

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

细菌编程 开源社区 软件3.0 Vibe coding 模块化设计
相关文章