人工智能(AI)会取代程序员吗?

AI也会编程

ChatGPT异常火爆,看到网上很多人都在发ChatGPT写的代码,并开始大肆宣扬AI要取代程序员了,今天聊一聊到底AI会不会取代程序员。

AI会取代程序员吗?


这里就拿新发布的GitHub Copilot X来说下。GitHub Copilot X 是一款全新的智能编程助手,使用了 OpenAI 的最新 GPT-4 模型,不仅可以自动补全代码和注释,还可以通过聊天和语音与开发者交流,帮助他们理解、修改、测试和优化代码。GitHub Copilot X 是 GitHub Copilot 的升级版,在代码编辑器中增加了一个类似于 ChatGPT 的聊天界面,聊天机器人能够识别和解释代码,并提供修改建议和错误修复。开发者可以在 IDE 的侧边栏调出 Copilot X,并向它发送命令。

“Copilot X 是我们对 Copilot 未来愿景的展示,这意味着 AI 将参与到开发者生命周期的每一个步骤中。”GitHub CEO Thomas Dohmke 在接受 The Verge 采访时说,“它将从根本上改变开发者体验。”

这里引用官方发布的一段话:

With AI available at every step, we can fundamentally redefine developer productivity. We are reducing boilerplate and manual tasks and making complex work easier across the developer lifecycle. By doing so, we’re enabling every developer to focus all their creativity on the big picture: building the innovation of tomorrow and accelerating human progress, today.

通过在每一步中使用AI,我们可以从根本上重新定义开发人员的生产力。我们正在减少样板和手动任务,并在整个开发人员生命周期中简化复杂工作。通过这样做,我们使每个开发人员都能将所有创造力集中在大局上:构建明天的创新,并在今天加速人类进步。

现在GitHub Copilot X做为程序助手为开发人员减少一些简单固定、重复性的工作任务,但是GitHub Copilot写的代码并不是完美的。

下面是引用官网的一段话:

Does GitHub Copilot write perfect code?

In a recent evaluation, we found that users accepted on average 26% of all completions shown by GitHub Copilot. We also found that on average more than 27% of developers’ code files were generated by GitHub Copilot, and in certain languages like Python that goes up to 40%. However, GitHub Copilot does not write perfect code. It is designed to generate the best code possible given the context it has access to, but it doesn’t test the code it suggests so the code may not always work, or even make sense. GitHub Copilot can only hold a very limited context, so it may not make use of helpful functions defined elsewhere in your project or even in the same file. And it may suggest old or deprecated uses of libraries and languages. When converting comments written in non-English to code, there may be performance disparities when compared to English. For suggested code, certain languages like Python, JavaScript, TypeScript, and Go might perform better compared to other programming languages.

Like any other code, code suggested by GitHub Copilot should be carefully tested, reviewed, and vetted. As the developer, you are always in charge.

GitHub Copilot会编写完美的代码吗?

在最近的一项评估中,我们发现用户平均接受GitHub Copilot显示的所有完成情况的26%。我们还发现,平均超过27%的开发人员代码文件是由GitHub Copilot生成的,在Python等某些语言中,代码文件高达40%。然而,GitHub Copilot并没有编写完美的代码。考虑到它有权访问的上下文,它旨在生成尽可能最好的代码,但它不会测试它建议的代码,因此代码可能并不总是工作,甚至没有意义。GitHub Copilot只能保存非常有限的上下文,因此它可能不会使用项目其他地方甚至同一文件中定义的有用函数。它可能暗示图书馆和语言的旧用或弃用。当将用非英语编写的评论转换为代码时,与英语相比,可能会存在性能差异。对于建议的代码,与其他编程语言相比,Python、JavaScript、TypeScript和Go等某些语言可能表现更好。

像任何其他代码一样,GitHub Copilot建议的代码应该经过仔细测试、审查和审查。作为开发人员,您始终负责。

像任何其他代码一样,GitHub Copilot建议的代码应该经过仔细测试、审查和审查。作为开发人员,您始终负责。


下面是GitHub首席执行官Thomas Dohmke对于AI是不能够取代程序员的回答:

GitHub首席执行官Thomas Dohmke说,“人工智能将使开发人员能够按照自己的节奏学习,提高工作效率,而不是取代他们的工作”。

你认为人工智能会取代程序员吗?你认为初级开发人员的未来会如何发展?

Dohmke:我认为下一代开发人员将习惯于人工智能,这将是令人难以置信的。ChatGPT等技术将实现一种新的学习方式,因此年轻的开发人员可以与人工智能互动,并按照自己的节奏学习,无论是通过教程还是预定义故事情节中的脚本。

