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

server/2024/9/24 4:19:48/

AI_0">

你好,我是三桥君。

自从 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.ppmy.cn/server/55771.html

相关文章

【论文解读】LivePortrait:具有拼接和重定向控制的高效肖像动画

&#x1f4dc; 文献卡 英文题目: LivePortrait: Efficient Portrait Animation with Stitching and Retargeting Control;作者: Jianzhu Guo; Dingyun Zhang; Xiaoqiang Liu; Zhizhou Zhong; Yuan Zhang; Pengfei Wan; Di ZhangDOI: 10.48550/arXiv.2407.03168摘要翻译: *旨在…

Sentinel限流算法总结

文章目录 一、线程隔离二、滑动窗口算法三、令牌桶算法四、漏桶算法 一、线程隔离 线程隔离有两种方式实现&#xff1a; 线程池隔离&#xff1a;给每个服务调用业务分配一个线程池&#xff0c;利用线程池本身实现隔离效果信号量隔离&#xff1a;不创建线程池&#xff0c;而是…

性能测试相关理解(一)

根据学习全栈测试博主的课程做的笔记 一、说明 若未特别说明&#xff0c;涉及术语都是jmeter来说&#xff0c;线程数&#xff0c;就是jmeter线程组中的线程数 二、软件性能是什么 1、用户关注&#xff1a;响应时间 2、业务/产品关注&#xff1a;响应时间、支持多少并发数、…

轻松快速上手Thekey库,实现数据加密无忧

Thekey的概述&#xff1a; Thekey库是一个Python库,旨在简化数据加密、解密、签名和验证的过程。它提供了一套简洁易用的接口,用于处理各种加密任务,适合需要在应用程序中实现安全数据处理的开发人员. 安装Thekey库 pip install thekey使用Thekey库进行基本加密和解密操作的…

【LeetCode:3101. 交替子数组计数 + 滑动窗口 + 数学公式】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

【Unity navigation面板】

【Unity navigation面板】 Unity的Navigation面板是一个集成在Unity编辑器中的界面&#xff0c;它允许开发者对导航网格&#xff08;NavMesh&#xff09;进行配置和管理。 Unity Navigation面板的一些关键特性和功能&#xff1a; 导航网格代理&#xff08;NavMesh Agent&…

【面试题】IO多路复用模型之poll\epoll

POLL模型 poll模型是一种基于I/O复用的网络编程模型&#xff0c;主要用于处理多个文件描述符的I/O操作。以下是对poll模型的详细解释&#xff1a; 定义与原理&#xff1a; poll模型允许程序同时监视多个文件描述符&#xff08;socket、管道、文件等&#xff09;的可读、可写及…

java版本工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统

工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性&#xff0c;公司对内部工程管理的…