乐于分享
好东西不私藏

AI工具写代码的一点猜想

AI工具写代码的一点猜想

在知乎上看到一个帖子“ai 已经能编出很完美的程序,程序员这个行业以后是不是会消失”,这是一个很有争议的话题,所以就认真看了一下里面的回复,意外的发现支持不会消失的观点占了大多数。

细想了一下,感觉里面回复这个问题的可能大多是比较资深的程序员。程序员的视角是和其他人不太一样的。比如有个人举了个程序员是怎么工作的例子,来了一个新需求,先沟通需求一两个小时,然后再花一两个小时看懂以前的代码,再结合已有的代码写一两个小时代码,再花一两个小时调试以保证新代码不影响老代码,后面还得花时间改测试出来的bug。所以一天下来,写代码的时间是很少的,AI 工具目前只能替代掉写代码那一小段,如何能够谈替代程序员。

这样的描述,可能有一点缩小了AI工具的能力,随着AI工具的发展,在分析好需求后,就可以指挥AI工具把老代码阅读了,制定出要改的内容,经过人的检查之后,AI工具就可以把代码写完,并且编译通过,如果条件允许的话,它还能把代码跑一遍,也可以加上测试用例把代码测试通过。中间可能需要人工确认一系列问题。如果顺利的话,把上面一天的时间压缩到半天应该也是可以的。

但上面说的可以压缩时间也是分场景的,AI工具还是一个概率工具,如果要求越细,那么能够“压缩”的时间就越少,也就是越想精准控制AI工具的行为,所需要花的时间就越多,有的时候提要求越多,AI工具的思路就会越复杂,甚至会把整个事情搞砸。既然越细越容易翻车,那么就定粗一点,这样更省事。写过代码的人都知道,实现一个功能的方案是多种多样的,需要结合已有的代码、公司的情况来选择一个方案,但这些信息AI工具却是不了解的,它就会按自己的概率挑一种实现,功能倒是实现了,结果代码却不是你所期望的。比如该调内部的接口没有调,而是自己又实现了一遍等。这个时候就不得不提具体要求了,规格编程就是利用这种原理,把“规格”都列出来再让AI工具按规格来生成代码。但规格细到什么程度好呢?如果太细的话,编写规格就很耗费时间,而这个“细”也不可能细到把代码写出来,否则就不需要用AI工具了,在这种情况下,AI工具还是会在你没有细化的地方自行发挥,而且规格过多,AI工具由于上下文有限,会在某个角落“忘掉”一些规格,结果就和预期有偏差。

那网上还是有不少人在说用AI工具做了多少功能,连续跑了多少个小时,自己完全没有写过一行代码。没有具体见过是如何操作的,只能猜测他们对代码是没有要求的。只要提了要求,AI工具一定会给结果的,如果对代码没有要求,只要求界面上符合功能就可以的时候,就可以不停地向AI工具提要求,有问题也让AI工具改正,这样就可以做到让AI工具完全接管代码。

那问题就回到了:代码是否重要?如果代码重要,那AI工具要完全接管代码还是有比较长的路要走。如果代码无所谓,只要功能正确,那么AI工具就已经接近接管代码了。很有可能以后软件会走向分化,一部分对代码没有要求的代码,就直接让AI工具接管,甚至直接把AI工具当做软件,直接要求AI工具提供服务,至于它是否是用代码完成的,就不用管了,现在的Agent就是走在这条路上。但有些领域是比较复杂的,需要专业软件来完成,这是对代码是有要求的,因为这种场景不能接受一个不可控的黑盒子,这个时候程序员就少不了,而且岗位要求也会发生变化,不只要求懂代码,还要懂如何操作AI工具写出符合预期的代码。