譯者 | 崔皓
策劃 | 云昭
51CTO讀者成長計劃社群招募,咨詢小助手(微信號:CTOjishuzhan)
眾所周知ChatGPT可以寫代碼,但當有一堆語言一起拋向它時,它的表現如何呢?答案是:還不錯(但并不完美)。
在過去的幾個月里,我們已經領教了ChatGPT的編碼能力。我對它進行了PHP和WordPress的測試,結果也反應出了ChatGPT編程的優缺點。
一、ChatGPT的編程知識能力有多強?
在本文中,我們將對O'Reilly Media 2023年受歡迎程度排名中的12種流行語言進行“Hello, world”編程測試。
在測試中對 “Hello, world”編碼進行了一些調整,加入一些變化:讓ChatGPT輸出“Hello, world”十次,每次遞增一個計數器值。我還要求它檢查時間并在每個序列開始時輸出“早上好”、“下午好”或“晚上好”。
這樣的調整,在保證代碼量不大的情況下,我們可以了解程序流程和函數調用情況,每種編程語言我都會將ChatGPT的代碼輸出進行截屏展示。
這里是我使用的ChatGPT提示:
在____中編寫一個程序,根據俄勒岡州的時間輸出“早上好”、“下午好”或“晚上好”,然后輸出十行包含循環索引(從1開始)、一個空格,然后是“Hello, world!”的詞語。
同時,對于每種編程語言,我還要求ChatGPT描述其主要用途。這是我用于此查詢的提示:
對于以下每種語言,編寫一個簡短的描述,說明其主要用途和區別因素:Java,Python,Rust,Go,C ++,JavaScript,C#,C,TypeScript,R,Kotlin,Scala。
現在,讓我們來看看ChatGPT對于不同編程語言的駕馭能力吧。
1.Java
ChatGPT將Java描述為“一種通用語言,主要用于構建桌面、Web和移動應用程序,并以其“編寫一次,隨處運行”的理念而聞名。”
Java最初由Sun Microsystems開發,但是當Oracle收購了Sun時,它也收購了Java。雖然Java規范是開放的,但這種語言歸Oracle所有。這導致了多年來一些驚人的法律爭端。
以下是ChatGPT的代碼:
2.Python
ChatGPT將Python描述為“一種通用語言,用于數據分析、人工智能、Web開發和自動化,以其易讀性和易用性而著稱。”
我的建議:如果你計劃學習為AI應用編寫代碼,請學習Python。幾乎所有AI代碼都緊密集成了Python。
以下是ChatGPT的代碼:
3.Rust
ChatGPT描述Rust為:“一種系統編程語言,用于構建高性能和可靠的軟件,以其內存安全性和線程安全性保證而著稱。”
以下是ChatGPT生成的Rust代碼:
4.Go
ChatGPT描述Go為“一種系統編程語言,用于構建可擴展和高效的網絡和服務器應用程序,以其簡單性和內置并發功能而聞名。”
Go是開源的,但由Google管理。
以下是ChatGPT的代碼:
5.C++
ChatGPT將C++描述為“用于構建操作系統、游戲引擎和高性能應用程序的系統編程語言,以其對硬件和內存的控制而聞名。”
以下是ChatGPT生成的C++代碼:
6.JavaScript
ChatGPT將JavaScript描述為“一種客戶端腳本語言,用于構建交互式Web應用程序,以其廣泛用于Web開發和在Web瀏覽器中運行的能力而聞名。”
以下是ChatGPT的代碼:
7.C#
ChatGPT描述C#為“一種通用語言,用于構建Windows桌面應用程序、游戲和Web應用程序,并以其面向對象的特性和與.NET框架的集成而聞名。”
同時,C#是由Microsoft提供的專有語言。我在加州大學伯克利分校擴展課程中教授了十多年的C#。對于想要在主要面向Microsoft環境編程工作的人來說,它是一個非常有趣的門戶語言。
這是ChatGPT的代碼:
8.C
ChatGPT將C描述為“一種用于構建操作系統、嵌入式系統和高性能應用程序的系統編程語言,以其效率和低級別控制而聞名”。
他們說你永遠不會忘記你的初戀。在木制船只和鐵打程序員的時代,我自學了C語言編程,從此我就真正喜歡上了一門編程語言。但是當我開始使用C并且我的世界改變時,它就是我的愛。這門語言簡潔而簡單,從深層次和原始層面上對我說話。這可能有些過度分享了,但也是真的。C永遠是我的第一種語法之愛。
這是ChatGPT的代碼:
9.TypeScript
ChatGPT 將 TypeScript 描述為“JavaScript 的超集,用于構建大規模的 Web 應用程序,并以其可選的靜態類型和先進的語言特性而聞名。”
TypeScript 也是 Microsoft 的產品,但與 C# 不同,它是開源和非專有的。
ChatGPT 的代碼如下:
10.R
ChatGPT將R描述為“一種用于統計計算和數據分析的語言,以其強大的數據操作和可視化能力而聞名。”
以下是ChatGPT的代碼:
11.Kotlin
ChatGPT將Kotlin描述為“一種通用語言,用于構建Android應用程序、服務器端應用程序和Web應用程序,以其簡潔性和與Java的互操作性而聞名。”
Kotlin是由JetBrains開發的,這是一家小公司,也是我目前最喜歡的開發環境PhpStorm的開發者。
ChatGPT的代碼如下:
12.Scala
ChatGPT將Scala描述為“一種用于構建可擴展和分布式應用程序的語言,以及因其對函數式編程的支持和與Java虛擬機的集成而聞名。”
以下是ChatGPT的代碼:
二、最后的想法
作為一名計算機語言愛好者,我覺得這個練習非常有趣。不過,需要聲明的是。首先,我沒有測試所有的代碼。測試這么多輸出超出了本文的范圍。盡管如此,我確實瀏覽了生成的代碼,并且對于大多數語言來說,代碼看起來都不錯。
譯者介紹
崔皓,51CTO社區編輯,資深架構師,擁有18年的軟件開發和架構經驗,10年分布式架構經驗。