首页 > 编程语言 >程序员职业生涯将在 3 年内被AIGC终结,危言耸听还是未来已来?

程序员职业生涯将在 3 年内被AIGC终结,危言耸听还是未来已来?

时间:2023-03-16 19:14:14浏览次数:54  
标签:CodeGeeX 程序员 Welsh 代码 编程 AIGC 已来 AI Copilot

近日,前哈佛大学计算机科学教授、谷歌工程主管 Matt Welsh 在美国计算机协会(ACM)的一个虚拟会议上断言:“生成式 AI 将在 3 年内终结编程。”Welsh 的断言是来自他体验了ChatGPT和GitHub Copilot在编程方面的能力后,有感而发的。

我非常认同他的断言,我也认为在国内的开发者群体中,这种终结是必然会发生的。但我并不认同的是,他对“3年内”这个时间的判断,这个时间可能会稍微偏激了一些。观察近期国产AI辅助编程工具CodeGeeX,也就是Welsh提到的Github Copilot的平替产品,从功能到模型层面,每周都有非常快速的产品迭代发布。可见程序员群体对CodeGeeX这个Copilot平替产品的认知度和好感,都在快速提升。

最重要的是CodeGeeX作为Copilot的平替产品,完全免费,开源开放给所有开发者使用。

CodeGeeX插件拥有代码生成功能:可以根据自然语言注释描述的功能,自动生成代码。也可以根据已有的代码自动生成后续代码,补全当前行或生成后续若干行,帮助你提高编程效率。

CodeGeeX代码翻译功能:支持多种编程语言之间互译,准确率高。目前代码翻译功能支持八种最流行的编程语言: Python、Go、Java、JavaScript、C++、C#、PHP、TypeScript等;

CodeGeeX代码解释功能:可以一键为你的代码逐行添加注释;

Welsh 的发言中认为,正是由于 ChatGPT 、Copilot以及CodeGeeX这些技术的出现,编程正处于从人类工作转变为机器人工作的转折点。在他看来,程序员需要演变成 AI 程序的“老师”——或者产品经理,或者代码评审人员(其实就是白盒静态测试人员)。他认为这两个人类角色相对来说不那么受机器人的影响。“不要指望你的程序员职业生涯会一直持续下去,因为机器正在取代这个角色。”Welsh 说道。

据悉,Welsh 曾在谷歌和苹果公司担任高级工程职位,他曾在 2023 年 1 月出版的《ACM 通讯》杂志上就这一话题写过一篇文章:编程的终结:经典计算机科学的末日即将来临。也希望Welsh可以体验一下国产AI辅助编程工具CodeGeeX,给出中肯的评价和宝贵的意见。

下面是附上 Matt Welsh 在ACM 上发言的文字总结(摘要),阅读之前可以在你的插件中,率先安装体验CodeGeeX,提升装备实力!
目前CodeGeeX支持在VS Code和Jetbrains IDEs的插件市场直接下载使用。

    1. 写代码是脏活,让 AI 来做吧!

随着 GitHub Copilot、ChatGPT 等 AI 产品持续火爆,AI 在编程方面展现了极强的能力。在一项新的研究课题中,ChatGPT 尝试查找示例代码中的 bug 并给出修复建议,其表现远超现有程序,成功修复了 40 个 bug 中的 31 个(来自伦敦大学学院和德国美因茨大学的研究报告)

拥有如此强大的编程能力,AI 真的会取代程序员?Welsh 断言,生成式 AI 将在 3 年内终结编程。

在 Welsh 看来,“写代码是脏活”——所以就让机器人来做吧。“用你的时间做点别的事情。对于每个人来说,写电脑程序并不是最好的利用时间的方式。”

Welsh 表示,Copilot 是一款不可思议的产品。“在我敲键盘时,Copilot 经常能够很好地帮我完成我的想法——它能读出我的想法,比我想象的要多得多。Copilot 极大地提高了工作效率,因为它让我避免了很多上下文切换。”

Welsh 称现在的 Copilot“只是一个开始”,只有两样东西会阻止 Copilot 变得更好:更多的数据和更多的计算。由于这两个东西都很充足,所以他认为“在未来的一两年或三年内,Copilot 没有理由无法会实现这样的目标:即你在源文件的顶部输入几行代码,它会把剩下的内容写出来。”

Welsh 认为“计算机科学注定要失败。”他说:“我认为这个领域将发生根本性的变化。计算机科学作为一门学科,你认为它的意义何在?它一直都是关于如何将想法转化为程序。”

他认为,在过去的 60 多年里,计算机编程在不断发展,试图让人类更容易理解代码。他将 1957 年的 Fortran 与 1964 年的 Basic 和 2010 年的 Rust 做了对比,他表示,就易用性而言,这三个编程语言之间真的没有太大区别。

Welsh 表示,“现今人们开发的程序和以前一样复杂,一样难以维护,一样难以理解,一样充满了 bug。” 但是 GitHub Copilot 让 Welsh 从根本上重新思考计算机科学的意义。“Copilot 从根本上改变了我们写代码的方式,至少从我个人的经验来看,它是一种显著而深刻的加快开发速度的方式。”

  1. 未来的软件开发团队是什么样子的?
    Welsh 还对未来的软件开发团队做了一些有趣的预测。基本上,当程序员开始被淘汰时,他认为只有两个角色可以保留:产品经理和代码评审人员。

在 Welsh 看来,产品经理的角色不会有太大变化。“人类产品经理仍然能够写出告诉软件应该做哪些事情的描述——也就是产品需求文档(PRD)。这是产品经理已经在做的事情,对吧?”
不同的是,在不久的将来,我们不再需要把 PRD 交给工程团队,然后等上六周左右,等他们把需求实现完毕,Welsh 说:“你只需要把 PRD 交给 AI,AI 在几秒钟内就可以吐出代码。”

当然,生成式 AI 在早期阶段有一个缺点,即它们的输出不一定是正确的。因此,Welsh 看到了人类代码评审人员(静态测试人员)能够在这方面起到的作用。

“我们怎么知道代码是否有效?我们怎么知道它是否足够好?我们怎么知道它是对的?当然,我们需要进行彻底的测试,测试是非常非常重要的,这是不会消失的。所有 CI/CD 相关的东西,以及我们在过去几十年里积累的一切,在这里仍然是有用的。”

他认为,具有编程能力的人类将承担“评审和阅读 AI 生成的代码,并确保它们能够正常运行以及做正确的事情”的任务。

至于程序员,以及那些即将加入这一领域的人,他们将需要成为 AI 的老师,而不是程序员本身。Welsh 说:“这是关于如何教会 AI 写代码,而不是自己写。”
未来已来。

附文内容来自摆渡@HMC Lab编译
附文原文作者:Richard MacManus

本文由博客一文多发平台 OpenWrite 发布!

标签:CodeGeeX,程序员,Welsh,代码,编程,AIGC,已来,AI,Copilot
From: https://www.cnblogs.com/chattech/p/17223819.html

相关文章

  • 程序员的三门课
    《程序员的三门课》第一篇——程序员技能与成长codereview好处提升团队代码质量找出潜在bug保证代码风格统一成员相互学习编码习惯设计模式好用的API更加......
  • 耦合与解耦:IT程序员解析
    耦合:在软件工程中,对象之间的耦合度就是对象之间的依赖性。对象之间的耦合越高,维护成本越高,因此对象的设计应使类和构件之间的耦合最小。耦合的分类:有软硬件之间的耦合,还有......
  • #yyds干货盘点# LeetCode程序员面试金典: 计算器
    1.题目:给定一个包含正整数、加(+)、减(-)、乘(*)、除(/)的算数表达式(括号除外),计算其结果。表达式仅包含非负整数,+,-,*,/四种运算符和空格 。整数除法仅保留整数部分。......
  • 推荐收藏!10大程序员必备生产力工具
    作为程序员,提高生产力是我们一直追求的目标。随着技术的发展,越来越多的工具和应用程序被开发出来,帮助程序员们更好地完成工作。在本文中,我将介绍一些程序员必备的生产力工......
  • 程序员推荐!JetBrains IDEs使用技巧与必备插件
    JetBrains是耳熟能详的软件开发工具提供商,旗下的IDE集成开发环境被广泛应用于不同的开发领域。本文将向新手介绍JetBrainsIDEs的基本知识和常用功能。什么是JetBrainsID......
  • 程序员多赚20k的接私活必备网站
    程序员多赚20k的接私活必备网站2023-02-2812:38·程序员客栈为什么都是程序员,就有人能多赚20k?那是因为副业搞得那么溜啊!今天分享一些程序员搞钱必备的接私活网站,让更多......
  • chatgpt回答了几个关于程序员的段子
    1.一个程序员被问到什么是压缩,他回答:“就是将10个字符压缩成9个字符。”2.为什么程序员总是把自己当作0和1?因为他们觉得自己是二进制最好的。3.什么是程序员最喜欢......
  • 60% 程序员大呼:我要远程办公!
    近几年数字化的普及,白领们从挤地铁、打卡、开会、写日报转变成“早上9点视频会议”,企业的办公场所也从写字楼、会议室、工位变成了手机、电脑中的线上会议室,远程办公已经成......
  • 为什么99%的程序员都做不好SQL优化?
    连接层最上层是一些客户端和链接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关的安......
  • 为什么99%的程序员都做不好SQL优化?
    连接层最上层是一些客户端和链接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关的安......