首页 >科技周边 >人工智能 >ChatGPT 与 Gemini:哪个 AI 聊天机器人更擅长编码?

ChatGPT 与 Gemini:哪个 AI 聊天机器人更擅长编码?

Lisa Kudrow
Lisa Kudrow原创
2024-12-13 16:32:46576浏览

摘要

  • ChatGPT 提供卓越的语言支持,涵盖大量新旧语言。
  • 与 Gemini 相比,ChatGPT 在编码任务方面可提供更高的准确性和代码质量。
  • ChatGPT 擅长调试、错误检测、上下文感知、问题解决和整体编程功能。

如果您陷入编程项目,您可能会寻找一个工具来帮助您集思广益、编写干净的代码或解释一个棘手的概念。你选择哪一个AI聊天机器人:快速信息丰富的Gemini,还是全面强大的ChatGPT?

​​

语言支持

说到语言支持,ChatGPT在广度和功能上胜过Gemini熟练程度。虽然 Gemini 官方支持大约 22 种流行的编程语言(包括 Python、Go 和 TypeScript),但 ChatGPT 的语言功能要广泛得多。

与 Gemini 不同,ChatGPT 没有官方支持的语言列表。然而,它不仅可以处理 Gemini 支持的流行语言,还可以处理数十种其他语言,从 TypeScript 和 Go 等较新的语言到 Fortran、Pascal 和 BASIC 等较旧的语言。

要测试它们的语言能力,我尝试使用 PHP、JavaScript、BASIC 和 C 等语言进行简单的编码任务。 Gemini 和 ChatGPT 在流行语言上都表现良好,但只有 ChatGPT 可以令人信服地将 BASIC 等较旧语言的程序串起来。

准确性和代码质量

您的项目截止日期已晚,您需要一些样板代码。您要求 ChatGPT 和 Gemini 生成代码来实现该功能,这两个工具都会生成数十行代码。快速获胜,对吧?

​​

但是您可以信任哪个工具的代码来提供您请求的功能?为了比较两个人工智能聊天机器人生成的代码的准确性和质量,我给了他们一个简单的编码任务来完成。我要求 Gemini 和 ChatGPT 使用 HTML、CSS 和 JavaScript 生成一个简单的待办事项列表应用程序。我没有提供任何底漆;我们的目标是了解两个聊天机器人在处理有限信息的情况下表现如何。

ChatGPT (GPT-4o) 生成的功能代码具有“足够好”的美感。使用ChatGPT的代码,您可以添加或删除任务。这是我在浏览器上运行 ChatGPT 后得到的结果:

Todo list app by OpenAI's ChatGPT (GPT-4o)

接下来,我让 Google 的 Gemini 重复同样的任务。 Gemini 还能够生成一个实用的待办事项列表应用程序。您还可以添加和删除任务,但整体设计不太吸引人:

Todo list app by Google's Gemini

我进行了第二次测试,这次要求两个聊天机器人重新创建 Twitter (X.com) feed。 ChatGPT 制作了一个复古风格的 Twitter feed,具有功能性的推文功能。我可以在文本框中输入内容,发送推文,然后将其动态加载到页面上。这不是我希望的 Twitter feed,但考虑到 ChatGPT 的大部分训练数据都充斥着旧版 Twitter 代码,结果是可以理解的。

Twitter (X.com) feed clone by ChatGPT-1

不幸的是,在这一轮中,Google 的 Gemini 无法提供功能代码。它生成了数百行 JavaScript 代码,但有太多占位符需要用缺失的逻辑来填充。如果您很赶时间,这种占位符较多的代码不会特别有用,因为它仍然需要大量的开发工作。在这种情况下,从头开始编写代码可能会更有效。

我尝试了一些其他基本编码任务,在所有情况下,ChatGPT 的解决方案显然是更好的选择。

调试和错误检测

错误和bug就像程序员又爱又恨的谜题。它们会让你发疯,但修复它们是非常令人满意的。因此,当您在代码中遇到错误时,您应该向 Gemini 或 ChatGPT 寻求帮助吗?这可能取决于您试图避免的错误类型

为了做出决定,我给两个人工智能聊天机器人提供了两个调试问题来解决。首先,我提示两个聊天机器人解决一些简单 PHP 代码中的逻辑错误。众所周知,逻辑错误比语法错误更难发现,因为它们取决于代码的意图:

PHP code with logical error

此屏幕截图中的代码可以运行,甚至在许多情况下会产生正确的结果。然而,它有几个逻辑错误,但这些错误并不能立即显现出来;你能发现它们吗?我向 Gemini 寻求帮助,不幸的是,聊天机器人无法找出代码中的逻辑错误:

Gemini fails to spot a logical error

双子座解决问题的三次尝试都没有准确。六个月前我尝试过类似的问题,结果同样令人失望;看来Gemini在这方面还没有进步。

然后我向ChatGPT寻求帮助,它立即指出了逻辑错误。

ChatGPT spots logical error in code

Gemini 还重写了代码来修复错误:

ChatGPT rewrites code to fix logical error

