当前位置: 首页 > 科技观察

人工智能“高人一等”会让程序员消失吗?

时间:2023-03-16 13:06:16 科技观察

随着低代码和无代码平台的爆炸式增长,个人和组织等可以创建功能强大的生产应用程序,而传统上称为编写代码的工作相对较少。这一趋势的下一步是人工智能生成代码,例如最近的OpenAICodex和GithubAutopilot就演示了这一步的实现。那么,这些趋势意味着什么?写代码会过时吗?上下文是什么?在我们回答这个问题之前,将这些趋势放在上下文中是有帮助的。在编程代码的早期,汇编和机器语言的使用是常态。写代码后来演变成一门高级语言。开发人员可以用与机器无关的语言描述高级意图,然后使用编译器在底层生成特定于机器的代码。这种趋势一直持续到现在,今天的主流语言(比如python)都自带了很多可以多次使用的库。因此,创建功能强大的应用程序相对简单,只需编写少量新代码。什么是低代码/无代码?低代码/无代码是这一演变的下一步。开发人员不需要查找和组装可重用的代码块。低代码平台能够遵循高级指令并识别正确的可重用代码块并组装必要的代码。开发人员仍然需要做出许多决定,例如要构建什么应用程序以及软件应该如何工作。那么低代码是自己做一些决定还是一切都由开发人员决定?答案是前者,而且根据平台的不同,自动化决策的数量也不同。以前的编译器也是如此。例如,如果开发人员使用编译器编写循环,则开发人员很少指定应如何用机器代码实现循环。编译器决定如何在机器代码中实现循环,所使用的实现可能是编译器设计者创建的一系列启发式算法和算法。人工智能会写代码吗?人工智能写代码是最近的发展,是比低代码更高的方法。低代码平台上的人(即低代码平台设计师)可能已经组装了自动化逻辑,在用户提供高级指令后触发并生成代码。人工智能在研究大量现有代码后,建立一些汇编规则,然后可以生成代码。对于用户来说,人工智能生成的代码可能看起来和低代码平台生成的代码一样,但这些代码是人工智能创造的低代码。这意味着现在更容易用人工智能创建新的低代码平台,平台自动化模型是基于人工智能的。这类平台可以做很多事情:创建应用如今,业界一些人工智能原型可以根据人类日常语言指令编写简单的应用程序,可见人工智能在该领域的发展前景。这些人工智能是用许多用不同语言编写的程序示例来训练的,但从简单的层面来说,它是一种代码的自动修正。在更复杂的层面上,它实际上是一个为开发者指定的任务编写代码的引擎。调试代码如今,程序员使用的一些集成开发环境(IDE)已经可以识别代码中的简单语法问题。新的人工智能技术更进一步,通过分析代码库、错误修复和代码更新来检测常见错误模式并在新代码中找到这些错误。编写人工智能代码现在可以将数据集提供给自动化工具,让自动化工具生成正确类型的代码,然后从数据集构建人工智能。这种人工智能自动化已经可以用于特定的学习场景,比如在各种生产人工智能环境中生成后端代码,教初中生和高中生如何使用人工智能编写代码。如图所示的编译器、人为设计的自动化、人工智能设计的自动化,逐渐扩展了编程助手平台。新技术的出现扩大了编程助手的适配范围,编程助手也覆盖了更广泛的用例。(图:AIClub.World)程序员该何去何从?毫无疑问,这些趋势将产生深远的影响。许多开发人员担心这会让他们失去工作——但我不这么认为。编译器并没有让开发人员失业,而是大大增加了所需的开发人员数量、代码的使用以及创建的应用程序的大小和范围。我预计上述趋势是相同的。但这会从根本上改变编写代码的性质(如果您是熟练的汇编语言开发人员,要做的工作就很有限)。这些趋势将人类置于设计者而非实施者的角色中。未来的开发人员将可以自由地专注于可用性、设计、功能等,而无需担心如何使用特定API等细节。当然,这种趋势如何发展还有待观察。生产软件是一项复杂的工作,结合了设计、功能、实施、测试、修改和维护、DevOps等。任何可以自动化的东西都可以让开发人员腾出时间来处理其他事情。可以说,我们正在进入一个新的领域,人类任务将专注于功能、设计、伦理等主题,而底层实现将由人工智能和自动化来处理。综上所述,回到标题的问题——人工智能的“上位”会让程序员消失吗?笔者认为不是。开发人员的工作是创建满足用户需求的产品、需要特定操作环境(例如公司使用什么技术、现有基础设施、团队技能、法律约束等)和许多其他因素的解决方案。人工智能生成的代码补充了其中的大部分内容。不过,我确实认为,人工智能正在从根本上改变编写代码的意义,并将在未来继续改变编写代码的意义。关键是我们如何跟上编码教育和行业编码实践的步伐。对于业务或技术领导者来说,确保您的团队了解这些发展以及如何利用它们非常重要。低代码已经在帮助开发人员提高工作效率。人工智能生成的代码是一个相对较新的现象,但我们可以预期它会在未来几年内变得更加普遍。即使是熟练的开发人员也可以从持续的教育和培训计划中受益,以跟上最新技术的步伐。如果现在没有这样的计划,不如制定一个。