AI原生应用的新范式:当传统代码被描述性语言替代
未来的“安装”可能不是运行一个脚本,而是告诉AI你想做什么,然后它自己去折腾——这远比它帮你写代码更颠覆。
核心观点:真正激进的变化不是AI辅助写代码,而是AI让“写代码”这件事本身变得可被自然语言描述替代,这正在催生一种新的应用范式。
在AI产品的热潮中,最主流的叙事一直是“AI辅助编程”:GitHub Copilot帮你自动补全代码,Cursor让你用自然语言生成函数,于是人们惊呼“程序员要失业了”。但如果我们只盯着这个角度,就会错过一个更根本的变化——不是AI在帮你写代码,而是“写代码”这整个概念正在被消解。
Andrej Karpathy在最近一次Sequoia活动中提到了三个例子,每一个都值得细品。第一个叫“menugen”,这是一个完全由LLM驱动的应用,没有一行传统代码:输入一张图片,输出一张图片,整个过程完全由模型自主完成。第二个更极端:用markdown文件替代bash脚本。你想在服务器上装一个软件,不再需要写一个复杂的、需要处理各种边界情况的shell脚本,而是写一段自然语言的安装说明,然后直接扔给AI去执行。第三是LLM知识库——处理来自任意来源、任意格式的非结构化数据,这用传统代码几乎不可能实现。
这三个例子的共同点是什么?它们不是在加速已有的软件开发流程,而是在定义一种全新的应用类型。传统软件的核心是确定性逻辑:if-else分支、循环、函数调用,每一条路径都是工程师预先设计好的。而AI原生应用的核心是“描述性逻辑”:你不是告诉系统每一步怎么走,而是告诉它你想要什么结果,然后让模型自己去探索路径。这两者之间的区别,就像给一个人一份地图和一个指南针的区别。
这种转变的激进之处在于,它动摇了软件开发最根本的前提。过去三十年,软件工程的所有方法论——测试驱动开发、代码审查、持续集成——都建立在“源代码是可读、可调试、可验证的”这一假设之上。但当你用自然语言描述功能时,你失去了对内部逻辑的精细控制。你不知道AI会走哪条路,甚至不知道它是否会到达目的地。这听起来像是噩梦,但对于某些特定的用例,这恰恰是解放。
考虑“安装脚本”这个例子。传统的bash脚本必须考虑到各种可能的系统环境:不同的包管理器、不同的文件系统布局、不同的权限配置。一个健壮的脚本可能需要数百行代码来处理这些边缘情况。但如果你只是写一段自然语言的描述,然后让AI去理解和适配,那么维护负担就从“程序员调试脚本”变成了“AI动态适配环境”。这不是把同一个工作做得更好,而是用完全不同的方式完成了同一个目标。
这种新范式的拥护者会指出,它极大地降低了软件开发的门槛。过去,你想做一个自动化的数据处理流程,需要掌握编程、API、调度工具等一系列技能。现在,你只需要能用自然语言清晰地描述你的需求。这听起来像是梦想,但确实正在发生。已经有实验性的项目通过纯自然语言描述实现了复杂的E-commerce后端逻辑,虽然不是生产级,但概念验证已经足够令人震惊。
反对者则有三条核心质疑。第一,不可靠性。自然语言描述天然具有歧义性,AI可能理解错,而且由于LLM的随机性,同样的描述两次运行可能得到不同结果。第二,不可调试性。当系统出错时,你无法像阅读代码那样逐行追踪错误来源,因为根本不存在“行”的概念。第三,安全风险。让AI直接去执行安装操作,等于把系统的root权限交给了一个概率模型,这在安全敏感的场合是不可接受的。
这些质疑都有道理,但它们可能只是暂时性的问题。随着模型能力的提升和运行时工程的发展(如前文讨论的长期代理可靠性问题),不可靠性可以被大幅降低。不可调试性可以通过引入“执行日志”和“思考链可视化”来缓解。安全风险则可以通过权限分级和沙箱技术来管控。更重要的是,这些问题的存在并不意味着我们应该放弃这个方向,而是意味着我们需要发明新的工程方法来适应它。
从历史的角度看,每一次编程范式的跃迁都经历了类似的阵痛。从机器码到汇编语言,从汇编到高级语言,从结构化编程到面向对象,每一次转变都被当时的工程师批评为“效率低下”或“不可控”。但每一次,新的范式最终都因其在表达能力和开发效率上的优势而胜出。今天,自然语言作为编程接口正在经历同样的过程。它的初期版本确实粗糙,但方向是明确的。
那么,这种新范式会对行业产生什么实际影响?最直接的冲击是“软件工程师”这个角色的分化。一部分工程师将继续在底层做传统代码开发,专注于性能敏感、安全关键、确定性要求极高的系统。另一部分则会转型为“AI交互设计师”,他们的工作不是写代码,而是设计精准的、无歧义的、可被AI高效执行的描述性指令。这类似于产品经理和工程师的融合,但更强调对AI行为模式的深度理解。
另外,软件产品的形态也会变化。传统的“安装”概念将逐步被“技能注入”取代。你不是去下载一个App,而是把你的需求描述给一个通用的AI平台,它会动态组合出你需要的功能。这听起来有些遥远,但已经有人在实验了。Karpathy提到的“.md skills”就是一个生动的例子:安装包不是二进制文件,而是markdown文件,里面写的不是代码,而是自然语言的说明。这听起来像是玩笑,但仔细想想,它和今天我们用scoop或brew安装软件的思路并没有本质区别,区别只在于“解释者”从包管理器的确定性脚本变成了AI。
当然,这不是一夜之间会发生的事情。从实验到生产,还有很长的路要走。但重要的是,我们已经看到了那扇门。它打开的不是一个更快的编码工具,而是一个全新的应用类别。对于所有关注AI的人来说,这可能是比“AI能写什么代码”更有趣的问题——当代码本身不再是最重要的表达方式时,我们如何定义和构建软件?
参考来源
- Fireside chat at Sequoia Ascent 2026 from a ~week ago. Some highlights:
- The first theme I tried to push on is that LLMs are about a lot more than just speeding up what existed before (e.g. coding). Three examples of new horizons:
- 1. menugen: an app that can be fully engulfed by LLMs, with no classical code needed: input an image, output an image and an LLM can natively do the thing.
- 2. install .md skills instead of install .sh scripts. Why create a complex Software 1.0 bash script for e.g. installing a piece of software if you can write the installation out in words and say "just show this to your LLM". The LLM is an advanced interpreter of English and can intelligently target installation to your setup, debug everything inline, etc.
- 3. LLM knowledge bases as an example of something that was *impossible* with classical code because it's computation over unstructured data (knowledge) from arbitrary sources and in arbitrary formats, including simply text articles etc.
- I pushed on these because in every new paradigm change, the obvious things are always in the realm of speeding up or somehow improving what existed, but here we have examples of functionality that either suddenly perhaps shouldn't even exist (1,2), or was fundamentally not possible before (3).
- The second (ongoing) theme is trying to explain the pattern of jaggedness in LLMs. How it can be true that a single artifact will simultaneously 1) coherently refactor a 100,000-line code base *and* 2) tell you to walk to the car wash to wash your car. I previously wrote about the source of this as having to do with verifiability of a domain, here I expand on this as having to also do with economics because revenue/TAM dictates what the frontier labs choose to package into training data distributions during RL. You're either in the data distribution (on the rails of the RL circuits) and flying or you're off-roading in the jungle with a machete, in relative terms. Still not 100% satisfied with this, but it's an ongoing struggle to build an accurate model of LLM capabilities if you wish to practically take advantage of their power while avoiding their pitfalls, which brings me to...
- Last theme is the agent-native economy. The decomposition of products and services into sensors, actuators and logic (split up across all of 1.0/2.0/3.0 computing paradigms), how we can make information maximally legible to LLMs, some words on the quickly emerging agentic engineering and its skill set, related hiring practices, etc., possibly even hints/dreams of fully neural computing handling the vast majority of computation with some help from (classical) CPU coprocessors. - https://nitter.net/karpathy/status/2049903821095354523#m
- Reducing IT Infrastructure Costs with Proactive AI Agent Management - https://www.reddit.com/r/secops_solution/comments/1t6ep5w/reducing_it_infrastructure_costs_with_proactive/
- 【B站第100期视频】17岁vs27岁,回顾十年前的自己 - https://www.bilibili.com/video/BV1E7dFBTEur