尝试了其他一些之后在寻找错误和修复任务方面,ChatGPT 显然更擅长这项工作。不过,双子座也并非完全失败。它能够修复我抛出的许多语法错误,但它难以解决复杂的错误,尤其是逻辑错误。

上下文感知

使用人工智能聊天机器人进行编码的最大挑战之一是它们相对有限的上下文感知。他们也许能够为明确定义的任务创建单独的代码片段,但很难为更大的项目构建代码库。

例如,假设您正在使用 AI 聊天机器人构建 Web 应用程序。你告诉它为你的注册和登录 HTML 页面编写代码,它做得非常完美。然后,您要求聊天机器人生成服务器端脚本来处理登录逻辑。这是一个简单的任务,但由于上下文感知有限,它最终可能会生成一个带有新变量和命名约定的登录脚本,这些新变量和命名约定与代码的其余部分不匹配。

哪个聊天机器人更擅长保留情境意识?我给这两个工具赋予了相同的编程任务:我们知道 ChatGPT 已经可以构建的聊天应用程序

自从 GPT-4 Turbo 及其 128k 上下文窗口到来以来,ChatGPT 的能力保留在较长一段时间内,更多的背景显着增加。当我第一次使用 4k 上下文窗口 GPT-4 通过 ChatGPT 构建聊天应用程序时,进展相对顺利,仅发生了一些偏离上下文的小事件。

2023 年 11 月使用 128k GPT-4 重新创建了相同的项目Turbo 在情境感知方面表现出显着改善。六个月后,即 2024 年 5 月,上下文感知没有任何重大变化,但也没有恶化。

不幸的是,当我第一次在同一个项目上尝试 Gemini(当时称为 Bard)时,它失败了跟踪项目的上下文并未能完成应用程序。几轮更新之后,我在同一个项目上重新测试了Gemini,它似乎进一步恶化了。因此,在上下文感知方面,ChatGPT 再次获胜。

解决问题

在这一点上,Google的Gemini还有很多不足。但最终能否取得胜利呢?我们来测试一下它解决问题的能力。有时您只是遇到问题,但不确定如何以编程方式表示它,更不用说如何解决它了。

在这些情况下,像 Gemini 和 ChatGPT 这样的聊天机器人可以派上用场。我要求他们俩“编写一段 JavaScript 代码来计算特定单词在文本中出现的次数。

这是 Google Gemini 的结果:

Gemini fails to make an optimized Javascript function

这是 ChatGPT 的结果:

ChatGPT attempts to create a function to count words in a text segment

乍一看,这两种方法看起来都相当可靠。双子座的做法甚至看起来简洁。然而,ChatGPT 的代码采用更稳健、更准确的方法来计算文本中单词的出现次数。它考虑单词边界和区分大小写,正确处理标点符号,并提供更可靠的结果。 ChatGPT 再次表现出色。

ChatGPT 的方法将输入文本拆分为单词,其方式可以处理所有非单词字符(如标点符号)和特殊字符(如单词分隔符)。同时,Gemini 只将空格视为分隔符。如果文本在单词中包含标点符号或其他非单词字符,或者单词没有用空格字符分隔,则此方法可能会失败。

因为 Google Gemini 在我用于比较的每个指标中都几乎丢失了,我决定给它一个救赎的机会。我问聊天机器人“哪个编码能力更好?ChatGPT 和 Gemini?”这是它的回复:

Gemini answers a question about itself

似乎我部分同意!我询问 ChatGPT 对评估的看法,它同意:

ChatGPT agrees with Gemini's assessement of its abilities

现在,虽然这看起来很正常,但这里有一个有趣的转折。在去年的大部分时间里,Gemini(当时的巴德)总是自信地声称它可以生成更好的代码,效率更高,并且犯的错误更少。这是我在 2023 年 11 月进行的一项测试的屏幕截图:

Google Bard boast of being better than ChatGPT

看来双子座现在多了一点有自知之明且谦虚!

编程功能

ChatGPT 和 Gemini 都没有专门用于编程的主要功能。然而,如果您知道如何有效地使用它们,这两个聊天机器人都具有可以显着提高您的编程体验的功能。

ChatGPT 提供了一系列功能,可以在使用聊天机器人时简化编程过程。内存和自定义 GPT 等有用的附加功能可让您根据您的特定编程需求自定义 ChatGPT。

例如,自定义 GPT 功能可以帮助您通过上传相关文件为特定项目创建专用的 ChatGPT 迷你版本。这使得调试代码、优化和添加新功能等任务变得更加简单。总体而言,与 Google 的 Gemini 相比,ChatGPT 包含更多可以增强您的编程体验的功能。

ChatGPT 独树一帜

Google 的 Gemini 有享受了很多炒作,所以看到它与 ChatGPT 相比到底有多少缺陷可能会让人感到惊讶。虽然 ChatGPT 显然占据了领先地位,但您可能会认为 Google 的大量资源会帮助它削弱这一优势。

尽管有这些结果,但将 Gemini 视为编程辅助工具是不明智的。虽然它不如 ChatGPT 那么强大,但 Gemini 仍然具有强大的冲击力,并且正在快速发展。

以上是ChatGPT 与 Gemini:哪个 AI 聊天机器人更擅长编码?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn