引子:当哲学家遇上程序员

维特根斯坦说:“语言的边界,就是我世界的边界。”

半个多世纪后,另一种”语言”正在重塑我们的世界——代码。

在AI大模型刷屏的今天,当我们用自然语言与机器对话,当一行行代码生成一幅幅图像、一篇篇文章、一个个应用,我们突然发现:哲学家和程序员其实在谈论同一件事。

语言建构世界,代码解决问题。在AI时代,这两者前所未有地融合在了一起。

语言:我们用来编织世界的网

人类认识世界的方式,从一开始就是语言性的。

我们出生后,最先学习的不是数学,不是逻辑,而是语言。通过词汇,我们把混沌的感知切割成一个个清晰的概念:天、地、人、树、水、火… 这些概念就像一个个抽屉,我们把经验放进去,世界从此变得有条理。

古希腊哲学家赫拉克利特说过,”人不能两次踏进同一条河流”。但我们却非要给这条河起个名字——“黄河”。这个名字一出现,流动的河水就变成了一个固定的”东西”,我们才能谈论它、研究它、在它边上种庄稼。

语言不是对世界的描述,语言创造了我们能理解的世界。

没有”量子”这个词,物理学家就看不到量子世界;没有”阶级”这个概念,社会学家就无法分析资本主义;没有”熵”,我们甚至不能理解为什么杯子里的冰块不会自动变热。

就像鱼不知道自己生活在水里,我们常常忘记:我们一直生活在语言之中。

维特根斯坦的洞见,程序员早就懂了

哲学家绕了几千年的圈子,程序员一上来就身体力行。

程序员都知道:命名是编程中最难的两件事之一(另一件是缓存失效)。

为什么命名这么难?

因为你命名的方式,决定了代码的结构。如果你把一个变量叫userData,另一个叫info,再一个叫dataObj,最后你的代码肯定变成一团乱麻。反过来,如果你一开始就把领域概念理清楚——UserOrderPayment——整个系统架构自然就清晰了。

这不就是维特根斯坦说的”语言的边界就是世界的边界”吗?

在代码的世界里,这句话简直就是真理。你的概念清晰不清晰,直接决定了程序能不能跑起来。编译器不会跟你讲辩证法,对就是对,错就是错。

这让我想起一个有趣的对比:

  • 哲学家争论”存在是什么”,争论了两千多年还没结果
  • 程序员定义interface Exist { },两分钟就搞定了

哲学追求终极,工程讲究可行。这是两种完全不同的气质。但在对待语言的态度上,两者惊人地一致——你怎么说,决定了你怎么看;你怎么定义,决定了你能怎么做。

代码:写给机器看的解决方案

语言帮助我们理解世界,代码则帮我们改变世界。

程序员常说:”Talk is cheap, show me the code.” 这句话说得有点傲慢,但也道出了真相——光说不练假把式。

一个需求放在那里,你可以分析来分析去,谈产品定位,谈用户痛点,谈市场趋势,谈商业模式… 但最后,总得有人把代码写出来,才能让它跑起来。

从这个角度看,代码就是可执行的解决方案

你说”我想让远方的人看到这张图片”——那就是图片上传、存储、CDN分发、权限控制… 一系列代码把你的想法变成了现实。

你说”我希望机器帮我写文案”——那就是大模型训练、tokenization、注意力机制、Transformer架构… 无数工程师用代码把这个梦想变成了你我每天都在用的产品。

世界充满了问题,语言帮我们把问题说清楚,代码帮我们把问题解决掉。

AI把这个游戏推向了新层次

AI时代来了之后,情况变得更有意思了。

这里有一个常见的误解:很多人说,”以后代码都由AI写了,程序员就失业了”。其实不对。

准确的说法是——以前代码主要是人写,AI时代编码工作大量由AI完成,但人变得更重要了,只是角色变了。

我们来拆解一下:在AI出现之前,一个程序员一天8小时,可能6个小时都在写重复的代码:CRUD、调API、改样式、处理边界情况… 这些工作占据了大部分时间。

现在呢?你对AI说:”帮我写一个React组件,展示用户的订单列表,支持分页和搜索,分页每页10条,搜索按名称模糊匹配”,五分钟后基础代码就出来了。你只需要review一下,改改细节,调试一下bug。

编码的门槛被AI拉低了,但对人的要求提升了。

这意味着什么?

整个工作流重新分工了:

  • 人负责理解世界、定义问题:用户真正想要什么?痛点在哪里?产品该做成什么样?系统架构怎么设计?这些还得是人来做,而且做得越深刻,价值越大
  • AI负责把清晰的需求转化成可执行代码:重复劳动AI来干,快而且不容易出错

语言和代码之间的那堵墙,正在慢慢消失。而人站在了墙的这边,掌握着真正的主动权。

