“我们的工作从来就不是写代码,而是解决人的问题。”
理查德·坎贝尔在今年一场主题演讲的结尾抛出这句话时,会场里许多开发者愣了一下,随即点头。坎贝尔做了二十多年的软件开发者播客,亲眼看过一波又一波技术浪潮起落,他说完这句话之后,我反复琢磨了很久,始终放不下。
坎贝尔的语境很特别。他先讲了一个蛋白质折叠的故事——生物学家花了六十年,一个蛋白质一个蛋白质地破解折叠结构。第一个蛋白质的折叠就耗去十年,还拿了诺贝尔奖。六十年下来,人类总共才搞清楚大约一百五十种。而可能的折叠方式有多少?大概是10的35次方。没有人能靠一行一行写程序来穷尽这个数量级。
于是DeepMind的一个团队不再试图“写程序”。他们训练了一个模型,到2022年,这个模型已经解出了两亿种蛋白质折叠,而且全部免费公开发布。坎贝尔的重点根本不是蛋白质,而是这句话:代码从来就不是工作本身,底下的那个问题才是。
这个认知最近又从另一个完全不同的角落砸过来一次。独立软件创业者菲尔·斯迈花了二十年亲手搭建软件生意,其中一款叫Zonmaster的产品,他基本靠一个人做到了过万用户,收入冲到百万美元级别。所以他谈论“护城河”时,谈的是自己一砖一瓦挖出来的那种。
斯迈翻出一款老游戏Xyphus,1985年他在Mac 512上第一次玩到。他把游戏二进制文件上传,没有任何源代码,然后让Claude去反编译。AI做到了。接着他要求Claude用Python把整个游戏重写一遍。AI又做到了。
“编译后的代码从来就不是真正的保护,”斯迈说,“它只是摩擦力。”以前让代码保持私密的东西从来不是一堵墙,而是一道成本门槛——读取编译后的二进制文件又慢又贵,所以多数情况下没人费这个劲。AI让这件事变便宜了。“别再以为你的二进制文件是你的护城河。”他提醒。
我多希望这句话突然点醒了我。可惜几个月前,我就写过完全一样的观点——一篇探讨当任何人都能在一周内克隆你的产品时会发生什么,另一篇分析机器仅仅通过重新构建就能评估你的代码。看到一个比你多走了二十年的人,独立得到与你一模一样的结论,感觉挺奇妙的。更多的是安心:这说明我没在凭空想象。
坎贝尔更宏大的判断在于接下来要去的地方。两三年前,这些工具还主要帮开发者更快敲代码——一个聪明一点的自动补全。现在你可以把整个任务丢给一个代理,让它自己干,然后在接受结果之前跟它来回争论。恰恰是最后这一环,让像我这样的人终于能进门了。
因为我这辈子一行代码也没有写过。对我来说,代码不是我要敲的东西,它是一个问题、一个概念、一个需要被拆解的任务。当我能用自然语言描述一个软件的意图,然后把细节交给代理去完成、再检查、再反驳,代码的形态就彻底变了。它不再是障壁,而是可协商的中间产物。
斯迈用自己的二十几年揭示了一个已经浮出水面的现实:二进制护城河的倒塌不仅意味着代码可以被还原,更意味着竞争力的底座完全转移了。保护软件的从来不是代码本身,而是围绕问题建立的理解深度、迭代速度和用户关系。过去那种“编译完就安全了”的假设,本质上是建立在反编译成本极高的人工稀缺之上。生成式模型把这项成本碾到了几乎为零,于是原来那道虚假的墙就变成了一张透明的纸。
坎贝尔的故事则指向更底层的一点:即使没有AI,那些真正需要突破的问题——比如蛋白质折叠——也无法靠堆积代码解决。六十年的时间证明,手工编写解析程序的路线走不通,因为问题空间是指数级的。当团队放弃“写代码”的执念,转而让模型自己从数据中习得折叠规律时,他们并没有减少任何智力上的努力,只是把努力换了一个层级:从指令设计转向了目标定义。
这也解释了为什么一个完全不会写代码的人,如今竟能参与到软件的构建里来。我以前只能站在圈外,看别人把需求翻译成函数和类。现在我能直接和代理对话:“这个交互不对,不应该先收集邮箱再给结果,应该反过来。”代理会改,会出错,会辩解,我会纠正。这中间没有一行代码经过我的手,但问题的解决路径完全由我主导。
这个转变很容易被误解为“写代码不重要了”。它不是。它只是让写代码这件事回归到了它原本的正确位置——手段而非目的。坎贝尔说得很清楚,代码从来不是任务本身,正如同锤子从来不是房子。当你盯着蛋白质折叠的最终结果,或者盯着一个软件能否真正帮到用户时,你用的工具可以换,但那个要被解决的问题一直都在那里。
行业里现在有一种焦虑,好像AI的进展正在快速消解程序员的价值。但如果顺着坎贝尔和斯迈的视角看,真正被消解的只是那种“靠代码构筑壁垒”的旧模式。过去你可以写一套复杂的系统,然后把编译后的二进制当作盔甲。如今盔甲被取走了,但盔甲本来就不是护城河——它是护城河干涸后露出的假山。真正的护城河,从来都是你对某个问题的理解深度,以及你持续为用户解决问题的能力。
这件事被两个各自走了二十多年技术路的人分别看透,又被一个从未写过代码的人恰好验证了一遍。可能不是巧合。
热门跟贴