<返回更多

编程的未来 - 还有未来么?

2023-06-06  CSDN  
加入收藏

作者 | 邹欣

缘起

《 新程序员 》执行总编唐门教主上个月某天深夜写了一篇博客 --《编程的未来》( https://blog.csdn.NET/tangxiaoyin/article/detAIls/130651527),要我谈谈感想。这也是最近软件工程师们聊得比较多的问题,上周,在上海的 “关东小磨” 和十多位 CSDN 博主聚会的时候(https://devpress.csdn.net/shanghai),大家也稍微谈了一下这个话题,但是谈得不透。我想在本文整理一下我的思路。

软件行业有多少部分会被取代

AI 编程的能力边界

首先,从去年开始的 AI 辅助编程浪潮中,很多人提到,从具体的函数实现来看,目前 AI 代码生成有很多做得不好的地方,或者有很多 bug。

我认为不必纠结这些 bug,它们一定会不断地被解决,这是一个时间问题,也许是半年,也许是一周。但在编程方面,它有一个能力边界,这个边界未必能很快跨越。

慕测平台的一篇高质量文章总结了 AI 辅助编程目前的能力边界,我总结如下:

▶ 生成的代码长度有限制。很多情况下,AI 不能输出完整的代码,还需要程序员来拼接代码,而他们要非常懂这些程序才能拼接成功。

//问程序员:你参加过的最复杂的项目,总代码量有多少?有超过一千行代码么?

▶ 不能有效处理超长程序、开发环境的配置、多线程编程、已有程序的 bug 修复等问题。

//问程序员:你修复过的最复杂的 bug 是什么?

▶ 泛化能力有限。如果是一个人类程序员,他在一个算法测试平台通过了很多编程练习,那么他在另一个不同的编程平台也应该能应对自如。但是,目前的 ChatGPT 还不能融会贯通,举一反三。

//问程序员:你能举一反三么?

▶ ChatGPT 处理复杂编程中抽象的 “类” 和 “依赖关系” 的能力还比较弱。

//问程序员:你在这方面能力如何?你写的最复杂的 OO 设计有多少父类子类?

▶ Fred Brooks Jr. 在著名的 “没有银弹” 论断中提出,软件开发中的关键任务就是理解并处理反映软件构成的复杂概念, 目前 AI辅助编程也并没有在这个方面取得突破。

//问程序员:你构建过多么复杂的软件,这个软件运行了几年,这几年中你是如何维护这个软件的?

▶ ChatGPT 等编程辅助工具缺乏创造性编程的能力。

//问程序员:你曾经创造性地解决过什么问题?

▶ ChatGPT 等工具的能力,取决于提问者的能力。

//问程序员:你的提问能力如何?

如果 AI 都做不到上面这些,那我们的程序员有多少能做到的呢?(

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>