产品经理不再需要对着程序员费劲解释”我想要一个红色按钮”,他可以直接让AI生成原型看效果。架构师画完系统框图,AI就能把框架代码写出来。人不需要再纠结”for循环怎么写”,而是专注于”这个问题到底是什么”。

更有意思的是,大模型本身就是用语言训练出来的。它学习了人类所有的文本,理解了语言中的模式,然后能生成新的文本。从某种意义上说,大模型就是用代码压缩过的人类语言世界

当你和ChatGPT对话时,你其实是在和整个人类文明沉淀下来的语言知识对话。它知道”桌子”是什么,知道”开心”是什么感觉,知道”资本主义”是什么意思——这些全都是语言教给它的。但它不知道当下遇到的这个问题,到底需要解决什么。这件事,只能你来。

语言建构世界,代码改变世界,这就是我们的时代

我有时候在想,人类文明进步的本质是什么?

就是不断发明更好的语言,不断写出更好的代码

  • 数学是一种语言,它让我们精确描述自然规律
  • 物理是一种语言,它让我们预测物体的运动
  • 经济学是一种语言,它让我们理解市场的运行
  • 编程语言是一种语言,它让我们指挥机器工作

每一种新语言的出现,都拓展了我们世界的边界。每一行新代码的写出,都解决了一个旧的问题。

哲学告诉我们如何认识这个世界——语言就是我们的眼镜,戴上它,我们才能看见东西。

编程告诉我们如何改造这个世界——代码就是我们的工具,用它,我们才能解决问题。

AI时代,两者结合得更紧密了。语言直接生成代码,代码反过来增强语言。这是一个正反馈循环,我们的世界正因此变得越来越大,问题解决得越来越快。

给这个时代的思考

最后,我想提三个问题,留给大家思考:

第一,当AI能帮我们写代码了,程序员还需要做什么?产品经理和架构师的价值在哪里?

AI解放了重复性编码工作,让人的价值回到了它本来应该在的地方——理解世界,定义问题

产品经理的核心能力本来就是理解用户痛点,把用户需求说清楚。现在有了AI,他们不需要再对着程序员反复沟通,可以直接把清晰的需求交给AI生成原型和代码,能力边界一下子就拓宽了——一个优秀的产品经理加AI,就能撑起一个完整的项目。

架构师呢?以前要花很多时间在编码协调上,现在可以专注于系统设计、模块划分、技术选型这些真正体现经验的地方。

说白了:AI做”怎么做”,人决定”做什么”。这件事,AI学不会,因为它不在代码里,在对世界的理解里。语言能力、洞察能力、同理心,这些才是AI时代人的核心竞争力。

AI实际上极大拓宽了人的能力边界:

  • 以前一个产品经理不会写代码,想验证一个想法只能找技术团队排期,等上几个月。现在呢?有了AI,产品经理可以自己把原型做出来,甚至直接生成可用的版本,快速验证。不懂的技术领域,直接问AI,AI一步步教你,快速上手。想法转得比技术赶不上,这才是真正的敏捷开发。

  • 如果你是技术出身,但不喜欢管理,社恐,不想管人也不想被人管,那更爽了——整个项目你一个人就能干,需求分析你做,架构设计你做,AI帮你写代码,帮你改bug,AI听话还从来不跟你吵架,时不时debug的时候还能夸你一句思路清晰。一个人就是一个团队,效率高不说,心情还特别好。

第二,语言模型真的”理解”语言吗?

这是哲学家现在争论的热点。我觉得,这个问题本身可能就是错的——因为”理解”这个词本来就是我们人类创造的。如果一个系统能用语言给你正确的回答,能帮你解决问题,那它算不算理解?也许我们得重新定义”理解”。

第三,这一切会把我们带向何方?

没人知道答案。但我相信一点:语言既然是我们创造的,代码既然是人来驱动AI写的,那方向就还是由我们来掌握。技术是工具,工具永远服务于人的目的。

结语

回到开头那句话:

语言即世界,代码即解决方案。

在这个AI飞速发展的时代,这句话比以往任何时候都更正确。

  • 如果你是一个思想者,请用好你的语言——因为语言创造你能看到的世界
  • 如果你是一个产品人,请清晰定义你的问题——AI会帮你把想法变成现实
  • 如果你是一个技术人,请专注架构和设计——编码的活AI来做,你掌握方向
  • 如果你喜欢独处,那更自由了——一个人加AI就能改变世界,不用看任何人

毕竟,人类文明走到今天,靠的就是:用语言讲清楚一个故事,用代码把故事变成现实。AI时代,故事是人讲的,代码AI来写,解决方案一起实现。


你怎么看AI时代语言和代码的关系?欢迎在评论区留下你的看法。