人工智能还无法代替人类的编程工作

2023年09月25日 由 samoyed 发表 307 0

人工智能支持者表示,Copilot、Code Whisperer、Codesense和类似的用于帮助完成、调试、测试、调整和审查代码的工具将减轻开发人员的负担。但Doomer有一个完全疯狂的愿景,即人工智能取代人类程序员,改变软件开发现状。


前哈佛大学教授、fixie.ai现任创始人Matt Welsh今年早些时候宣布,人工智能是编程的终结,他的大多数同行都对他提出的论点持怀疑态度。


AI-in-Programming-is-Collaboration-Not-Takeover-_副本


American Scientist的资深作家Brian Hayes对此写道:“我认为我们离这一目标还很远,也不一定正在朝着正确的方向前进。”


虽然人工智能的潜力是毋庸置疑的,但对其当前能力的深入研究表明,人工智能不太可能完全甚至部分接管编程。众所周知,将人工智能融入工作流程的开发者更有可能在该领域长期生存下去,并且受到青睐。


人工智能将编程变得更容易


AI擅长生成样板代码和本质上重复的代码,例如迭代项目列表或序列化/反序列化JSON数据。开发人员已经使用Copilot、DeepCode来完成他们对StackOverflow所做的工作——复制粘贴代码。人工智能可以很好地完成复制粘贴工作,因为它已经根据互联网上的大量数据进行了训练,有效地“记忆”了许多代码模式。


基于人工智能的程序员平台帮助他们编写代码文档并添加注释。它可以分析代码并为每种方法生成文档,以及如何使用它的示例代码。与文档类似,人工智能可以帮助编写代码的测试用例。如果代码测试需要生成测试数据,AI可以推断数据的格式并生成相应的数据。


当使用不熟悉的代码库时,这一功能非常方便,因为人工智能帮助逐行解释代码的能力是惊人的。人工智能模型擅长理解数据。如果你提供一个数据集,人工智能可以分析它的结构,并根据列名了解数据所代表的类型。


开发人员可以向人工智能询问有关数据的各种问题,并要求进行不同的分析。人工智能甚至可以为你生成代码来运行和可视化数据。如果你为AI提供数据库模式,它可以帮助你为各种任务生成SQL查询,例如数据分析或报告生成。


各种评估LLM生成代码能力的研究强调了在编程过程中需要人为干预和理解。人工智能生成的解决方案虽然很有前景,但通常需要人工微调。


人工智能助力开发者经济


人工智能的能力无疑让人感到恐惧。但是,GitHub首席执行官Thomas Dohmke最近表示,“对软件开发人员的需求将持续超过供应。”即使Emad Mostaque表示,开发人员的工作岗位将在五年后消失。


人工智能模型通过处理任务来工作,例如重写一段代码,并产生新的代码作为输出。在这个过程中,涉及三个组件:自然语言的指令、希望重写的附带代码以及模型的输出。这三个元素形成了模型的上下文窗口,它允许有限数量的token(一个token相当于一个单词,但有时一个单词可能会产生多个token)。这意味着这些模型可以处理有限数量的信息。


毫无疑问,人工智能有能力处理一些低级任务,而且随着时间的推移,它还会不断改进。然而,现实世界中的软件工程比这些任务复杂得多。工程师每天都要应对各种挑战。


为此,他们需要知道公司和利益相关者需要什么,需要与他人合作以了解业务需求,并设计考虑到可维护性和可扩展性的可扩展解决方案,而人工智能无法做到这一点。


程序员并不总是在做已经做过的事情,他们往往需要创新,并为看不见的问题提出新的解决方案,这需要经验和对数据结构和算法的深刻理解,以及推断这些知识以解决看不见问题的能力。


目前的情况表明,人工智能是一种协作的方式,它可以作为一种强大的工具,增强人类程序员的能力,而不是完全取代人类程序员。

文章来源:https://analyticsindiamag.com/ai-in-programming-is-to-collaborate-not-eliminate/
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消