生成|人工智能“上位”会让程序员消失吗?

生成|人工智能“上位”会让程序员消失吗?

写代码已经成了许多工作的一项关键技能。一些国家和学校甚至认为,编程语言是一种可以接受的外语。而在各种熙熙攘攘之中,程序代码的性质也正在发生巨大的变化。
随着低代码和无代码平台迅猛增长,个人和组织都可以用相对较少的传统上称为编写代码的东西,来创建强大的生产应用程序。该趋势的下一步,就是人工智能生成代码,比如,最近的Open AI Codex和Github Autopilot就展示了这一步的实现。
那么,这些趋势意味着什么呢?编写代码会过时吗?
【 生成|人工智能“上位”会让程序员消失吗?】背景是什么?
在我们回答这个问题之前,要先把这些趋势置于背景之中,这是有帮助的。在编程代码的早期,使用汇编语言和机器语言是当时的常态。编写代码后来演变为高级语言,开发人员可以用一种与机器无关的语言描述高层次的意图,再用编译器在下面生成特定机器的代码。
这种趋势一直持续到现在,今天的主流语言(例如python)带有许多可多次使用的库。所以,要创建强大的应用程序也相对简单,只需要编写少量的新代码即可。
低代码/无代码是什么?
低码/无码是这种演变的下一步。开发人员无需去寻找和组装可重用的代码块。低码平台能够遵照高层次的指示及识别正确的可重用代码块并组装出必要的代码。开发人员则仍然要作出许多决定,例如构建什么样的应用以及软件应该如何运作等等。
那么低码是自己做一些决定或是什么都由开发者决定呢?答案是前者,而且根据平台的不同,自动化做决定的数量也不一样。之前的编译器其实也是这样。比如说开发者使用编译器编写一个循环,开发者很少会指定该循环应该如何用机器代码实现。编译器决定如何用机器代码实现该循环,用到的实现方法,可能是一系列启发式算法和由编译器设计者绞尽脑汁创建的算法。
人工智能可以写代码吗?
人工智能写代码是最近的发展,这是比低码更高大上的一种方法。低代码平台上的人类(即低代码平台设计者)可能已经组装了自动化逻辑,在用户提供了高层次的指示后,自动化逻辑得以触发并生成代码。人工智能在研究了大量的现有代码语料库后确立一些组装规则,进而可以生成代码。
对于用户而言,人工智能生成的代码可能看起来和低码平台生成的代码一样,但这些代码是人工智能创造的低码。这意味着现在可以更容易地用人工智能创建新的低码平台,而平台自动化模式则是基于人工智能。
这一类的平台可以做很多事情:

  • 创建应用程序
如今,业界的一些人工智能原型已经可以根据人类的日常语言指示编写简单的应用程序,这显示了人工智能在这领域的发展前景。这些人工智能用了许多用不同语言编写的程序例子进行训练,但从简单的层面上看就是个代码的自动更正。而从更复杂的层面上看,它实际上是一个引擎,这个引擎可以为开发者指定的任务编写代码。
  • 调试代码
现在,程序员用到的一些集成开发环境(IDE)已经可以识别代码中的简单语法问题。新的人工智能技术在这方面则更进了一步,它能通过分析代码库、错误修复和代码更新进行训练,达到检测常见错误模式并在新代码中找到这些错误。
  • 编写人工智能代码
现在已经可以将一个数据集交给自动化工具,使得自动化工具生成正确的代码类型,再从数据集中构建一个人工智能。这种类型的人工智能自动化已经可以用于一些特定的学习背景,例如在各种生产人工智能环境里用于生成后端代码,去教初中和高中学生如何利用人工智能编写代码。