你好,我是三桥君。
自从 ChatGPT 问市以来,AI 将取代开发者的声音不绝于耳,至今还是互联网异常火热的问题。
在软件开发领域,生成式人工智能(AIGC)正在改变开发者的工作方式。无论是代码生成、错误检测还是自动化测试,AI工具正在成为开发者的得力助手。
比如在代码生成方面,可以让大模型生成游戏代码。
“请帮我生成一个可以直接在网页运行的贪吃蛇游戏的代码”
我将这段代码复制到一个HTML文件中,然后用浏览器打开这个文件,试试能不能运行贪吃蛇游戏。
<!DOCTYPE html> <html> <head> <title>贪吃蛇游戏</title> <style> canvas { border: 4px solid black; } </style> </head> <body> <canvas 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大概率会替代掉很多普通开发者。
总结
**AI与开发者的未来:助力还是替代?**随着ChatGPT等AI技术的问世,关于AI是否会取代开发者的讨论日益激烈。本文探讨了生成式人工智能(AIGC)在软件开发领域的应用及其带来的变革,尤其是在代码生成、错误检测和自动化测试方面的显著进步。文章通过实际例子——生成一个可在网页运行的贪吃蛇游戏代码,展示了AI技术的实用性与高效性。
文中引用了国内外科技业界领袖的预言,强调了AI技术对程序设计行业潜力影响的深远。一方面,初创公司已推出全球首个AI软件工程师,声称能自学新语言、开发App及自动纠错,大幅降低了软件开发的门槛;另一方面,这同样引发了对未来职业变革的担忧,即普通开发者是否将被AI取代。
尽管当前AI更多是以辅助角色出现,如CSDN和文心一言提供的各类AI工具,使编程变得更加高效和便捷。但文章指出,随着AI技术的不断进步,其在处理重复性高、标准化程度高的工作任务上的优势将愈发明显。这意味着,那些仅依赖于此类工作的开发者将面临被自动化替代的挑战。
然而,作者也表达了相对乐观的观点:目前及未来一段时间内,AI将主要作为开发者的得力助手存在,通过提升效率和优化流程来促进行业的发展。而真正避免被取代的关键,在于开发者应不断提升自身的综合能力与创新能力,以应对更加复杂和需要创造力的工作任务。
综上所述,尽管AI技术的发展对软件开发行业产生了深远影响,但其最终是助力还是替代开发者,仍取决于技术的应用方式及开发者的应对策略。 开发者ai技术ai工具canvacanvas软件开发自动化code工程师html代码生成自动化测试生成式软件工程程序员docai软件错误检测软件工程师chatgpt