如果您陷入程式設計項目,您可能會尋找一個工具來幫助您集思廣益、編寫乾淨的程式碼或解釋一個棘手的概念。你選擇哪一個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 後得到的結果:
接下來,我讓 Google 的 Gemini 重複同樣的任務。 Gemini 還能夠產生一個實用的待辦事項清單應用程式。您也可以新增和刪除任務,但整體設計不太吸引人:
我進行了第二次測試,這次要求兩個聊天機器人重新創建 Twitter (X.com) feed。 ChatGPT 製作了一個復古風格的 Twitter feed,具有功能性的推文功能。我可以在文字方塊中輸入內容,發送推文,然後將其動態載入到頁面上。這不是我希望的 Twitter feed,但考慮到 ChatGPT 的大部分訓練資料都充斥著舊版 Twitter 程式碼,結果是可以理解的。
不幸的是,在這一輪中,Google 的 Gemini 無法提供功能代碼。它產生了數百行 JavaScript 程式碼,但有太多佔位符需要用缺少的邏輯來填充。如果您很趕時間,這種佔位符較多的程式碼不會特別有用,因為它仍然需要大量的開發工作。在這種情況下,從頭開始編寫程式碼可能會更有效。
我嘗試了一些其他基本編碼任務,在所有情況下,ChatGPT 的解決方案顯然是更好的選擇。
錯誤和bug就像程式設計師又愛又恨的謎題。它們會讓你發瘋,但修復它們是非常令人滿意的。因此,當您在程式碼中遇到錯誤時,您應該向 Gemini 或 ChatGPT 尋求協助嗎?這可能取決於您試圖避免的錯誤類型。
為了做出決定,我給兩個人工智慧聊天機器人提供了兩個除錯問題來解決。首先,我提示兩個聊天機器人解決一些簡單 PHP 程式碼中的邏輯錯誤。眾所周知,邏輯錯誤比語法錯誤更難發現,因為它們取決於程式碼的意圖:
此螢幕截圖中的程式碼可以運行,甚至在許多情況下會產生正確的結果。然而,它有幾個邏輯錯誤,但這些錯誤並不能立即顯現出來;你能發現它們嗎?我向Gemini 尋求幫助,不幸的是,聊天機器人無法找出程式碼中的邏輯錯誤:
雙子座解決問題的三次嘗試都沒有準確。六個月前我嘗試過類似的問題,結果同樣令人失望;看來Gemini在這方面還沒有進步。
然後我向ChatGPT尋求幫助,它立即指出了邏輯錯誤。
Gemini 也重寫了程式碼來修復錯誤:
使用人工智慧聊天機器人進行程式設計的最大挑戰之一是它們相對有限的上下文感知。他們也許能夠為明確定義的任務創建單獨的程式碼片段,但很難為更大的專案建立程式碼庫。
例如,假設您正在使用 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 的結果:
這是ChatGPT 的結果:
乍一看,這兩種方法看起來都相當可靠。雙子座的做法甚至看起來簡潔。然而,ChatGPT 的程式碼採用更穩健、更準確的方法來計算文字中單字的出現次數。它考慮單字邊界和區分大小寫,正確處理標點符號,並提供更可靠的結果。 ChatGPT 再次表現出色。
ChatGPT 的方法將輸入文字拆分為單詞,其方式可以處理所有非單字字元(如標點符號)和特殊字元(如單字分隔符號)。同時,Gemini 只將空格視為分隔符號。如果文字在單字中包含標點符號或其他非單字字符,或者單字沒有用空格字符分隔,則此方法可能會失敗。
因為 Google Gemini 在我用於比較的每個指標中都幾乎丟失了,我決定給它一個救贖的機會。我問聊天機器人「哪個編碼能力比較好?ChatGPT 和 Gemini?」這是它的回覆:
似乎我部分同意!我問ChatGPT 對評估的看法,它同意:
現在,雖然這看起來很正常,但這裡有一個有趣的轉折。在去年的大部分時間裡,Gemini(當時的巴德)總是自信地聲稱它可以產生更好的程式碼,效率更高,並且犯的錯誤更少。這是我在2023 年11 月進行的一項測試的螢幕截圖:
ChatGPT 和 Gemini 都沒有專門用於程式設計的主要功能。然而,如果您知道如何有效地使用它們,這兩個聊天機器人都具有可以顯著提高您的程式設計體驗的功能。
ChatGPT 提供了一系列功能,可以在使用聊天機器人時簡化程式設計流程。記憶體和自訂 GPT 等有用的附加功能可讓您根據您的特定程式需求自訂 ChatGPT。
例如,自訂 GPT 功能可協助您透過上傳相關檔案為特定專案建立專用的 ChatGPT 迷你版本。這使得調試程式碼、優化和添加新功能等任務變得更加簡單。整體而言,與 Google 的 Gemini 相比,ChatGPT 包含更多可以增強您的程式設計體驗的功能。
Google 的Gemini 有享受了很多炒作,所以看到它與ChatGPT 相比到底有多少缺陷可能會讓人感到驚訝。雖然 ChatGPT 顯然佔據了領先地位,但您可能會認為 Google 的大量資源會幫助它削弱這一優勢。
儘管有這些結果,但將 Gemini 視為程式輔助工具是不明智的。雖然它不如 ChatGPT 強大,但 Gemini 仍然具有強大的衝擊力,並且正在快速發展。
以上是ChatGPT 與 Gemini:哪個 AI 聊天機器人比較擅長程式設計?的詳細內容。更多資訊請關注PHP中文網其他相關文章!