AI助手崛起:开发者的新伙伴还是未来替代者?

news2024/11/16 12:06:51

你好,我是三桥君。

自从 ChatGPT 问市以来,AI 将取代开发者的声音不绝于耳,至今还是互联网异常火热的问题。

在软件开发领域,生成式人工智能(AIGC)正在改变开发者的工作方式。无论是代码生成、错误检测还是自动化测试,AI工具正在成为开发者的得力助手。

比如在代码生成方面,可以让大模型生成游戏代码。

“请帮我生成一个可以直接在网页运行的贪吃蛇游戏的代码”

我将这段代码复制到一个HTML文件中,然后用浏览器打开这个文件,试试能不能运行贪吃蛇游戏。

<!DOCTYPE html>
<html>
<head>
  <title>贪吃蛇游戏</title>
  <style>
    canvas {
      border: 4px solid black;
    }
  </style>
</head>
<body>
  <canvas id="gameCanvas" width="400" height="400"></canvas>
  <script>
    var canvas = document.getElementById("gameCanvas");
    var ctx = canvas.getContext("2d");
    var box = 20;
    var snake = [];
    snake[0] = { x: 10 * box, y: 10 * box };
    var food = {
      x: Math.floor(Math.random() * 20) * box,
      y: Math.floor(Math.random() * 20) * box
    };
    var d;

    document.addEventListener("keydown", direction);

    function direction(event) {
      if (event.keyCode == 37 && d != "RIGHT") {
        d = "LEFT";
      } else if (event.keyCode == 38 && d != "DOWN") {
        d = "UP";
      } else if (event.keyCode == 39 && d != "LEFT") {
        d = "RIGHT";
      } else if (event.keyCode == 40 && d != "UP") {
        d = "DOWN";
      }
    }

    function draw() {
      ctx.clearRect(0, 0, 400, 400);

      for (var i = 0; i < snake.length; i++) {
        ctx.fillStyle = (i == 0) ? "green" : "white";
        ctx.fillRect(snake[i].x, snake[i].y, box, box);
        ctx.strokeStyle = "black";
        ctx.strokeRect(snake[i].x, snake[i].y, box, box);
      }

      ctx.fillStyle = "red";
      ctx.fillRect(food.x, food.y, box, box);

      var snakeX = snake[0].x;
      var snakeY = snake[0].y;

      if (d == "LEFT") snakeX -= box;
      if (d == "UP") snakeY -= box;
      if (d == "RIGHT") snakeX += box;
      if (d == "DOWN") snakeY += box;

      if (snakeX == food.x && snakeY == food.y) {
        food = {
          x: Math.floor(Math.random() * 20) * box,
          y: Math.floor(Math.random() * 20) * box
        };
      } else {
        snake.pop();
      }

      var newHead = {
        x: snakeX,
        y: snakeY
      };

      if (snakeX < 0 || snakeY < 0 || snakeX >= 20 * box || snakeY >= 20 * box || collision(newHead, snake)) {
        clearInterval(game);
      }

      snake.unshift(newHead);
    }

    function collision(head, array) {
      for (var i = 0; i < array.length; i++) {
        if (head.x == array[i].x && head.y == array[i].y) {
          return true;
        }
      }
      return false;
    }

    var game = setInterval(draw, 100);
  </script>
</body>
</html>

我们可以发现,这个贪食蛇游戏的代码是可以运行的。 而且游戏中,可以使用键盘上的方向键来控制蛇的移动。

这也引发了对开发者职业前景和技能需求变化的讨论。

AI究竟是在帮助开发者还是取代他们?

国内外的大佬也纷纷对称进行表态。

国外某AI科技公司创始人曾预言:“五年内,人类程序员将彻底消失。”

国内某大厂公司创始人表示,“基本上说以后其实不会存在“程序员”这种职业了,或者说所有人只要会说话,甚至连写字可能都不用,你只要会说话了,你就会具备今天的程序员所具备的能力。”

此外,他还表示,大模型和生成式AI,将彻底改变开发者这个群体,未来开发应用就像拍个短视频一样简单。

如今,某初创公司宣布推出全球首个AI软件工程师,并号称会彻底改变人类构建软件的方式。能自学新语言、开发迭代 App、自动 Debug。用户只需在界面输入一句指令,就能端到端处理整个开发项目。

此外,该AI软件工程师擅长长期推理能力,可以自主规划和完成软件项目,并在此过程中做出数以千计的准确决策。

难道,AI真会取代开发者吗?

三桥君认为,目前来看,AI确实是在帮助开发者,但长期来看,AI可能会替代掉很多普通开发者。