它还将使开发人员提高工作效率,我们在Copilot中看到了这一点。当您开始使用Copilot时,它没有任何关于您的信息,因此它使用Codex模型(GPT模型的子变体)向您建议代码。但当你键入时,如果它暗示了你不喜欢的代码,你可以拒绝它。

随着时间的推移,它会学习你接受或拒绝的东西,并适应你的编码风格。我们看到对Copilot中的人工智能持怀疑态度的开发人员在几天后得到了那个“啊哈”的时刻,几周后,他们再也无法没有它了。

有人发了一条推文,他愿意每月支付1000美元购买一项服务,该服务结合了ChatGPT和Copilot,以帮助他构建代码,虽然这不一定是此类服务价格的指标,但它表明这在软件开发领域可以走多远。

回到初级开发人员,我认为他们大学毕业后会更熟练,因为他们不必像我们一样学习无聊的编程基础知识。我们几乎在世界任何地方都缺乏开发人员;开发人员必须不断学习,人工智能将支持他们。有一个人工智能助理在你身边,而不是阅读成堆的书籍或维基文章,这更有吸引力。

你不相信人工智能有一天会取代开发人员吗?

Dohmke:不,这就像自动驾驶汽车仍然需要知道你想去哪里,而编剧仍然需要写故事一样。显然,开发人员仍然必须写故事,而人工智能无法做到这一点。它将支持卑微的任务,写测试用例之类的事情可能没有必要。

我们以前经历过这种情况。在互联网变大之前,人们编写了自己的软件。你可能会买一个商业软件组件,有人给你寄来一个软盘,但没有开源软件可以使用。

今天,大多数应用程序都是开源的,无论是编程语言本身、编译器还是操作系统。当您想构建一个新网站时,您可能会拉入JavaScript前端框架React,而不是构建自己的按钮和列表。因此,一开始,你已经有1000行代码,但你没有做任何与让人工智能为你编写代码不同的事情。您正在他人工作的基础上管理更复杂的系统。

这就像金字塔的尖端,只是金字塔越来越高。顶部的代码与您日复一日编写的代码量相同,但由于我们的系统越来越复杂,基础代码库和复杂性将会增加。


回想起来,我们有一位CS教授,他在2007年预测我们十年后都会失业,即2017。

他的预测是基于他当时看到的趋势。但它甚至不是人工智能。相反,他做出了这个预测,因为他看到了无代码工具的兴起取代了软件开发人员,因为经理们最终可以剔除讨厌的“翻译者”,即软件开发人员。

我当时说了,现在就说。如果您的经理可以指定他们需要什么,以便无代码工具,或现在的人工智能,可以生成他们想要的代码,那么他们的语言必须非常准确。事实上,他们需要用单击和拖动界面或人类语言指定一个程序。

既然他们雇用软件开发人员来使规范更加严谨,而随着时间的推移,经理们似乎并没有变得更好,你为什么会相信这套技能会消失?

从本质上讲,软件开发中发生的事情是,抽象水平上升了,而机器已经接管了越来越多的细节。从打孔卡,到汇编,再到COBOL,C,Perl,Java,Python,Erlang,Rust。

当然,我在这里遗漏了一些语言,但抽象程度一直在上升。

但是,指定一个真正做你想做的事的程序所需的严谨性并没有如此。最近的编程语言发展往往有一个特定的领域,但并没有那么提高抽象水平,这尤其证明了这一点。

如果下一步是“嗨,我是一个有想法的人,请给我一个做优步的应用程序,用于自行车,但更好”,我会感到惊讶。


在这个数字世界中,新技术所能做到的可能性似乎是无穷无尽的。

随着人类的不断探索和创新,许多人开始怀疑我们当前的技术进步可能会将我们带到未来的何方。

现在经常被问到一个问题:人工智能(AI)会取代程序员吗?

虽然这个话题引发了技术专业人士之间的激烈辩论,但目前还不清楚随着人工智能的接管,开发人员工作是否会变得过时。



引用文章:

https://github.blog/2023-03-22-github-copilot-x-the-ai-powered-developer-experience/

https://github.com/features/copilot

https://www.computerweekly.com/news/252528476/GitHub-CEO-Artificial-intelligence-will-not-replace-developers

展开阅读全文

页面更新:2024-05-01

标签:人工智能   程序员   可能会   这一点   开发者   语言   代码   建议   测试   软件

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top