AI辅助应用开发:哪些有效,哪些无效
文章探讨了AI对应用开发人员的影响。虽然AI工具如ChatGPT和GitHub Copilot能提高效率,但它们缺乏创造力,且可能产生幻觉,因此人类开发者仍然不可或缺。调查显示,仅有33%的组织使用此类工具,但实际使用率可能更高。培训是最大的挑战,而非易用性。
在AI可能冲击的众多职业中,应用开发人员被认为受影响最深。毕竟,像ChatGPT这样的AI模型是语言操纵专家,那么基于计算机语言的编程工作自然难以幸免。然而,应用开发角色的变化方式可能与你想象的不同。
关于AI对编程职业影响的预测五花八门。一方面,有人预测程序员将完全消失;另一方面,也有人确信AI会把现有程序员变成超级极客。真相可能介于两者之间。
如果你担心AI会抢走你的编程工作,你并不孤单。然而,今天的AI有一个重大局限,这使得人类开发者必须参与其中,甚至可能永远如此。这就是创造力,而机器人并不具备。
“我们尚未开发出人们想象中的真正人工智能,”位于加利福尼亚州米尔皮塔斯的AI自动化公司ABBYY的高级软件开发人员Vaso Peras-Likodrić表示。“我们拥有能够通过输出模拟推理的预测性神经网络,但真正智能的本质远不止于此。”
今天的AI模型能够基于海量人类生成的数据预测下一个单词或操作,但问题在于:AI无法知道任何尚未发生的事情。
“因此,AI结果中不太可能出现前所未有的原创想法,”他说。“简单来说,人类创造力有很大的空间,这些工具无法完全涵盖。”
Peras-Likodrić还指出,尽管AI模型“能生成基本令人满意的结果”,但它们容易产生幻觉,这也是人类仍需参与的原因之一。
“即使是先进系统也可能出现AI‘幻觉’或错误输出,”Peras-Likodrić说,他本人使用GPT-4帮助写句子。“这就是为什么在所有关键任务中,人工验证仍然至关重要。例如,ABBYY产品的验证环节强调了人的重要性。AI工具可以加快过程,但在当前状态下我们不能完全依赖它们。”
那么AI的用武之地在哪里?据ABBYY平台处理组负责人Vladimir Khil称,当前AI可以在许多其他应用开发活动中表现出色。
“想象一下,我们拥有一个私有的AI引擎,可以分析我们的代码,提供编码风格和高效算法的建议,甚至发现不可读的代码,而无需担心第三方技术的隐私问题,”他说。“这将改变游戏规则!”
AI还可以帮助编写测试脚本。“编写测试对开发人员来说可能很枯燥。但借助AI的力量,我们可以描述接口和场景,它就能轻松生成测试代码,”Khil说。
O'Reilly发布的一份关于低代码/无代码应用开发趋势的报告揭示了ChatGPT和GitHub Copilot等工具的使用情况。报告对739家组织进行了调查,最大的发现是只有33%的受访组织使用此类工具,而67%表示未使用。但O'Reilly的专家对此并不完全认同。
“我们怀疑这个估计低估了Copilot的实际使用率,”O'Reilly的Mike Loukides在报告中写道。实际数字可能远高于33%,正如20年前O'Reilly对CIO的调查显示开源软件的使用率远低于实际水平。“他们了解得太少了!”Loukides写道。“实际使用率可能远高于33%。我们确信,即使未在工作中使用Copilot或ChatGPT,许多程序员也在个人项目中尝试这些工具。”
有趣的是,这些工具并不像预期那样易用。调查发现培训是最大的挑战(34%),其次是易用性(12%)。
“这令人惊讶,因为这些工具本应是低代码或无代码的,”Loukides写道。“我们特别考虑GitHub Copilot、Amazon CodeWhisperer等代码生成器,但几乎所有的生产力工具都声称能简化生活。至少一开始显然并非如此。存在学习曲线,而且似乎比我们想象的更陡。”
数据表明,我们仍处于AI辅助编程的早期阶段。ChatGPT推出仅六个月,GitHub Copilot也才约18个月。Loukides表示,要高效使用这些工具,远不止注册账户那么简单。
另一个有趣的发现是这些AI工具对初级和资深程序员的益处不同。调查数据呈现混合结果:13%认为对资深程序员有用,11%认为对初级程序员有用(另有11%认为对任何人都无帮助,且未提高生产力)。
“普遍看法是Copilot对资深程序员更有优势,因为他们能更好地用复杂提示描述问题,并快速发现生成代码中的错误,”Loukides写道。“初级开发者则用它来学习,减少在Stack Overflow上查找解决方案或搜索在线文档的时间。资深开发者用它来帮助设计和构建系统,甚至生成生产代码。”
综上所述,AI正在改变应用开发,但人类创造力和判断力仍是关键。随着工具不断进化,开发者需要适应新的工作方式,掌握提示工程和代码审查等技能。未来,AI与人类协作将成为主流。