明天屬於今天擁抱它的人
ChatGPT為我用12種頂尖編程語言編寫日常程式。結果告訴我什麼?
ChatGPT因其編程能力而廣為人知,但當面對12種語言的測試時,它能表現得如何呢?答案是:相當不錯。
撰文:David Gewirtz,高級貢獻編輯
2024年11月18日,太平洋時間上午5:00
審核:Alyson Windsor
目錄
1. Java
2. Python
3. Rust
4. Go
5. C++
6. JavaScript
7. C#
8. C
9. TypeScript
10. R
11. Kotlin
12. Scala
最終想法(以及一點Forth)
過去一年,我們都了解到ChatGPT可以編寫代碼。我在PHP和WordPress上進行了一系列測試,展示了ChatGPT的編程能力的優勢與劣勢。
但ChatGPT的編程知識究竟有多廣泛?在2023年初我最初草擬這篇文章時,我對O’Reilly Media 2023年最受歡迎的12種編程語言進行了經典的「Hello, world」編程任務測試。
隨著時間的推移,我們對編程語言的受歡迎程度進行了大量分析,但即使是2024年末的更新,我仍然堅持使用我們測試的這12種語言。儘管這12種語言中有些並不是特別流行,但它們仍然是當前使用中的語言。這一選擇讓我們能夠很好地了解ChatGPT如何處理多種編程語言。
由於「Hello, world」通常可以用一行代碼編寫,我增加了一些變化,讓ChatGPT每次輸出「Hello, world」十次,每次遞增計數器值。我還要求它檢查時間,並以「早上好」、「下午好」或「晚上好」開始每個序列。
這樣可以讓我們了解程序流及一些內部函數,但仍然保持代碼簡潔,以便我能在這篇文章中包含十二個截圖。
這是我的提示:
在____中編寫一個程序,根據俄勒岡的當前時間輸出「早上好」、「下午好」或「晚上好」,然後輸出十行內容,包括循環索引(從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時,也收購了Java。雖然Java規範是開放的,但該語言由Oracle擁有,這導致了多年的法律糾紛。
2. Python
ChatGPT將Python描述為:「一種通用語言,用於數據分析、人工智能、網絡開發和自動化,以其可讀性和易用性而聞名。」
我的建議是:如果你打算學習用於AI應用的編程,學習Python幾乎是必須的。幾乎所有的AI代碼都有緊密的Python集成。
3. Rust
ChatGPT將Rust描述為:「一種系統編程語言,用於構建高性能和可靠的軟件,以其內存安全和線程安全的保證而聞名。」
4. Go
ChatGPT將Go描述為:「一種系統編程語言,用於構建可擴展和高效的網絡及服務器應用程序,以其簡單性和內置的並發特性而聞名。」
5. C++
ChatGPT將C++描述為:「一種系統編程語言,用於構建操作系統、遊戲引擎和高性能應用程序,以其對硬件和內存的控制能力而聞名。」
6. JavaScript
ChatGPT將JavaScript描述為:「一種客戶端腳本語言,用於構建互動式網絡應用程序,以其在網絡開發中的廣泛使用及在網絡瀏覽器中運行的能力而聞名。」
7. C#
ChatGPT將C#描述為:「一種通用語言,用於構建Windows桌面應用程序、遊戲和網絡應用程序,以其面向對象的特性和與.NET框架的集成而聞名。」
C#是微軟提供的一種專有語言。我在加州大學伯克利分校的延伸部教授了十多年。它對於希望在以微軟環境為主的工作中找到編程工作的人來說,是一種非常有趣的入門語言。
8. C
ChatGPT將C描述為:「一種系統編程語言,用於構建操作系統、嵌入式系統和高性能應用程序,以其效率和低級控制而聞名。」
他們說你永遠不會忘記你的初戀。在木船和鐵程序員的年代自學C編程之前,我從未真正愛過任何編程語言。但當我開始使用C時,我的世界改變了。這種語言的簡潔性深深地吸引了我。或許這是多餘的分享,但這也是事實。C將永遠是我語法上的初戀。
9. TypeScript
ChatGPT將TypeScript描述為:「JavaScript的超集,用於構建大規模網絡應用程序,以其可選的靜態類型和先進的語言特性而聞名。」
10. R
ChatGPT將R描述為:「一種用於統計計算和數據分析的語言,以其強大的數據處理和可視化能力而聞名。」
11. Kotlin
ChatGPT將Kotlin描述為:「一種通用語言,用於構建Android應用程序、服務器端應用程序和網絡應用程序,以其簡潔性和與Java的互操作性而聞名。」
Kotlin由JetBrains開發,這是一家小公司,還製作了我目前最喜歡的開發環境PhpStorm。
12. Scala
ChatGPT將Scala描述為:「一種用於構建可擴展和分佈式應用程序的語言,以其對函數式編程的支持和與Java虛擬機的集成而聞名。」
值得注意的是,Scala的輸出(如上所示)。我從未在Scala中編程,也不太了解它。ChatGPT似乎也不太了解,因為雖然它為所有其他語言提供了語法著色,但對於Scala卻沒有。
最終想法(以及一點Forth)
作為一名電腦語言愛好者,我覺得這個實驗非常有趣。需要注意的是,我並沒有測試所有代碼。測試這麼多輸出超出了這篇文章的範疇。儘管如此,我還是仔細閱讀了生成的代碼,對於大多數語言來說,代碼看起來不錯。
當我在將近一年前進行這些測試時,ChatGPT幾乎把所有東西都做對了(儘管上述聲明)。然而,當要求生成Forth代碼時(這是一種非常有趣但又古怪的語言),它生成了看起來像Forth的代碼,但標籤窗口卻是「Perl」。它顯然沒有生成Perl。
不過這次,它成功生成了Forth(冒號是明顯的標誌),並正確標記。與上面的Scala一樣,ChatGPT似乎沒有Forth的語法著色表,但總的來說,它似乎表現良好。
作為對ChatGPT和編程的再次探索,我感到驚訝,但同時也保持警惕。我的建議是:將其作為工具使用,但一定要測試、測試、再測試。
在社交媒體上,您可以關注我的日常項目更新。記得在Twitter上關注我@DavidGewirtz,在Facebook上關注Facebook.com/DavidGewirtz,在Instagram上關注Instagram.com/DavidGewirtz,在YouTube上關注YouTube.com/DavidGewirtzTV。
—
這篇文章展示了ChatGPT在編程方面的潛力,尤其是在多種語言的處理上,這不僅顯示了其靈活性,也反映出AI在編程教育和實際開發中的應用前景。隨著技術的進步,AI可能在未來成為程序員不可或缺的助手,幫助他們提高效率和創造力。然而,我們也應保持批判性思維,積極測試和驗證AI生成的代碼,以確保其準確性和安全性。這對於任何一位正在進行編程工作的開發者來說,都是至關重要的。
以上文章由特價GPT API KEY所翻譯及撰寫。而圖片則由FLUX根據內容自動生成。