AI编程会消灭程序员吗?
这个话题自从有AI编程以来就一直在被讨论,促使我忍不住要说两句的原因是这个:
Cursor 的 CEO Michael Truell 在 Lenny的播客上描述过他眼里编程的未来。他说 Cursor的目标是发明一种新的编程方式,那个世界里,“你对软件逻辑的表示会看起来更像英语”,编程语言会朝伪代码演化,“你把软件的逻辑写下来,在一个高层级上编辑它”,最终的代码"不再是几百万行读不进去的东西,而是更简短、更易懂、更好导航的东西"。
这个说法让我想起早先我也有过一个类似想法:
本质上现在AI就是一种新的高级语言,而以前的高级语言变成一种类似机器码一样的东西。
高级语言的出现消灭了程序员吗?并没有。
回忆一下上古时代的编程方式:
程序员需要先用汇编语言(原始的汇编本质上就是机器码的助记符,都不太能算是一种编程语言)把程序写下来,再通过查指令表(人工或用程序)转成机器码,最后把这个机器码作为目标程序输入到电脑里运行。机器码是什么?是一种电脑用的语言,程序员干的是一种把需求翻译成机器语言的工作。程序员需要直接面对电脑硬件的具体细节:每个字节是如何存取的,每个中断是如何处理的,每个端口是如何操作的……
当高级语言出现以后是什么样的情况呢?是对电脑的抽象。程序员不再需要直接面对电脑硬件,而是通过变量来处理存储,不需要关心它是放在寄存器里还是放在堆栈里,通过文件描述符或设备描述符来操作硬盘或其它设备。后面支持这些的是操作系统、编译器或语言虚拟机等基础设施。
像Basic这样的语言已经离硬件很远了,很多不了解电脑硬件的人也可以学着使用。这个时候,旧时代的程序员被淘汰了吗?并没有。但是因为软件能干的事情更多了,需要更多的人来开发软件。
十几年前因为互联网的发展,程序员行业膨胀得很快,就有人在问,程序员会不会过剩?朋友Virushuo还为此写过一篇文章来论证,结论就是:一方面是软件需求的增长速度太快了,程序员的增长速度虽然已经很快,但还是赶不上。另一方面是实际上市场上靠谱的程序员还是很少的。
AI编程的出现其实也是一样的。它让编程的门槛变低,本质上是大量增加了程序员的供给,但同样也会增加更多的需求。
比如朋友小辛说的:以前因为程序员成本高,一些定制化的需求因为不划算而不做的,现在都可以做起来了。
结果就是AI并没有取代程序员,反而让程序员加更多的班。
朋友MK对此的解释是:
现在公司愿意花更多钱在AI上的项目,都是更难的,内容更多的项目。所以反而会让程序员加班,但,不加工资。主要是AI加速了编程工作,所以让程序员更累 了,其实写代码不是最累的,研究新的问题,做出正确决策才累。AI会不停让你进行决策。
就像是卓别林在电影《摩登时代》里的那种情况,程序员就像是流水线上打螺丝的工人,AI就是一台更快的机器,迫使工人打更多的螺丝。
另外,正如MK的观点所说,AI加速了编程工作,但程序员需要在这个工作过程中作出决策,从这个角度上说,能对AI的工作进行决策,还是对程序员有比较高的要求的,而能达到这种要求的程序员,还是少的。
几十年过去了,问题的环境不断在变,但问题结构还是一样的,所以结论也没有本质上的变化。
推送到[go4pro.org]