LLM对程序员的冲击和影响( 四 )


LLM对程序员的冲击和影响

文章插图
让我们做个大胆的设想,如果当软件需求发生变化的时候,我们不再是去改代码,而是直接修改需求对应的 prompt,然后基于 prompt 直接生成完整的代码,这个将是软件开发范式的改变 。
在这种范式下,我们需要确保代码不能有人为修改,必须都是由 prompt 直接生成,此时我们还需要对 prompt 做版本管理,或许会出现类似今天 git 的 prompt 版本管理的新物种 。
此时,从本质上来看 prompt 即是代码,而原本的代码不再是代码了,这就真正实现了基于自然语言(prompt)的编程,此时的编程范式将从 prompt to code 转变为 prompt as code 。
更进一步思考,当实现了 prompt as code,我们是否还需要 code,关于代码的很多工程化实践还重要吗?现在我们之所以认为代码工程化很重要,因为代码是人来编写,代码是人来维护的 。而当代码由 LLM 来编写,由 LLM 来维护的话,那么现有的软件架构体系还适用吗?这个时候或许才真正实现了软件研发范式的进化 。
思考 5:直接可运行,prompt to executable 软件开发范式的可能性
LLM对程序员的冲击和影响

文章插图
在深入一步思考,直接可运行,prompt to executable 的基础设施会出现吗?
代码只是软件工程中的一部分,远远不是软件工程的全部,你想想你有多少时间占比是在编码的 。一般来讲,编码完成后往往要经历 CI 和 CD 等一些列的工程实践才能向终端用户交付价值 。
所以全新的软件范式是否可以实现从 prompt 直接到可运行的程序实例?目前来看,或许 Serverless 是可能的架构之一 。
思考 6:计算机教育的反思
LLM对程序员的冲击和影响

文章插图
LLM 出现后,关于对计算机教育的反思我认为有两个层面的思考:
首先是,计算机学科研究方向的变化,之前 NLP、知识图谱、代码理解,代码缺陷发现、test oracle 生成等都是独立的研究方向,但是 LLM 表现出的 AGI 能力似乎让这些垂直领域的研究失去的意义,因为 LLM 的 AGI 能力都能解决,或许效果还更好 。
所以这些研究方向将何去何从是需要我们思考的 。有人说 LLM 是 NLP 的新里程碑,但也有人认为其更像是 NLP 的墓志铭,这句话很好的表达了我的观点 。
其次,LLM 一次次地证明了通过“死记硬背 + 简单推理”就能通过大多数人类的考试和技术面试 。那教育的终极目标又是什么?先进的人工智能尝试把机器培养成人,而落后的教育试图把人培养成机器 。计算机教育,其实我们整个教育到了需要彻底反思的时刻了 。
或者我们都错了?!
彼得德鲁克说过“动荡时代的最大风险不是动荡本身,而是企图以昨天的逻辑来应对动荡”,今天 LLM 对软件工程的影响,我还是在以以往的逻辑在做分析,这个基础可能本来就是错误,全新的时代需要全新的思维模式,然后我们拭目以待 。

【LLM对程序员的冲击和影响】


推荐阅读