共计 2320 个字符,预计需要花费 6 分钟才能阅读完成。
在过去的一年里,我们已经了解到 ChatGPT 可以编写代码。我让它进行了一些 PHP 和 WordPress 的测试,展示了其编码能力的强项和弱项。
但 ChatGPT 的编码知识究竟有多广泛?在 2023 年初,我针对 O ’Reilly Media 的 2023 年流行度排名中的 12 种最流行的语言进行了经典的“Hello, world”编程任务测试。
由于“Hello, world”通常可以用一行代码编写,我在测试中增加了一点难度,要求 ChatGPT 输出“Hello, world”十次,每次递增一个计数值。我还要求它检查时间,并在每次序列开始时输出“Good morning”、“Good afternoon”或“Good evening”。
这让我们可以看到程序流程和一些内在功能,同时仍然保持代码足够小,以便我可以在这篇文章中包含十几个截图。
以下是提示:
编写一个程序,使用____语言根据俄勒冈州的时间输出“Good morning”、“Good afternoon”或“Good evening”,然后输出十行包含循环索引(从 1 开始)、一个空格和“Hello, world!”的内容。
对于每种编程语言,我还要求 ChatGPT 描述其主要用途。以下是我用于此查询的提示:
对于以下每种语言,写一句描述其主要用途和区别特征的句子:Java、Python、Rust、Go、C++、JavaScript、C#、C、TypeScript、R、Kotlin、Scala。
现在,让我们来看看每种语言。
1. Java
ChatGPT 将 Java 描述为:“一种通用语言,主要用于构建桌面、网络和移动应用程序,以其‘一次编写,到处运行’的理念而闻名。”
Java 最初由 Sun Microsystems 开发,但当 Oracle 收购 Sun 时,Oracle 也收购了 Java。虽然 Java 规范是开放的,但该语言归 Oracle 所有。这导致多年来出现了一些惊人的法律纠纷。
2. Python
ChatGPT 将 Python 描述为:“一种通用语言,用于数据分析、人工智能、网络开发和自动化,以其可读性和易用性而闻名。”
我的建议是:如果你计划学习编码以进行 AI 应用,学习 Python。几乎所有 AI 代码都有紧密的 Python 集成。
3. Rust
ChatGPT 将 Rust 描述为:“一种系统编程语言,用于构建高性能和可靠的软件,以其内存安全和线程安全保证而闻名。”
4. Go
ChatGPT 将 Go 描述为:“一种系统编程语言,用于构建可扩展和高效的网络和服务器应用程序,以其简单性和内置的并发功能而闻名。”
Go 是开源的,但它由 Google 管理。
5. C++
ChatGPT 将 C ++ 描述为:“一种系统编程语言,用于构建操作系统、游戏引擎和高性能应用程序,以其对硬件和内存的控制而闻名。”
6. JavaScript
ChatGPT 将 JavaScript 描述为:“一种客户端脚本语言,用于构建交互式网络应用程序,以其广泛用于网络开发和能够在网络浏览器中运行的能力而闻名。”
7. C#
ChatGPT 将 C# 描述为:“一种通用语言,用于构建 Windows 桌面应用程序、游戏和网络应用程序,以其面向对象的特性和与.NET 框架的集成而闻名。”
C# 是微软提供的专有语言。我在加州大学伯克利分校扩展课程中教授它超过十年。对于任何希望在主要使用微软环境编程的人来说,它是一种非常有趣的入门语言。
8. C
ChatGPT 将 C 描述为:“一种系统编程语言,用于构建操作系统、嵌入式系统和高性能应用程序,以其效率和低级控制而闻名。”
C 将永远是我最初的语法之爱。
9. TypeScript
ChatGPT 将 TypeScript 描述为:“JavaScript 的超集,用于构建大规模网络应用程序,以其可选的静态类型和高级语言特性而闻名。”
TypeScript 也是微软的产品,但与 C# 不同,它是开源且非专有的。
10. R
ChatGPT 将 R 描述为:“一种用于统计计算和数据分析的语言,以其强大的数据操作和可视化能力而闻名。”
11. Kotlin
ChatGPT 将 Kotlin 描述为:“一种通用语言,用于构建 Android 应用程序、服务器端应用程序和网络应用程序,以其简洁性和与 Java 的互操作性而闻名。”
Kotlin 由 JetBrains 开发,这是一家小公司,也制作 PhpStorm,我目前最喜欢的开发环境。
12. Scala
ChatGPT 将 Scala 描述为:“一种用于构建可扩展和分布式应用程序的语言,以其对函数式编程的支持和与 Java 虚拟机的集成而闻名。”
另外,注意 Scala 的输出(如上所示)。我从未用 Scala 编程过,对它了解不多。ChatGPT 似乎也不了解,因为尽管 AI 为所有其他语言提供了语法高亮,但它似乎没有 Scala 的语法高亮信息。
最后的思考(和一点 Forth)
作为一个计算机语言迷,我发现这个练习非常有趣。话虽如此,有一些事情需要记住。首先,我没有测试所有代码。测试这么多输出超出了本文的范围。话虽如此,我确实阅读了生成的代码,对于大多数语言来说,代码看起来不错。
当我上次运行这些测试时,几乎一年前,ChatGPT 几乎做对了所有事情(尽管有上述免责声明)。然而,当被要求用 Forth(一种非常有趣但古怪的语言)生成代码时,它生成的代码看起来像 Forth,但窗口标签为“Perl”。它绝对没有生成 Perl。
然而,这次它生成了 Forth(冒号是一个明显的线索)并正确标记了它。与上面的 Scala 一样,ChatGPT 似乎没有 Forth 的语法高亮表,但除此之外,它似乎做得很好。
与我和 ChatGPT 一起进行的其他编码探索一样,我既印象深刻又保持警惕。我的建议依然有效:将其作为工具使用,但要测试、测试、再测试。