就像我前面讲的,目前在代码生成、错误检测还是自动化测试,AI工具正在成为开发者的得力助手。

比如CSDN,为开发者提供AI工具,期望成为最适合开发者的一站式综合AI赋能平台。

比如文心一言,也为开发者提供AI工具,包括python金字塔、python代码纠错、代码转化、代码Debug等等。

这些AI工具所传达的理念,就是AI帮助开发者。

但是,随着AI技术的发展和革新,简单的编程任务将逐渐被AI取代,甚至AI能够实现自己编写代码和修改Bug等能力,以致于传说中的“CV大法工程师”将面临重大的危机与挑战

因为有一些AI系统,比如GitHub的Copilot,能够理解编程语言的语法和语义,并在此基础上生成代码片段,帮助开发者提高编程效率。

此外,一些静态代码分析工具也能够利用AI技术来检测潜在的bug和安全性问题,并提出修改建议。

所以,长期来看,随着AI技术的发展和革新,使得在软件开发领域的普通开发者工作内容,尤其是那些从事重复性高、标准化程度高的工作的开发者,如果AI完全能够自动化完成的话,那么AI是完全有可能会替代掉很多普通开发者。

因此,目前AI确实是在帮助开发者,更多的是充当一个工具助手、副驾驶的角色。但长期来看,AI大概率会替代掉很多普通开发者。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1900823.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【mybatis】mybatisX插件概述

一、主要功能 智能补全与提示 MyBatisX 可以智能地提示和补全 SQL 语句中的关键字、表名、列名等信息&#xff0c;从而显著提高开发效率。代码生成器 虽然 MyBatisX 本身可能不直接提供一个完整的、独立的代码生成器&#xff0c;但它可能集成了或支持与其他代码生成工具&#…

C语言_练习题

求最小公倍数 思路&#xff1a;假设两个数&#xff0c;5和7&#xff0c;那么最小至少也要7吧&#xff0c;所以先假定最小公倍数是两个数之间较大的&#xff0c;然后看7能不能同时整除5和7&#xff0c;不能就加1继续除 int GetLCM(int _num1, int _num2) {int max _num1>_n…

异步主从复制

主从复制的概念 主从复制是一种在数据库系统中常用的数据备份和读取扩展技术&#xff0c;通过将一个数据库服务器&#xff08;主服务器&#xff09;上的数据变更自动同步到一个或多个数据库服务器&#xff08;从服务器&#xff09;上&#xff0c;以此来实现数据的冗余备份、读…

【CUDA】 扫描 Scan

Scan Scan操作是许多应用程序中常见的操作。扫描操作采用一个二元运算符⊕和一个输入数组并计算输出数组如下&#xff1a; [x0,(x0⊕x1),…,( x0⊕x1⊕…..⊕xn-1)] 分层扫描和多种Scan算法介绍 Kogge-Stones Algorithm Kogge-Stones Algorithm最初是为设计快速加法电路而发…

Android Graphics 显示系统 - 监测、计算FPS的工具及设计分析

“ 在Android图像显示相关的开发、调试、测试过程中&#xff0c;如何能有效地评估画面的流畅度及监测、计算图层渲染显示的实时FPS呢&#xff1f;本篇文章将会提供一种实用、灵巧的思路。” 01 设计初衷 面对开发测试中遇到的卡顿掉帧问题&#xff0c;如何在复现卡顿的过程中持…

黑马的ES课程中的不足

在我自己做项目使用ES的时候&#xff0c;发现了黑马没教的方法&#xff0c;以及一些它项目的小问题 搜索时的匹配方法 这个boolQuery().should 我的项目是通过文章的标题title和内容content来进行搜索 但是黑马它的项目只用了must 如果我们的title和content都用must&#x…

QCustomPlot+ vs2022+ qt

零、printSupport 步骤一&#xff1a;下载QCustomPlot 访问QCustomPlot的官网 QCustomPlot 下载最新版本的源代码。 步骤二&#xff1a;配置项目 创建新的Qt项目&#xff1a; 打开VS2022&#xff0c;创建一个新的Qt Widgets Application项目。 将QCustomPlot源代码添加到项目…

C语言编程与进阶

1.0 C语言关键字 1-1C语言关键字-CSDN博客文章浏览阅读831次&#xff0c;点赞13次&#xff0c;收藏24次。define使用define定义常量return 0;使用define定义宏// define 定义宏&#xff0c;名字是ADD(x,y),x y 是宏的参数int a 10;int b 20;return 0;宏定义的本质是替换&am…

JavaEE——计算机工作原理

