关于人工智能对编程行业影响的预测大相径庭。一方面,一些人预测开发人员将被彻底淘汰,而另一些人则确信人工智能将把现有的程序员变成“超级大脑”。
如果担心人工智能会取代你的编程工作,很可能已经成为现实。然而,今天的人工智能有一个主要的限制,那就是需要人类开发人员在一段时间内(也许永远参与其中),因为创造力,机器人还没有。
“我们还没有像人们通常想象的那样开发出真正的人工智能。”人工智能自动化公司ABBYY的高级软件开发人员Vaso Peras Likodrić说。“我们有通过输出模拟推理的预测神经网络,但准确(人类)智能的本质应该包含更多。”
数据表明,我们仍处于人工智能辅助编程的早期阶段。ChatGPT只推出了六个月,而GitHub Copilot只推出了大约18个月。使用这些工具提高效率可不仅仅需要注册一个账户。
另一个有趣的发现是,这些人工智能工具对初级还是高级程序员更有利。调查数据没有绝对定论:13%的人说它们对高级程序员有用,11%的人说对初级程序员有用,还有11%的人表示它们对任何人都没有用处,根本没有提高生产力。
普遍的观点是,Copilot对高级程序员来说更具优势,高级开发人员正在用它来帮助设计和构建系统,甚至创建生产代码。他们能够更好地在一组复杂的提示中描述他们需要解决的问题,并迅速注意到生成的代码中的错误。而初级开发人员正在使用它来学习,并通过在Stack Overflow上查找解决方案或搜索在线文档来减少解决问题的时间。
今天的人工智能模型能够根据大量人工生成的训练数据预测下一个单词或动作。问题就在这里:人工智能模型无法知道任何尚未发生的事情。因此,人工智能的结果中不太可能出现以前没有想到的原创想法或创意。简单地说,人类的创造力有很大的空间,而这些工具无法完全封装这些空间。
Peras Likodrić还指出,虽然人工智能模型“主要产生了令人满意的结果”,但它们产生错乱的倾向是另一个可能会让人类的手在键盘上停留一段时间的因素。
Peras Likodrić说:“即使使用最先进的系统,也可能出现人工智能‘错乱’或输出不准确的情况。”这就是为什么人工验证对于准确性不可或缺的所有关键任务仍然至关重要。例如,ABBYY产品的验证环节强调了人工因素的重要性。虽然人工智能工具可以加快这一过程,但在目前的状态下,还只能部分依赖它们。
那么,人工智能将何去何从?ABBYY平台处理小组负责人Vladimir Khil表示,当前的人工智能可以在许多其他应用程序开发活动中脱颖而出。
他说:“想象一下,有一个私人版本的人工智能引擎,可以分析我们的代码,提供关于编码风格和高效算法的建议,甚至可以发现不可读的代码,而不会有任何与第三方技术相关的隐私担忧。这将改变游戏规则!”
人工智能还可以帮助编写测试脚本。Khil说:“编写测试对开发人员来说可能很无聊。但有了人工智能的力量,我们可以描述界面和场景,它可以毫不费力地生成测试代码。”
O’Reilly关于低代码和无代码应用程序开发趋势的一份新报告揭示了ChatGPT和GitHub Copilot等工具的使用情况,这些工具在程序员中越来越受欢迎。
也许对739家组织的调查中最大的发现是,只有33%的组织报告使用了此类工具,而67%的组织报告没有使用这些工具。但O’Reilly的人对结果表示怀疑。O'Reilly的Mike Loukides在报告中写道:“我们怀疑低估了Copilot的实际使用量。”
这一数字可能要高得多,正如开放源代码软件的使用率远高于20年前O'Reilly调查首席信息官时的数据一样。“他们知之甚少!”Loukides写道。“Copilot、ChatGPT和类似工具的实际使用率可能远高于33%。我们确信,即使他们在工作中没有使用Copilot或ChatGPT,许多程序员也在试验这些工具或在个人项目中使用它们。”
有趣的是,这些工具并不像预期的那样容易使用。报告发现,训练是最大的困难,34%的人表示训练是他们最大的困难。其次是易用性,12%的人选择了这一点。
Loukides写道:“这是一个惊喜,因为这些工具中的许多都应该是低代码的,或者没有代码。”“我们特别考虑GitHub Copilot、Amazon CodeWhisperer和其他代码生成器等工具,但几乎所有的生产力工具都声称可以让生活变得更简单。至少一开始,这显然不是真的。这是一条学习曲线,而且它似乎比我们想象的更陡。”