Andrej Karpathy 对于刚发布的 Devin 自动化编程工具的评论相当有见地,他提出了类似自动驾驶五个阶段的自动编程五个阶段:
我认为,自动化软件工程的发展轨迹会与自动驾驶类似。以自动驾驶为例,它的发展过程大致可以分为以下几个阶段:
起初,人们完全手动驾驶。
随后,AI开始帮忙控制车辆保持车道。
接着,AI能够根据前车速度调整自己的行驶速度。
之后,AI进一步能够自主变道和选择分叉路口。
然后,AI还能在交通标志和红绿灯前停车,并执行转弯操作。
最终,随着功能的完善和质量的不断提升,实现完全自动驾驶成为可能。
在这个过程中,AI的参与程度越来越高,而人类的直接操作则逐渐减少,但仍需进行监督。软件工程的发展也遵循着类似的模式:
最初,开发者完全手动编写代码。
然后,GitHub Copilot能够自动补全几行代码。
进一步地,ChatGPT可以编写较大的代码块。
之后,我们会处理越来越大的代码差异(例如,Cursor copilot++风格)。
5.... “Devin”是一个非常引人注目的演示,它可能预示着软件工程的下一步发展方向:协调多种开发工具(如终端、浏览器、代码编辑器等)的集成应用,同时人类监督者的角色也逐渐转变为进行更高层次的抽象管理。
在这一过程中,不仅AI技术本身需要大量的工作,用户界面和用户体验设计也同样重要。我们需要思考,开发者如何有效地进行监督?他们需要关注哪些信息?他们如何引导AI朝向不同的发展路径?遇到问题时,他们又该如何进行调试?为了适应这些变化,我们可能需要对代码编辑器进行根本性的改进。
总之,软件工程正处于一个重大变革的时期。在未来,它更可能呈现为监督自动化过程的形式,同时贡献高层次的指令、创意或发展策略,而这一切都将通过英语来实现。