人工智能(AI)会取代程序员吗?
AI也会编程
ChatGPT异常火爆,看到网上很多人都在发ChatGPT写的代码,并开始大肆宣扬AI要取代程序员了,今天聊一聊到底AI会不会取代程序员。
AI会取代程序员吗?
这里就拿新发布的GitHubCopilotX来说下。GitHubCopilotX是一款全新的智能编程助手,使用了OpenAI的最新GPT4模型,不仅可以自动补全代码和注释,还可以通过聊天和语音与开发者交流,帮助他们理解、修改、测试和优化代码。GitHubCopilotX是GitHubCopilot的升级版,在代码编辑器中增加了一个类似于ChatGPT的聊天界面,让聊天机器人能够识别和解释代码,并提供修改建议和错误修复。开发者可以在IDE的侧边栏调出CopilotX,并向它发送命令。
CopilotX是我们对Copilot未来愿景的展示,这意味着AI将参与到开发者生命周期的每一个步骤中。GitHubCEOThomasDohmke在接受TheVerge采访时说,它将从根本上改变开发者体验。
这里引用官方发布的一段话:WithAIavailableateverystep,wecanfundamentallyredefinedeveloperproductivity。Wearereducingboilerplateandmanualtasksandmakingcomplexworkeasieracrossthedeveloperlifecycle。Bydoingso,we’reenablingeverydevelopertofocusalltheircreativityonthebigpicture:buildingtheinnovationoftomorrowandacceleratinghumanprogress,today。
通过在每一步中使用AI,我们可以从根本上重新定义开发人员的生产力。我们正在减少样板和手动任务,并在整个开发人员生命周期中简化复杂工作。通过这样做,我们使每个开发人员都能将所有创造力集中在大局上:构建明天的创新,并在今天加速人类进步。
现在GitHubCopilotX做为程序助手为开发人员减少一些简单固定、重复性的工作任务,但是GitHubCopilot写的代码并不是完美的。
下面是引用官网的一段话:DoesGitHubCopilotwriteperfectcode?
Inarecentevaluation,wefoundthatusersacceptedonaverage26ofallcompletionsshownbyGitHubCopilot。Wealsofoundthatonaveragemorethan27ofdevelopers’codefilesweregeneratedbyGitHubCopilot,andincertainlanguageslikePythonthatgoesupto40。However,GitHubCopilotdoesnotwriteperfectcode。Itisdesignedtogeneratethebestcodepossiblegiventhecontextithasaccessto,butitdoesn’ttestthecodeitsuggestssothecodemaynotalwayswork,orevenmakesense。GitHubCopilotcanonlyholdaverylimitedcontext,soitmaynotmakeuseofhelpfulfunctionsdefinedelsewhereinyourprojectoreveninthesamefile。Anditmaysuggestoldordeprecatedusesoflibrariesandlanguages。WhenconvertingcommentswritteninnonEnglishtocode,theremaybeperformancedisparitieswhencomparedtoEnglish。Forsuggestedcode,certainlanguageslikePython,JavaScript,TypeScript,andGomightperformbettercomparedtootherprogramminglanguages。
Likeanyothercode,codesuggestedbyGitHubCopilotshouldbecarefullytested,reviewed,andvetted。Asthedeveloper,youarealwaysincharge。
GitHubCopilot会编写完美的代码吗?
在最近的一项评估中,我们发现用户平均接受GitHubCopilot显示的所有完成情况的26。我们还发现,平均超过27的开发人员代码文件是由GitHubCopilot生成的,在Python等某些语言中,代码文件高达40。然而,GitHubCopilot并没有编写完美的代码。考虑到它有权访问的上下文,它旨在生成尽可能最好的代码,但它不会测试它建议的代码,因此代码可能并不总是工作,甚至没有意义。GitHubCopilot只能保存非常有限的上下文,因此它可能不会使用项目其他地方甚至同一文件中定义的有用函数。它可能暗示图书馆和语言的旧用或弃用。当将用非英语编写的评论转换为代码时,与英语相比,可能会存在性能差异。对于建议的代码,与其他编程语言相比,Python、JavaScript、TypeScript和Go等某些语言可能表现更好。
像任何其他代码一样,GitHubCopilot建议的代码应该经过仔细测试、审查和审查。作为开发人员,您始终负责。
像任何其他代码一样,GitHubCopilot建议的代码应该经过仔细测试、审查和审查。作为开发人员,您始终负责。
下面是GitHub首席执行官ThomasDohmke对于AI是不能够取代程序员的回答:
GitHub首席执行官ThomasDohmke说,人工智能将使开发人员能够按照自己的节奏学习,提高工作效率,而不是取代他们的工作。你认为人工智能会取代程序员吗?你认为初级开发人员的未来会如何发展?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。blog20230322githubcopilotxtheaipowereddeveloperexperience
https:github。comfeaturescopilot
https:www。computerweekly。comnews252528476GitHubCEOArtificialintelligencewillnotreplacedevelopers