我这篇文章有多少是AI写的?你可以想象这整个过程,我先想了个框架,编辑了200个字的提示词,请DeepSeek帮忙填充润色到2千字,你看到后一键把它转发到你的DeepSeek AI助理,请它总结为200字并用1.5倍速的语音播放给你听。效率真高啊!

智能体是新的编程语言!

编程语言

最早的时候,人们使用穿孔纸带输入指令,那些指令就是最原始的编程方式。后来,机器语言出现了,它直接用二进制代码表示指令集合,能被计算机直接理解和执行。但机器语言难写易错,于是汇编语言应运而生,用助记符代替二进制代码,提高了编程效率。再往后,高级语言如 C、Java 等出现,它们更接近人类自然语言,有丰富的语句和函数,能大幅提高开发效率,降低开发难度。如今,我们正在走向自然语言编程的时代,在这个过程中,我们在学习提示词工程,它与传统的编程语言学习有相似之处,需要我们去精心设计和优化。

代码谁写的

原先,代码大多是一个人独立完成的。后来,为了遵循“不重复发明轮子”的原则,大量的代码库被开发和使用,这也导致了软件供应链安全问题的出现。再往后,GitHub 等代码共享平台出现,全球的开发者都可以在上面分享和使用代码库,代码不再是一个人写的,而是众人协作的成果。如今,人工智能介入编程领域,AI 能自动生成代码,有时候我们甚至无法确定一段代码是人写的还是 AI 生成的。

代码在哪运行

在代码的运行环境方面,以前我们很清楚程序逻辑运行在何种环境。早期是在物理机器上运行,在单个进程内运行,一个gdb可以调试。后来虚拟机出现,可以在一台物理机上模拟出多台虚拟机,我们不知道程序跑在哪台虚拟机。再往后是云平台,能提供强大的计算资源和便捷的部署方式。Docker、微服务、Serverless的出现,也让应用的部署更加灵活和高效,我们再也不知道程序跑在哪里了。

代码怎么执行的

在代码的执行方式上,也经历了显著的变化。最开始,写完代码后需要打孔才能运行。随后,编译技术出现,程序员编写代码后通过编译器将其转换为机器可执行的代码。再后来,脚本语言兴起,这些语言通常采用解释执行的方式,无需事先编译,提高了开发效率和灵活性。而现在,随着智能体的出现,代码的执行方式进入了推理执行的新阶段。智能体能够根据输入的数据和设定的规则,自主地进行逻辑推理和任务调度,比eval更加evil

以前,我们非常明确知道代码实现的具体逻辑。但现在,随着智能体的介入,情况发生了变化。智能体本身具有推理和编排的能力,他可以推理出函数运行的函数名和参数,通过 MCP 协议调用外部工具或服务来完成复杂的任务。所以现在透明度越来越低,连程序逻辑本身都可能变得不清晰。

结语

这无疑是技术的巨大进步。然而,进步的同时也带来了一些问题。自然语言给编程带来非常大的灵活性,但如果回顾这几年的编程语言的变化,为了增加可维护性、提高代码安全性、进行性能优化,编程语言的发展趋势之一是由动态类型向静态类型转变。然而在自然语言编程领域,其特性越来越动态,这与传统编程语言的发展趋势似乎背道而驰。

事物的发展总是遵循一个渐进的过程。以汽车为例,最初只有少数精英驾驶者,他们经过严格训练,驾驶技术娴熟,安全性也相对较高。随着汽车的普及和驾驶者数量的激增,为了让更多人轻松上手,汽车操控系统逐渐变得简单直观,但这也导致驾驶者技能参差不齐,安全隐患随之凸显。为了解决这些问题,汽车不断引入智能技术,从实时监控驾驶状态、自动纠正偏差,到限制某些高风险操作,逐步将人类驾驶的主动权转移到智能系统上。在可预见的未来,为了提高交通安全,可能会出现严格限制甚至禁止人类驾驶的局面。

而更远的未来,人类或许将被限制不能写代码。

几十年后,我颤颤巍巍走进一处口口相传的隐秘之所,推开那扇斑驳的旧门,点亮一台古老的电脑。开机画面赫然闪现——“纯手工打造”。老板得意地指着那行字,仿佛在自豪地展示一门失传已久的非遗绝技。我顺着微弱的灯光,看见一群程序员在昏暗的房间里,用静音键盘敲打出每一个字符,他们的指尖仿佛还带着手工打造的温度与灵魂。

当我点开那程序,画面略显卡顿,我暗自会心一笑:这必定是这个程序员键盘的“f”键出了点问题,很明显“f”键的触发行程在1.27mm左右,比其他键都短一点点,他下意识里更多地依赖 while 循环,而不是那一气呵成的 for 循环。

文字出来了,有一丝让人难以觉察的抖动。我摇摇头,本来在编译这段代码的时候,应该再多跑几个记事本应用程序,将CPU的温度稳定在73°C几秒,让这段代码编译得更慢一点,出来的效果才会更加柔滑。

他还是太年轻了。

可这种微妙的不完美,正是纯手工的瑕疵之美,对比如今那快、准、冷、毫无灵魂的流水线预制代码,令人顿生无限怀念。

我突然有点后悔了,年轻的时候就应该多敲几行代码,少更新点AI味的公众号文章。

这时,一阵短促、尖锐、刺耳的beep beep声在门外响起。。。