文学编程的概念被提出已有四十年,为何一直未能普及?如今,AI Agent 的出现彻底改变了游戏规则——它们有能力替我们维护那套曾经令人崩溃的“代码”与“文档”的平行叙事。

写代码却疏于写文档,这似乎是程序员的通病。但你是否深入思考过,为什么“文学编程”这个听上去如此美好的理念,在长达40年的时间里始终只是少数极客的玩具?
我们都有过这样的经历:三个月后回顾自己写的代码,完全想不起当初的设计思路。当同事询问时,只能含糊其辞:“这个嘛...当时是为了处理某个边界情况...”
如果有一份文档,能原原本本地记录下编码时的完整思考过程,那该多省心。
文学编程:理想很丰满,现实很骨感
四十多年前,计算机科学家 Donald Knuth 提出了“文学编程”这一概念。其核心理念非常吸引人:代码不应只是一堆冷冰冰的机器指令,而应成为一篇人类可读的叙事文章,代码只是嵌入在这篇文章中的一部分。
听上去无比美好,对吧?
但真正实践过的人都知道,这里存在一个致命的痛点:开发者需要同时维护两套东西——代码本身,以及解释代码的散文式文档。
想象一下这个场景:你编写了一个函数,之后对其进行了三次重大的代码重构,每次的思路都截然不同。这时,你不仅要修改代码,还必须同步更新对应的说明文档。工作量瞬间翻倍,长期维护的负担让人望而却步。
因此,文学编程始终只是一个小众领域。它最常见的应用场景是数据科学家使用的 Jupyter Notebook,因为他们确实需要将分析过程、代码和结果整合在一起呈现。但对于日常开发业务逻辑的工程师而言,这套方法论显得过于笨重了。
转折点:当AI Agent加入战局
直到 AI Agent 登上舞台,事情才开始起变化。
如今的编程助手,如 Claude、Kimi 等,对于 Org Mode、Markdown 这类标记语言的掌握已经炉火纯青。它们不会抱怨“语法太复杂”,更不会在需要同步更新文档时偷懒或感到厌烦。
这催生了一种全新的、可行性极高的工作流:
你只需向 AI Agent 发出指令:“请为我编写一份运行手册,使用 Org Mode 格式。”
接下来,AI 会主动将可执行代码与解释性文档整合在同一个文件中。你需要做的,仅仅是审查、批准,然后运行。
具体如何操作呢?分享者的做法是这样的:
- 让 Agent 编写一个
.org 文件,其中包含清晰的测试步骤和每条步骤对应的命令行。
- 在审查时,文档的散文部分会解释每个步骤的目的,而代码块则可以直接被复制执行。
- 命令的运行结果会自动保存在文件中,就像使用 Jupyter Notebook 一样方便。
- 当需要修改代码时,只需让 AI 同步更新对应的说明段落。反之,如果想调整描述,AI 也能相应地对代码进行调整。两条叙事线在 AI 的维护下始终保持一致。
这就带来了质变——过去需要人工费力维护的“双线叙事”,现在 AI 可以不知疲倦、毫不出错地帮你自动同步。
AI Agent 为何能胜任此工作?
关键在于,文学编程的传统痛点恰恰是 AI 的强项:
- 翻译与总结:能够将代码逻辑“翻译”成通俗易懂的人话,也能将自然语言描述转化为准确的代码。
- 保持同步:每次代码或文档修改后,AI 都能自动重新整理并确保两者的一致性,且永远不会抱怨重复劳动。
- 驾驭复杂语法:Org Mode 丰富的元数据语法对人类可能是负担,但对 AI 来说处理起来毫无压力。
你甚至可以在项目中放置一个 AGENTS.md 文件,明确告诉 AI:“请将此 Org 文件视为唯一的事实来源,在执行任何代码前,请先进行 tangle(提取纯代码)操作。” AI Agent 会严格遵循这一指令。
此外,这种方法还有一个额外优势:整个代码库可以方便地导出为各种格式(如 PDF、HTML)供人阅读。如果未来程序员的核心工作逐渐从“编写代码”转向“理解和集成代码”,这一特性将变得至关重要。
潜在挑战与局限
当然,这种模式并非完美无缺。
首先,Org Mode 与 Emacs 编辑器绑定较深,这是一个历史包袱。实践者也承认,如果能用更普及的 Markdown 实现类似功能,接受度会更高。但 Markdown 目前缺乏对代码块元数据的强大支持,暂时还无法完全替代 Org。
其次,目前这套方法主要应用于测试脚本和手动操作流程的记录,尚未在大型、复杂的正式软件项目中得到充分验证。其扩展性和在实际协作中的效果,仍需更多实践来检验。关于技术文档的最佳实践,云栈社区的技术文档板块也有不少相关讨论。
那么,我们是否应该尝试?
我的建议是:非常值得一试。
尤其是如果你已经在使用 AI Agent 辅助编程,完全可以顺势让它帮你承担起文档维护的职责。
入门步骤非常简单:
- 为你的编辑器(无论是 Emacs 还是 VS Code)安装一个 Org Mode 插件。
- 在下达指令给 Claude 等助手时,额外补充一句:“请将整个过程记录在 Org 文件中。”
- 实际运行一遍,亲身体验这种工作流。
至于它能否真正让大型代码库变得“像小说一样可读”,我认为这是一个充满希望且值得探索的方向。
程序员或许无需再为“要不要写文档”而纠结了——AI 可以负责撰写,你只需专注于审查和批准。在文学编程诞生四十年后,我们可能正站在它最接近普及化的历史节点上。在开发者广场,你也可以看到更多开发者关于工作流变革的讨论。
相关工具
- Org Mode - Emacs 的文学编程基石,支持富文本与可执行代码块混合。
- Claude - 目前对长上下文和复杂指令理解较好的编程 Agent 之一。
常见问题
文学编程和写代码注释有什么区别?
代码注释是内嵌在代码行间的碎片化信息,散落在各处,缺乏整体的叙事结构。而文学编程是以完整的文档为主体,代码作为文档的一部分被嵌入其中,整个文件从头到尾构成一个连贯、可读的故事。
用 Claude 或其他 AI Agent 进行文学编程,必须使用 Org Mode 吗?
并非强制。Org Mode 的优势在于其强大的元数据能力(例如,可以为代码块指定在特定机器上运行)和原生的 tangling 功能。但如果你的主要需求是让 AI 记录操作步骤和结果,使用 Markdown 也能基本满足要求。这背后依赖的正是人工智能在语言理解与生成方面的能力。
这种方式适合大型项目吗?
目前公开资料中尚未有在大型生产项目中成功应用的典型案例。实践者主要将其用于测试和手动流程的记录。能否将其成功扩展到包含复杂架构和多人协作的正式代码库,仍然是一个开放性问题,需要社区的进一步探索。