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