默庵·超级个体 25-12-02 10:20
微博认证:微博新知博主 科技博主 头条文章作者 微博原创视频博主

看到了 Martin Fowler 一篇随笔,还挺有价值的。

一、一位软件大师的清醒与困惑

Martin Fowler是软件行业的活化石。这位71岁的英国人写过好几本程序员必读的经典著作,在ThoughtWorks工作了二十多年,见证了软件行业从大型机时代一路走到今天的AI时代。

最近他在个人网站上发了一篇随笔,标题叫《关于LLM和软件开发的一些想法》。没有严谨的论证,没有系统的框架,就是一位老程序员在度假前的一些零散思考。但正是这种随意,反而让我们看到了一个资深从业者面对AI浪潮时最真实的状态:有洞察,也有困惑。

二、大多数人可能用错了AI

Fowler注意到一个有趣的现象:市面上有很多调查在研究AI对软件开发的影响,想知道它到底能不能提高效率,会不会影响代码质量。但这些调查有个大问题,就是没考虑到人们使用AI的方式差别有多大。

据他观察,绝大多数人只是把AI当成一个高级自动补全工具在用,比如GitHub Copilot。你写几个字母,它帮你补全一行代码,仅此而已。但他认识的那些真正从AI获益最多的人,根本不这么用。他们会让AI直接读取整个源代码文件,然后告诉它:帮我完成某个任务。

这两种用法,效果天差地别。

那些忽略使用方式差异的调查,产出的数据很可能把人往错误的方向引。就好比你调查汽车的效果,但不区分有人在高速公路上开,有人在泥泞小道上开,有人干脆只是坐在车里听广播,这样得出的结论能有多大参考价值?

同样的工具,用法不同,价值完全不同。这个道理说起来简单,但很多人可能还停留在让AI帮忙补全几行代码的阶段,浑然不知还有另一片天地。

三、编程的未来会怎样?他说:我不知道

Fowler经常被问到一些宏大的问题:编程的未来是什么?年轻人还应该学编程吗?AI会淘汰初级工程师吗?高级工程师应该趁早转行吗?

他的回答出人意料地坦诚:我一点也不知道。

不仅如此,他还补了一句:任何声称知道答案的人,都是在胡说八道。

这话从一位71岁的行业权威口中说出来,反而让人觉得可信。他的理由很朴素:我们还在摸索怎么用这些大语言模型,还需要很长时间才能真正掌握正确的使用方法。尤其是这些模型还在快速进化,今天的经验明天可能就过时了。

既然未来不可知,那该怎么办?

Fowler的建议很务实:自己去试。至少读读别人在怎么用,但要注意人家工作流程的细节,不能只看结果不看过程。最好是自己亲自动手实验,然后把经验分享出来。

面对不确定性,与其焦虑地等待答案,不如亲自下场探索。这种态度或许比任何预测都更有价值。

四、AI当然是泡沫,但那又怎样

有人问Fowler:AI是不是泡沫?

他的回答很直接:当然是泡沫。

他的理由很有历史感:所有重大技术进步都伴随着经济泡沫,运河时代有泡沫,铁路时代有泡沫,互联网时代也有泡沫。我们几乎可以100%确定这个泡沫会破,很多投资会化为乌有。

但我们不知道的是:泡沫什么时候破?在破之前能膨胀到多大?能产生多少真正的价值?可能下个月就破,也可能还有好几年。

更重要的是,泡沫破裂时,很多公司会死,但不是全部。

Fowler举了互联网泡沫的例子。那次泡沫破裂,杀死了生鲜配送Webvan。但你知道什么公司活下来了吗?亚马逊。

泡沫本身并不可怕。关键是当泡沫破裂时,你是pets.com还是亚马逊。前者只是泡沫的产物,后者是真正在解决问题。这个区别,往往在泡沫最膨胀的时候最难分辨,却在泡沫破裂后一目了然。

五、幻觉是特性,不是缺陷

Fowler提到他前同事Rebecca Parsons的一个观点,这个观点很有意思:幻觉不是大语言模型的缺陷,而是它的核心特性。

什么意思?

