4个原因说明AI无法取代开发人员

ChatGPT中文站
Unemployed Developer

前几天在工作中,我和我的队友们正在讨论像ChatGPT这样的AI工具,有普遍的共识认为它们可以代替我们。随着ChatGPT4的发布,许多开发人员担心这是时候让软件被完全由AI工具编写了,他们将被完全替换。或者至少,很有可能人们将使用AI生成满足特定需求的代码。我倾向于不同意这两个说法。这是我提出的4个主要原因:

1. 代码代表了需求的细节,不能被替代。

ChatGPT中文站
Imagine Letting AI Into This Mess

想一想,一段代码代表什么?它不仅仅是执行某个任务A的一些机器代码。代码代表着为了解决一个特定的问题,在特定的要求下采取的最小化努力。

任何有几个项目经验的开发人员都知道将客户需求翻译成代码是多么困难。有许多层面,有多个迭代,直到你做到“正确”。

保持代码需要有一些先见之明,而代码和清洁的代码之间存在巨大的差异。仅仅写出干净的代码并不足以使其易于维护。系统的设计可以决定软件的成败。所有这些都需要批判性思维和注重细节,这是很难用人工智能工具来实现的。有人可能会争辩说:“那又怎样?如果整体设计需要更改,我们可以从头开始重新编写代码。”。是的,你可以这样做,但这对任何实际软件都不适用。你不能指望软件在你把它扯开并重新构建时能够同样工作。这将影响用户体验,也可能导致一系列错误。

今天的编程员将成为明天的“非编程”专业人士。

ChatGPT中文站
Image by Jerry Kimbrell from Pixabay

假设人工智能足够先进,可以应对我们上面提到的所有缺陷。但是你现在还没有任何需要担心的地方。随着足够的经验,你将逐渐将自己的角色从编码转移到更高层次的非开发人员角色(团队领导、软件架构师、软件经理等)。

无论人工智能能做什么都是无关紧要的,因为就我们今天所了解的人工智能而言,它很难解决决策问题,而这正是人类所擅长的。

3. 人工智能无法做出良好的设计决策。

ChatGPT中文站
Image by Gerd Altmann from Pixabay

无论何时你个尝试解决一个问题,软件开发人员的工作就是询问自己这个问题有哪些可能的解决方案,然后审查这些方案以理解哪个方案可能是最佳的,并作出决策。像ChatGPT或GitHub CoPilot这样的AI工具无法像这样做出决策。它可以给出不同的解决方案(可能有效,也可能无效),但你得自己决定走哪条路。

如我在第一点中暗示的那样,好的设计需要批判性思维,这是人工智能无法实现的,在不久的将来也无法实现。

4. 不能盲目地信任人工智能。

ChatGPT中文站
ChatGPT can ask you to go to sleep if you ask to optimize code

用人工智能生成代码和了解代码的含义之间存在着很大的差异。你仍然需要对编程语言和算法有深入的了解,才能知道人工智能生成的代码是否正确。

当然,您可以随时创建测试来验证代码是否按预期工作。但是,正如您已经知道的那样,仅进行黑盒测试后无法通过代码,必须在批准拉取请求之前审查每行代码。

有很多互联网上的例子证明了ChatGPT完全是错的,比如说。ChatGPT是根据可用的数据集进行训练的。ChatGPT不知道它是对还是错。给定数据集,它会提供一个带有置信度百分比的解决方案。这并不意味着ChatGPT总是错的,但也意味着它不能总是正确的。这也适用于其他类似的AI工具,如谷歌的Bard和GitHub的CoPilot。

要明确的是,我并不是说人工智能是无用的,它是一种革命性的工具,可以辅助软件开发人员和其他专业人士。虽然它不能取代我们,但它会补充我们的工作并提高我们的生产力。让我们保持冷静,尝试在我们的工作中整合这些不可思议的工具,让自己成为更好的开发人员。

干杯!愉快地编码吧!

2023-10-20 16:45:30 AI中文站翻译自原文