冯诺依曼体系&#xff08;VonNeumannArchitecture&#xff09; 现代计算机&#xff0c;大多遵守冯诺依曼体系结构 CPU中央处理器&#xff1a;进行算术运算与逻辑判断 存储器&#xff1a;分为外存和内存&#xff0c;用于存储数据&#xff08;使用二进制存储&#xff09; 输入…

百日筑基第十二天-入门Elasticsearch

百日筑基第十二天-入门Elasticsearch Elasticsearch 是什么 Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎。 安装 Elasticsearch 下载&#xff1a;https://www.elastic.co/cn/downloads/elasticsearch Elasticsearch 是免安装的&#xff0c;只需要把 zip…

绝了,华为伸缩摄像头如何突破影像边界?

自华为Pura70 Ultra超聚光伸缩镜头诞生以来&#xff0c;备受大家的关注&#xff0c;听说这颗镜头打破了传统手机的摄像头体积与镜头的设计&#xff0c;为我们带来了不一样的拍照体验。 智能手机飞速发展的今天&#xff0c;影像功能已经成为我们衡量一款手机性能的重要指标。想…

【Qt5.12.9】程序无法显示照片问题(已解决)

问题记录&#xff1a;Qt5.12.9下无法显示照片 我的工程名为03_qpainter&#xff0c;照片cd.png存放在工程目录下的image文件夹中。 /03_qpainter/image/cd.png 因为这是正点原子Linux下Qt书籍中的例程&#xff0c;在通过学习其配套的例程中的项目&#xff0c;发现我的项目少…

Python的招聘数据分析与可视化管理系统-计算机毕业设计源码55218

摘要 随着互联网的迅速发展&#xff0c;招聘数据在规模和复杂性上呈现爆炸式增长&#xff0c;对数据的深入分析和有效可视化成为招聘决策和招聘管理的重要手段。本论文旨在构建一个基于Python的招聘数据分析与可视化管理系统。 该平台以主流招聘平台为数据源&#xff0c;利用Py…

昇思25天学习打卡营第1天|初识MindSpore

# 打卡 day1 目录 # 打卡 day1 初识MindSpore 昇思 MindSpore 是什么&#xff1f; 昇思 MindSpore 优势|特点 昇思 MindSpore 不足 官方生态学习地址 初识MindSpore 昇思 MindSpore 是什么&#xff1f; 昇思MindSpore 是全场景深度学习架构&#xff0c;为开发者提供了全…

Ubuntu固定虚拟机的ip地址

1、由于虚拟机网络是桥接&#xff0c;所以ip地址会不停地变化&#xff0c;接下来我们就讲述ip如何固定 2、如果apt安装时报错W: Target CNF (multiverse/cnf/Commands-all) is configured multiple times in /etc/apt/sources.list:10&#xff0c; 检查 /etc/apt/sources.list…

计算机组成原理--概述

&#x1f308;个人主页&#xff1a;小新_- &#x1f388;个人座右铭&#xff1a;“成功者不是从不失败的人&#xff0c;而是从不放弃的人&#xff01;”&#x1f388; &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f3c6;所属专栏&#xff1…

AI Earth应用—— 在线使用sentinel数据VV和VH波段进行水体提取分析(昆明抚仙湖、滇池为例)

AI Earth 本文的主要目的就是对水体进行提取,这里,具体的操作步骤很简单基本上是通过,首页的数据检索,选择需要研究的区域,然后选择工具箱种的水体提取分析即可,剩下的就交给阿里云去处理,结果如下: 这是我所选取的一景影像: 详情 卫星: Sentinel-1 级别: 1 …

Redis IO多路复用

0、前言 本文所有代码可见 > 【gitee code demo】 本文涉及的主题&#xff1a; 1、BIO、NIO的业务实践和缺陷 2、Redis IO多路复用&#xff1a;redis快的主要原因 3、epoll 架构 部分图片 via 【epoll 原理分析】 1、BIO单线程版 1.1 业务代码 client client代码相同…

Proxmox VE 8虚拟机直通USB磁盘

作者&#xff1a;田逸&#xff08;fromyz&#xff09; 今天有个兄弟发消息&#xff0c;咨询怎么让插在服务器上的U盾被Proxmox VE上的虚拟机识别。在很久很久以前&#xff0c;我尝试过在Proxmox VE 5以前的版本创建windows虚拟机&#xff0c;并把插在Proxmox VE宿主机上的银行U…

Vue3基础(二)

一、搭建工程(vite) ## 1.创建命令 npm create vuelatest## 2.具体配置 ## 配置项目名称 √ Project name: vue3_test ## 是否添加TypeScript支持 √ Add TypeScript? Yes ## 是否添加JSX支持 √ Add JSX Support? No ## 是否添加路由环境 √ Add Vue Router for Single P…