我們已經進入了廣泛採用和民主化獲取生成 AI 產品的時代。 用例無處不在——從生成圖像到編寫代碼——而且採用速度超過了過去十年的每一種消費技術趨勢。 在 Image Generation 中,MidJourney 的 Discord 成員已增長到約 1300 萬,而據報導,ChatGPT 的使用者已超過 1 億。 軟體發展人員的用例也在爆炸式增長——截至 9 月,超過 120 萬開發人員使用了 GitHub Copilot 的技術預覽版。 ChatGPT 還出人意料地擅長編寫應用程式——從根據文本提示生成完整代碼(儘管通常有很多錯誤)到錯誤修復代碼。
隨著模型和訓練集越來越適合程式設計任務,我們預計大型語言模型的編碼能力會隨著採用率的提高而提高。 有跡象表明 OpenAI 正在關注這一潛力,有報導稱他們已經聘請了約 400 名開發人員作為承包商來説明標記代碼以訓練他們的下一代模型。 雖然我們不希望這些產品很快取代軟體發展人員,但我們確實希望它們能顯著提高生產力並讓開發人員專注于更困難的問題。
迄今為止的進展表明,生成式 AI 模型可能會成為開發人員編寫、調試和優化代碼能力的必備工具。 他們已經開始改變編寫、審查和改進代碼的方式。 借助高級演算法,這些模型可以分析現有代碼中的模式並生成針對可讀性、效率和無錯誤執行進行了優化的新代碼行。 這可以節省開發人員的時間,還可以提高所生成代碼的品質。 生成式人工智慧還可以通過自動識別潛在問題和改進、安全性漏洞、提高代碼性能的替代方法以及説明團隊維護高品質的代碼庫來協助代碼審查。 通過自動執行一些繁瑣和重複的編碼任務,這些工具有可能提高生產力。
在目前的狀態下,基於人工智慧的程式設計工具並非完美無缺,而是在迅速改進。 雖然生產率的提高對大企業和小企業都是一樣的,但它改變了遊戲規則,特別是對小企業、獨立開發者和專業人士而言。 這些工具在降低進入新創業企業的障礙和成本方面可能特別有影響力和益處。
軟體發展的未來可以看到人類與 AI 之間的協作,其中 AI 充當導師,指導開發人員完成代碼編寫過程並確保他們走在正確的軌道上。 憑藉學習和適應能力,生成式 AI 在編碼方面的潛力令人興奮且無限。
本文深入回顧了當前為代碼完成、生成、調試和性能改進而設計的人工智慧程式設計工具。 這些工具分為流行的、即將推出的或新的,使使用者能夠根據他們的需求、預算和專案複雜性選擇最適合的工具。
1、ChatGPT
ChatGPT 是 OpenAI 的一種高級自然語言處理模型,風靡全球。 ChatGPT 是從 GPT-3.5 系列中的一個模型微調而來的。 這是一個具有 175B 個參數的 Transformer 神經網路。 它通過提供簡單的文本提示來説明開發人員進行編碼,這些提示利用上下文、代碼範本和程式設計知識來説明完成代碼、生成、優化、文檔、性能、更正和解釋。 利用其高級功能,ChatGPT 可以分析原始程式碼並提供對編碼語言的見解、解決編碼問題以及軟體發展建議。
ChatGPT 可以通過分析代碼並在理解代碼的行為和功能的基礎上建議測試用例來説明開發人員編寫單元測試。 這可以顯著減少編寫單元測試所需的時間和精力,並提高其準確性。 此外,ChatGPT 可以提供回饋和建議以提高代碼品質並幫助開發人員更好地理解錯誤或改進。
雖然 ChatGPT 是用於各種程式設計任務的有用工具,但它不能取代開發人員。 它不能用於學習如何編碼,也不能替代良好的編碼習慣。 相反,它是提高生產力和產量的補充。 ChatGPT 是一個可以幫助開發人員的強大工具。
優點:
· ChatGPT 充當代碼完成、優化、性能、糾正和解釋的導師。
· 它可以提供對代碼設計和結構的見解。
· 它可以説明識別可能需要重構、簡化、審查或改進的領域。
· 它可以通過分析代碼並提供解釋和注釋來生成原始程式碼文檔。
缺點:
· ChatGPT 缺乏對代碼的內在理解,但可以識別正確的代碼結構。
· 改寫提示可能會導致不同的結果。
· 培訓資料僅限於 2021 年,限制了其範圍。
· 該工具可能不是生成需要大量上下文的代碼的理想選擇。
類別:代碼生成、代碼完成、代碼優化
價格:免費或 20 美元/月
2、Copilot
Copilot是一個12B參數的Transformer模型。
GitHub Copilot 是一個人工智慧驅動的結對程式設計編輯器,旨在幫助開發人員更快、更高效地工作。 它使用 OpenAI Codex 在開發人員編寫注釋或代碼行時將自然語言轉換為編碼提示。 當開發人員編寫描述他們所需邏輯的評論時,GitHub Copilot 可以自動為他們的解決方案生成代碼建議。 此外,它可以通過調整他們的編輯來適應開發人員的編碼風格。 從本質上講,它是開發人員的智慧自動完成工具。
此代碼完成解決方案與大量程式設計語言和框架相容,包括 Python、Java、JavaScript、TypeScript、Ruby 和 Go。 它可以用作流行代碼編輯器的擴展,例如 Visual Studio Code、Neovim 和 JetBrains。 該擴展可在桌面上使用,也可用於基於雲的解決方案,例如 GitHub Codespaces。
GitHub Copilot 的即時工程管道非常複雜。 它會根據你編寫代碼的上下文建議填寫哪個變數。
GitHub Copilot 有其優點和缺點。 雖然它提供了更智慧的代碼完成和上下文解決方案等功能,可以減少搜索解決方案所花費的時間,但建議的代碼只是一個建議。 由開發人員評估這些建議並決定是接受、跳過還是忽略它們。
優點:
· Copilot相容多種程式設計語言
· 它可以訪問 GitHub 上大量的公共代碼存儲庫資料集
· 它利用上下文化的解決方案來編寫代碼
· 它非常擅長編寫樣板代碼。
缺點:
· 在代碼可維護性、配置、相容性和版本控制方面存在問題。
· 當前版本的 CoPilot 無法刪除、簡化或重構代碼。
· 該工具不適合新手開發人員。
· CoPilot 僅在出現提示時提供安全建議。
類別:代碼生成、代碼完成
價格:免費或 44 美元/用戶/月(團隊計畫)
3、Replit Ghostwrite
Replit Ghostwriter 是一種基於 ML 的工具,可提供代碼完成、生成、轉換和編輯器內搜索功能。
Ghostwriter由四個主要部分組成: 完整代碼,分析你的代碼並提供後續建議; 生成代碼,根據你的建議生成新代碼; 轉換代碼,幫助你重構或現代化代碼以滿足標準; 解釋代碼,它分析現有代碼並使用自然語言解釋其功能,以及語義搜索。 Ghostwriter 旨在補充你現有的程式設計知識,並減少你在 Stack Overflow 等網站上搜索幫助或研究代碼示例所花費的時間。
優點:
· Ghostwriter 通過使用代碼和注釋上下文幫助減少摩擦。
· 它可以重構您的代碼以更快地運行並將其翻譯成另一種語言。
· 它是一個網路流覽器應用程式; 使用者不需要下載任何東西。
· 它自動將生成的代碼保存到雲端,不需要部署過程。
缺點:
· 它提供有限的存儲空間、CPU 和 RAM。
類別:代碼生成、代碼完成、代碼重構、代碼解釋、測試生成器
價格:免費或 7 美元/月
4、TabNine
TabNine 是一款人工智慧代碼補全工具,利用深度學習演算法實現Java、Python、C++等語言的智慧代碼補全。
TabNine會自動為你的代碼編制索引並根據你的寫作模式創建定制的建議。 其高級 AI 功能提供了自動代碼完成、自動生成的測試、語法突出顯示以及與流行的 IDE 集成等功能。 TabNine 支援 20 多種語言和 15 種編輯器,包括 VS Code、IntelliJ、Android Studio 和 Vim。 雖然它不是端到端的代碼生成器,但它增強了 IDE 的自動完成功能。 TabNine 還提供基於雲的版本,使開發人員可以從任何設備訪問他們的編碼工具。
優點:
· TabNine 通過即時代碼完成加快開發速度。
· 它保護代碼隱私。
· 它提供個性化的語言模型,這些模型在對各種規模的模型進行全面評估後進行協作。
· 它提供了一個根據你的代碼訓練的私有模型。
· 它的預測既是本地的,也是基於雲的。
缺點:
· 它的免費版本只能真正為小項目提供建議。
· 該模型使用大量記憶體用於你正在使用的文字編輯器之上的文字編輯器功能。
· 該工具的用戶體驗可能會忙於處理不相關的建議。
類別:代碼生成、代碼完成、雲、本地、微調
價格:免費或 12 美元/月
5、OpenAI Codex
Codex 是一種基於 OpenAI GPT-3 的自然語言處理模型,可以生成十多種程式設計語言的工作代碼,包括 Python、JavaScript、Go、Perl、PHP、Ruby、Swift 和 TypeScript,甚至 Shell。
用於訓練 Codex 的資料包括來自公開來源的數十億行原始程式碼,以及自然語言,包括來自公共 GitHub 存儲庫的代碼。 它有 14KB 的記憶體用於 Python 代碼。 Codex 是一個功能強大的轉換器驅動系統。 它瞭解你的任務並最有效地完成任務。
優點:
· Codex 可以訪問各種 API 並運算元據。
· 它可以描述現有代碼。
· 它會自動為公司或開源專案的現有代碼庫生成文檔。
· 該模型可以自我引用,將先前的命令存儲在同一會話的記憶體中,並相應地使用它們。
· 用戶可以從給定的提示中查看該工具生成的代碼,使他們能夠瞭解該工具解釋了什麼。
· Codex 提供擴展回應,其中包括與初始請求相關的附加資訊。
缺點:
· 它可能會創建重複的函數。
· 很難微調生成的代碼。
· 它的設置受限,因此很難包含功能和擴展。
類別:代碼生成、代碼完成、代碼重構、代碼解釋、測試生成器
價格:免費(限量測試版)
6、CodeWP
CodeWP 是 Isotropic 構建的 AI WordPress 代碼生成器。 它專門針對 WordPress 網站創建者進行了訓練和優化。
CodeWP支持 JS 和 PHP,以及特定於流行外掛程式(如 WooCommerce 和主要頁面構建器)的模式。 CodeWP 包括即時協作、即時代碼回饋和適用於不同程式設計語言的各種外掛程式等功能。 此外,它還與 GitHub 集成,可以輕鬆進行版本控制和專案協作。 對於尋求易於使用和協作的代碼編輯器的團隊來說,CodeWP 是一個有價值的工具。
優點:
· CodeWP 支援 11 種以上的程式設計語言。
· 它的 AI 模型是專門為 WordPress 訓練的。
· 它是一個多語言工具。
缺點:
· 它有時可能會有輕微的錯誤和緩慢。
· 它不適合複雜的專案或大型應用程式。
類別:代碼生成、代碼解釋、領域特定
價格:免費或 12 美元/月
7、MutableAI
MutableAI 是一款由 AI 驅動的編碼助手,可説明自動執行重複的編碼任務,並通過自然語言輸入加快生產速度。
MutableAI最令人興奮的功能之一是開放式查詢對話,允許使用者提出複雜的問題。 MutableAI 提供特定於領域的轉換,可以無縫理解你的代碼,從而更輕鬆、高效地完成任務。 其他功能包括自動完成、開放式轉換、生產代碼的能力和類型注釋。 總的來說,MutableAI 是一個強大的工具,可以幫助開發人員節省時間並提高生產力。
優點:
· MutableAI 提供特定領域的轉換,可以無縫理解你的代碼。
· 它是在一組更精心策劃的高品質代碼上進行訓練的。
· 它提供即時配對和共用編碼會話的能力。
缺點:
· 穩定性和可靠性存在一些小問題。
· 該工具的學習曲線更陡峭,尤其是其高級功能。
類別:代碼生成、代碼完成、代碼重構、代碼解釋
價格:免費或 10 美元/月