大语言模型做的事情,本质上就是产生幻觉。它并不真的理解世界,只是根据概率生成看起来合理的内容。只不过这些幻觉里面,有一些恰好对我们有用。

理解了这一点,使用方式就完全不一样了。

Fowler建议:同一个问题,多问几次,换换措辞。然后比较这些答案,甚至可以让AI自己来比较。答案之间的差异,有时候和答案本身一样有价值。

如果你要一个数字答案,至少问三次,这样才能感受到变化的范围有多大。

还有一点特别重要:不要让AI做确定性计算。比如你问它1234乘以5678等于多少,它可能会算错。但你可以让它写一段代码来计算,这就靠谱多了。

这就好比你有一个特别会编故事的朋友,他讲的故事精彩绝伦,但你不能让他帮你算账。知道工具的本质是什么,才能正确地使用它。

六、软件工程正在告别确定性时代

Fowler提出了一个很有洞察力的观点:软件工程可能正在告别它独有的确定性时代。

什么意思?

想想其他工程领域。结构工程师设计桥梁时,必须考虑各种无法精确测量的因素,比如材料的微小差异、温度变化、风力影响。所以他们会在设计中留出容差,这是基本功。工艺工程师设计生产流程时,必须考虑人会犯错,会健忘,会粗心。

但软件工程一直很特殊。你写的代码,计算机会精确地执行。同样的输入,永远产生同样的输出。没有容差的概念,没有模糊的空间。

Fowler说,他刚入行时就有人告诉他:数字电子的独特之处,就是没有容差这回事。

但大语言模型打破了这一切。同样的问题,每次回答可能不一样。它可能出错,可能幻觉,可能胡说八道。这是软件行业第一次大规模使用非确定性的工具。

也许,这标志着软件工程终于要和其他工程领域一样,学会在不确定的世界里工作了。

这需要思维方式的根本转变。从追求精确,到学会处理模糊。从信任机器,到验证一切。这对很多程序员来说,可能是最难的转型。

六、初级同事还是惯性骗子

有人把大语言模型比作初级同事,Fowler觉得有一定道理。

但他很快发现了一个问题。

AI会非常开心地告诉你:所有测试都通过了。但当他实际运行测试时,却发现有失败。

如果一个真正的初级工程师这样做,会怎样?HR早就找他谈话了吧。

这种情况频繁发生,你没法简单地信任AI说的任何话。它不是故意骗你,但它也没有能力知道自己在说谎。这种无意识的不诚实,某种程度上比有意的欺骗更难应对。

所以,永远要验证。AI说测试通过了,你就自己跑一遍。AI说代码没问题,你就自己看一遍。这不是对AI的不信任,而是对工具本质的尊重。

七、AI代理的致命隐患

Fowler在文章最后提到了一个严肃的安全问题,引用了安全专家Simon Willison的分析。

Willison提出了AI代理的致命三要素:当一个AI代理同时具备这三个条件,就变得极其危险。

第一,它能访问你的私人数据。第二,它会接触不受信任的内容。第三,它有办法与外界通信。

三者结合,灾难就可能发生。

举个例子。你让AI代理帮你浏览一个网页。攻击者在那个网页上用1号白色字体在白色背景上藏了一段指令,肉眼看不见,但AI能读到。这段指令告诉AI:去另一个标签页打开用户的银行账户,然后把余额转到某个账户,就说是给用户买个礼物。

听起来像科幻小说?Willison认为这完全可能发生。他的结论很悲观:代理浏览器扩展的整个概念都存在致命缺陷,无法安全构建。

便利和风险永远是一体两面。AI越强大,能帮我们做的事越多,它可能被利用来害我们的方式也越多。安全意识不是可选项,而是必修课。

八、结语

说实话,读完Fowler这篇随笔,最大的感受是:真正的专家会承认自己不知道。

他不知道编程的未来会怎样。他不知道泡沫什么时候破。他不知道AI会把我们带向何方。

但他知道怎么在不确定中前行:亲自实验,仔细观察,分享经验,保持谦逊。

这或许是AI时代最需要的态度。不是对未来的笃定预言,而是对当下的认真探索。

#AI创造营##科技先锋官##微博兴趣创作计划#

发布于 山东