鼠标点击式编程历来是编程界的新趋势。简而言之,这是一种编程方法,将现成的代码模块组合起来、形成一个新的软件。不用说,这种编写程序的方法远非完美。首先,从事这种编程的程序员可能甚至不知道那些模块中有什么。这导致了两个基本问题:一是无意或有意的错误或缺陷(bug),二是无法正常运行的糟糕代码。
前者归因于模块可能针对不同的场景编写,会导致程序在有别于预定场景的场景中运行缓慢。如果是操作型负载,尤为如此。后者归结为这样事实:程序员查看代码块可能不够仔细,这为隐藏的后门允许黑客黑入系统埋下了隐患。如果缺少适当的测试,它们大部分时间不会被人注意到。
目前,我们拥有GitHub、Copilot、DeepMind和AlphaCode之类的开源代码库。它们充当代码数据库,人工智能(AI)可以使用它们来编译自己的代码。
AI在编程方面能提供什么帮助?
AI在这里可以做什么呢?首先,AI可以编写测试,分阶段对流行威胁进行建模。其次,AI可以编写自己的代码块,从含有数千个代码块(许多代码块不够好)的代码库编译适当的代码块。最终,这将节省时间和金钱。
视AI而定,有时AI可以自行编写优化的代码,这些代码在操作中清晰且高效。这种代码以后处理起来更容易,因为它编写得很好;如果将来需要实施某些更新,这将节省时间。此外,AI在通过某些参数调整代码数据库中的开源代码方面效率高得多。这使其能够迅速分析和过滤代码,并采用最佳实践以帮助创建将在产品中使用的节省操作资源的代码。
软件开发的另一个问题是对客户及其需求缺乏清晰的了解。由于工作范围和最终产品的具体细节缺乏明确性,程序员常常不得不进行解释。AI则让客户可以从目录中选择所需的参数,创建程序员和项目经理更容易理解的工作范围。
AI可以取代人类程序员吗?
这个问题的答案分两方面。AI可以在一定程度上取代人类程序员,处理复杂性有限的任务。如果您需要使用现有开源代码数据库就能复制的简单产品,可以轻松地依靠AI为您编写完整代码。但是面对大型项目,您不能依靠AI为自己做所有工作。在这种情况下,就只能依靠AI作为辅助工具,而不是负责整个开发过程。这意味着大型项目仍需要项目经理和专业人员来监督用户体验和前端等方面的工作。
AI 的智力能力在很大程度上不足以解决软件开发过程中出现的创造性任务,它也无法管理完成产品需要从事的创造性工作量具有的复杂性。但AI肯定会引发IT专家之间的竞争,因为它在基础任务(比如使用代码块)方面能够与IT专家一较高下。
原文标题:Can AI Put an End to Mouse-click Programming?,作者:Dmitry Mishunin