我們已經進入了廣泛采用和民主化獲取生成 AI 產品的時代。 用例無處不在——從生成圖像到編寫代碼——而且采用速度超過了過去十年的每一種消費技術趨勢。 在 Image Generation 中,MidJourney 的 Discord 成員已增長到約 1300 萬,而據報道,ChatGPT 的用戶已超過 1 億。 軟件開發(fā)人員的用例也在爆炸式增長——截至 9 月,超過 120 萬開發(fā)人員使用了 GitHub Copilot 的技術預覽版。 ChatGPT 還出人意料地擅長編寫應用程序——從根據文本提示生成完整代碼(盡管通常有很多錯誤)到錯誤修復代碼。
推薦:用 NSDT場景設計器 快速搭建3D場景。
隨著模型和訓練集越來越適合編程任務,我們預計大型語言模型的編碼能力會隨著采用率的提高而提高。 有跡象表明 OpenAI 正在關注這一潛力,有報道稱他們已經聘請了約 400 名開發(fā)人員作為承包商來幫助標記代碼以訓練他們的下一代模型。 雖然我們不希望這些產品很快取代軟件開發(fā)人員,但我們確實希望它們能顯著提高生產力并讓開發(fā)人員專注于更困難的問題。
迄今為止的進展表明,生成式 AI 模型可能會成為開發(fā)人員編寫、調試和優(yōu)化代碼能力的必備工具。 他們已經開始改變編寫、審查和改進代碼的方式。 借助高級算法,這些模型可以分析現有代碼中的模式并生成針對可讀性、效率和無錯誤執(zhí)行進行了優(yōu)化的新代碼行。 這可以節(jié)省開發(fā)人員的時間,還可以提高所生成代碼的質量。 生成式人工智能還可以通過自動識別潛在問題和改進、安全漏洞、提高代碼性能的替代方法以及幫助團隊維護高質量的代碼庫來協助代碼審查。 通過自動執(zhí)行一些繁瑣和重復的編碼任務,這些工具有可能提高生產力。
在目前的狀態(tài)下,基于人工智能的編程工具并非完美無缺,而是在迅速改進。 雖然生產率的提高對大企業(yè)和小企業(yè)都是一樣的,但它改變了游戲規(guī)則,特別是對小企業(yè)、獨立開發(fā)者和專業(yè)人士而言。 這些工具在降低進入新創(chuàng)業(yè)企業(yè)的障礙和成本方面可能特別有影響力和益處。
軟件開發(fā)的未來可以看到人類與 AI 之間的協作,其中 AI 充當導師,指導開發(fā)人員完成代碼編寫過程并確保他們走在正確的軌道上。 憑借學習和適應能力,生成式 AI 在編碼方面的潛力令人興奮且無限。
本文深入回顧了當前為代碼完成、生成、調試和性能改進而設計的人工智能編程工具。 這些工具分為流行的、即將推出的或新的,使用戶能夠根據他們的需求、預算和項目復雜性選擇最適合的工具。
1、ChatGPT
ChatGPT 是 OpenAI 的一種高級自然語言處理模型,風靡全球。 ChatGPT 是從 GPT-3.5 系列中的一個模型微調而來的。 這是一個具有 175B 個參數的 Transformer 神經網絡。 它通過提供簡單的文本提示來幫助開發(fā)人員進行編碼,這些提示利用上下文、代碼模板和編程知識來幫助完成代碼、生成、優(yōu)化、文檔、性能、更正和解釋。 利用其高級功能,ChatGPT 可以分析源代碼并提供對編碼語言的見解、解決編碼問題以及軟件開發(fā)建議。
ChatGPT 可以通過分析代碼并在理解代碼的行為和功能的基礎上建議測試用例來幫助開發(fā)人員編寫單元測試。 這可以顯著減少編寫單元測試所需的時間和精力,并提高其準確性。 此外,ChatGPT 可以提供反饋和建議以提高代碼質量并幫助開發(fā)人員更好地理解錯誤或改進。
雖然 ChatGPT 是用于各種編程任務的有用工具,但它不能取代開發(fā)人員。 它不能用于學習如何編碼,也不能替代良好的編碼習慣。 相反,它是提高生產力和產量的補充。 ChatGPT 是一個可以幫助開發(fā)人員的強大工具。
優(yōu)點:
- ChatGPT 充當代碼完成、優(yōu)化、性能、糾正和解釋的導師。
- 它可以提供對代碼設計和結構的見解。
- 它可以幫助識別可能需要重構、簡化、審查或改進的領域。
- 它可以通過分析代碼并提供解釋和注釋來生成源代碼文檔。
缺點:
- ChatGPT 缺乏對代碼的內在理解,但可以識別正確的代碼結構。
- 改寫提示可能會導致不同的結果。
- 培訓數據僅限于 2021 年,限制了其范圍。
- 該工具可能不是生成需要大量上下文的代碼的理想選擇。
類別:代碼生成、代碼完成、代碼優(yōu)化
價格:免費或 20 美元/月
2、Copilot
Copilot是一個12B參數的Transformer模型。
GitHub Copilot 是一個人工智能驅動的結對編程編輯器,旨在幫助開發(fā)人員更快、更高效地工作。 它使用 OpenAI Codex 在開發(fā)人員編寫注釋或代碼行時將自然語言轉換為編碼提示。 當開發(fā)人員編寫描述他們所需邏輯的評論時,GitHub Copilot 可以自動為他們的解決方案生成代碼建議。 此外,它可以通過調整他們的編輯來適應開發(fā)人員的編碼風格。 從本質上講,它是開發(fā)人員的智能自動完成工具。
此代碼完成解決方案與大量編程語言和框架兼容,包括 Python、Java、JavaScript、TypeScript、Ruby 和 Go。 它可以用作流行代碼編輯器的擴展,例如 Visual Studio Code、NeoVim 和 JetBrains。 該擴展可在桌面上使用,也可用于基于云的解決方案,例如 GitHub Codespaces。
GitHub Copilot 的即時工程管道非常復雜。 它會根據你編寫代碼的上下文建議填寫哪個變量。
GitHub Copilot 有其優(yōu)點和缺點。 雖然它提供了更智能的代碼完成和上下文解決方案等功能,可以減少搜索解決方案所花費的時間,但建議的代碼只是一個建議。 由開發(fā)人員評估這些建議并決定是接受、跳過還是忽略它們。
優(yōu)點:
- Copilot兼容多種編程語言
- 它可以訪問 GitHub 上大量的公共代碼存儲庫數據集
- 它利用上下文化的解決方案來編寫代碼
- 它非常擅長編寫樣板代碼。
缺點:
- 在代碼可維護性、配置、兼容性和版本控制方面存在問題。
- 當前版本的 CoPilot 無法刪除、簡化或重構代碼。
- 該工具不適合新手開發(fā)人員。
- CoPilot 僅在出現提示時提供安全建議。
類別:代碼生成、代碼完成
價格:免費或 44 美元/用戶/月(團隊計劃)
3、Replit Ghostwrite
Replit Ghostwriter 是一種基于 ML 的工具,可提供代碼完成、生成、轉換和編輯器內搜索功能。
Ghostwriter由四個主要部分組成: 完整代碼,分析你的代碼并提供后續(xù)建議; 生成代碼,根據你的建議生成新代碼; 轉換代碼,幫助你重構或現代化代碼以滿足標準; 解釋代碼,它分析現有代碼并使用自然語言解釋其功能,以及語義搜索。 Ghostwriter 旨在補充你現有的編程知識,并減少你在 Stack Overflow 等網站上搜索幫助或研究代碼示例所花費的時間。
優(yōu)點:
- Ghostwriter 通過使用代碼和注釋上下文幫助減少摩擦。
- 它可以重構您的代碼以更快地運行并將其翻譯成另一種語言。
- 它是一個網絡瀏覽器應用程序; 用戶不需要下載任何東西。
- 它自動將生成的代碼保存到云端,不需要部署過程。
缺點:
- 它提供有限的存儲空間、CPU 和 RAM。
類別:代碼生成、代碼完成、代碼重構、代碼解釋、測試生成器
價格:免費或 7 美元/月
4、TabNine
TabNine 是一款人工智能代碼補全工具,利用深度學習算法實現Java、Python、C 等語言的智能代碼補全。
TabNine會自動為你的代碼編制索引并根據你的寫作模式創(chuàng)建定制的建議。 其高級 AI 功能提供了自動代碼完成、自動生成的測試、語法突出顯示以及與流行的 IDE 集成等功能。 TabNine 支持 20 多種語言和 15 種編輯器,包括 VS Code、IntelliJ、Android Studio 和 Vim。 雖然它不是端到端的代碼生成器,但它增強了 IDE 的自動完成功能。 TabNine 還提供基于云的版本,使開發(fā)人員可以從任何設備訪問他們的編碼工具。
優(yōu)點:
- TabNine 通過實時代碼完成加快開發(fā)速度。
- 它保護代碼隱私。
- 它提供個性化的語言模型,這些模型在對各種規(guī)模的模型進行全面評估后進行協作。
- 它提供了一個根據你的代碼訓練的私有模型。
- 它的預測既是本地的,也是基于云的。
缺點:
- 它的免費版本只能真正為小項目提供建議。
- 該模型使用大量內存用于你正在使用的文本編輯器之上的文本編輯器功能。
- 該工具的用戶體驗可能會忙于處理不相關的建議。
類別:代碼生成、代碼完成、云、本地、微調
價格:免費或 12 美元/月
5、OpenAI Codex
Codex 是一種基于 OpenAI GPT-3 的自然語言處理模型,可以生成十多種編程語言的工作代碼,包括 Python、JavaScript、Go、Perl、PHP、Ruby、Swift 和 TypeScript,甚至 Shell。
用于訓練 Codex 的數據包括來自公開來源的數十億行源代碼,以及自然語言,包括來自公共 GitHub 存儲庫的代碼。 它有 14KB 的內存用于 Python 代碼。 Codex 是一個功能強大的轉換器驅動系統(tǒng)。 它了解你的任務并最有效地完成任務。
優(yōu)點:
- Codex 可以訪問各種 API 并操作數據。
- 它可以描述現有代碼。
- 它會自動為公司或開源項目的現有代碼庫生成文檔。
- 該模型可以自我引用,將先前的命令存儲在同一會話的內存中,并相應地使用它們。
- 用戶可以從給定的提示中查看該工具生成的代碼,使他們能夠了解該工具解釋了什么。
- Codex 提供擴展響應,其中包括與初始請求相關的附加信息。
缺點:
- 它可能會創(chuàng)建重復的函數。
- 很難微調生成的代碼。
- 它的設置受限,因此很難包含功能和擴展。
類別:代碼生成、代碼完成、代碼重構、代碼解釋、測試生成器
價格:免費(限量測試版)
6、CodeWP
CodeWP 是 Isotropic 構建的 AI WordPress 代碼生成器。 它專門針對 WordPress 網站創(chuàng)建者進行了訓練和優(yōu)化。
CodeWP支持 JS 和 PHP,以及特定于流行插件(如 WooCommerce 和主要頁面構建器)的模式。 CodeWP 包括實時協作、實時代碼反饋和適用于不同編程語言的各種插件等功能。 此外,它還與 GitHub 集成,可以輕松進行版本控制和項目協作。 對于尋求易于使用和協作的代碼編輯器的團隊來說,CodeWP 是一個有價值的工具。
優(yōu)點:
- CodeWP 支持 11 種以上的編程語言。
- 它的 AI 模型是專門為 WordPress 訓練的。
- 它是一個多語言工具。
缺點:
- 它有時可能會有輕微的錯誤和緩慢。
- 它不適合復雜的項目或大型應用程序。
類別:代碼生成、代碼解釋、領域特定
價格:免費或 12 美元/月
7、MutableAI
MutableAI 是一款由 AI 驅動的編碼助手,可幫助自動執(zhí)行重復的編碼任務,并通過自然語言輸入加快生產速度。
MutableAI最令人興奮的功能之一是開放式查詢對話,允許用戶提出復雜的問題。 MutableAI 提供特定于領域的轉換,可以無縫理解你的代碼,從而更輕松、高效地完成任務。 其他功能包括自動完成、開放式轉換、生產代碼的能力和類型注釋。 總的來說,MutableAI 是一個強大的工具,可以幫助開發(fā)人員節(jié)省時間并提高生產力。
優(yōu)點:
- MutableAI 提供特定領域的轉換,可以無縫理解你的代碼。
- 它是在一組更精心策劃的高質量代碼上進行訓練的。
- 它提供實時配對和共享編碼會話的能力。
缺點:
- 穩(wěn)定性和可靠性存在一些小問題。
- 該工具的學習曲線更陡峭,尤其是其高級功能。
類別:代碼生成、代碼完成、代碼重構、代碼解釋
價格:免費或 10 美元/月
8、CodeSquire
CodeSquire 是一款人工智能驅動的代碼編寫助手,專為數據科學家、工程師和分析師設計。
CodeSquire提供智能代碼建議,協助數據探索,并自動執(zhí)行重復性任務。 它允許開發(fā)人員將注釋翻譯成代碼,創(chuàng)建完整的函數而無需搜索庫方法和參數,編寫帶有文本提示的 SQL 查詢,以及為其他人的代碼生成代碼解釋。 目前,CodeSquire 在 Google Colab、BigQuery 和 JupyterLab 上用作瀏覽器擴展。
優(yōu)點:
- CodeSquire 專為滿足數據科學家的需求而設計。
- 它提供適當的筆記本支持、數據感知和單元格輸出。
缺點:
- 它對于復雜的編程任務不是那么有效。
- 它在有限的平臺上可用。
類別:代碼生成、代碼完成、代碼重構、代碼解釋、特定領域
價格:不可用(免費/付費)
9、Salesforce CodeGen
Salesforce CodeGen 是一種開源模型,可促進程序合成,支持對話式 AI 編程。 它使用 160 億參數的自回歸語言模型,在大量自然語言和編程語言的語料庫上進行訓練。
CodeGen 超越了代碼自動完成,并尋求了解用戶的最終目標,使他們能夠更快地開發(fā)應用程序并減少編碼。 這為受益于人情味的復雜任務開辟了更多時間。
優(yōu)點:
- Salesforce CodeGen 的功能通過生成可執(zhí)行代碼消除了限制。
- 它的應用比編寫提示更簡單——它只是在說話。
缺點:
- 它可能只有有限的社區(qū)支持和可用資源。
類別:代碼生成,開源
價格:免費
10、Figstack
Figstack 是一個基于 Web 的平臺,可幫助開發(fā)人員理解任何語言的任何代碼、翻譯編程語言以及自動化功能文檔。
Figstack與 VS Code 等流行的代碼編輯器集成,使開發(fā)人員能夠在處理項目時訪問其功能。 Figstack 提供了自動完成、代碼片段和實時調試等功能,使開發(fā)人員能夠更高效地編寫代碼并減少錯誤。 此外,Figstack 提供了一個強大的回答平臺,使開發(fā)人員能夠搜索代碼示例和常見編程問題的解決方案,從而減少尋找答案所花費的時間。
優(yōu)點:
- Figstack 有助于衡量大 O 表示法中代碼的效率。
- 它的無代碼 UI 使所有技能水平的開發(fā)人員都可以使用該工具。
缺點:
- 它可能不適合需要高級自定義選項的更復雜的項目。
- 它是一種基于云的工具,因此可能存在數據隱私和安全問題。
類別:代碼解釋、代碼翻譯、自動化文檔
價格:聯系供應商了解定價
11、DataMaker
Datamaker Coder Tool 通過使用自然語言處理為 HTML、CSS 和 JavaScript 生成可在項目中使用的自定義代碼片段,從而簡化了 Webflow 的編碼過程。
DataMaker還提供了操作集合、在特定斷點上應用函數以及向代碼添加附加功能的能力。 此外,DataMaker 支持多種編程語言,包括 Python、Java、JavaScript、C、C 、C#、Go、Rust、Ruby、Swift 和 HTML/CSS。 但是,需要注意的是,雖然 Datamaker 可以為開發(fā)人員提供許多好處,但在使用它之前評估它是否適合特定用例也很重要。
優(yōu)點:
- DataMaker 旨在從錯誤中吸取教訓并隨著時間的推移不斷改進。
- 對于新手開發(fā)人員來說,它簡單直觀。
缺點:
- 某些用戶可能難以導航或配置該工具。
- 實現特定結果可能需要實驗。
- 用戶不擁有生成的代碼的所有權。
類別:代碼生成,特定領域
價格:9.99 美元/月
12、AirOps
AirOps 是一個基于云的平臺,可為開發(fā)人員簡化應用程序部署和管理。 它可以通過 Chrome 擴展程序、網絡應用程序或 API 訪問,從而可以輕松集成到任何工作流程中。
AirOps的突出特點是 SQL 助手,它為開發(fā)人員提供了編寫、優(yōu)化、更新、修復和解釋查詢的工具。 AirOps 使開發(fā)人員能夠輕松分析他們的數據庫,識別和修復性能瓶頸,并自動執(zhí)行重復性任務。 雖然 AirOps 提供了許多好處,但一些開發(fā)人員可能更喜歡使用替代工具來管理他們的應用程序或編寫 SQL 查詢。
優(yōu)點:
- AirOps 為 SQL 編寫、修復和解釋提供了 AI 支持的方法。
- 它可以自動記錄表模式。
- 它允許用戶生成 Python 腳本和 dbt YAML 文件。
缺點:
- 由于其復雜性和成本,它可能不太適合較小的開發(fā)團隊。
- 作為一個基于云的平臺,平臺穩(wěn)定性或停機的任何問題都可能對開發(fā)過程產生重大影響。
- 該平臺的可定制性可能不足以滿足某些開發(fā)項目的獨特需求。
類別:代碼生成、代碼重構、代碼解釋、云、領域特定
價格:159 美元/月
13、What-the-diff
What-the-Diff 是一款由 AI 驅動的應用程序,它可以審查拉取請求中的差異,并用簡單的英語編寫有關更改的描述性評論。
What-the-Diff使用 GitHub API 獲取拉取請求差異,然后使用 AI 模型在不存儲代碼的情況下生成更改描述。 What-the-Diff 了解更改的上下文,并深入了解更改的內容和原因。 一個獨特的功能是除了通常的逐行代碼比較之外,它還能夠突出顯示語義差異,從而使開發(fā)人員能夠快速準確地識別問題。 另一個有用的功能是能夠識別和忽略與代碼更改無關的某些差異,例如空格或格式的差異。 但是,作為一種相對較新的工具,What-the-Diff 可能還不具備更成熟的比較工具所提供的所有功能和集成。
優(yōu)點:
- Diff 支持幾乎所有的編程語言。
- 它具有干凈的用戶界面。
- 它可以完全控制何時以及如何分析您的拉取請求。
缺點:
- 它需要完全訪問你的代碼才能讀取差異。
- 它可能不適合較大的代碼庫或復雜的更改。
- 雖然該工具可以識別代碼更改之間的差異,但它可能不會為已識別的差異提供解決方案或修復。
類別:代碼解釋,代碼重構
價格:免費或 19 美元/月
14、AI Query
AI Query 是一種功能強大的自然語言處理工具,使開發(fā)人員能夠使用簡單的英語句子與他們的數據庫進行交互,然后將其翻譯成 SQL 查詢。
AI Query提供了一個獨特的功能,能夠理解復雜的查詢并生成可在底層數據庫上執(zhí)行的 SQL 查詢。 它用途廣泛,能夠處理多個數據庫和不同的數據庫模式,并支持廣泛的數據類型。 借助 AI Query,開發(fā)人員可以輕松快速地生成 SQL 查詢,它提供了一系列功能,包括 SQL 查詢生成、SQL 解釋和數據庫架構。
優(yōu)點:
- AI Query 允許用戶保存和共享 SQL 查詢。
- 它支持 PostgreSQL、MySQL、MariaDB 和 SQL Server。
- 該工具存儲 SQL 查詢歷史記錄。
- 它是用戶友好的,可供沒有編碼背景的個人使用。
缺點:
- 它可能并不總是理解查詢意圖,從而導致不正確的翻譯或數據檢索。
- 它可能不支持所有 SQL 語法,限制了可以執(zhí)行的查詢。
- 它需要針對復雜查詢和底層數據結構進行手動查詢調整。
- 人工智能算法的內部運作可能缺乏透明度。
類別:代碼生成、代碼解釋、領域特定
價格:10 美元/月
15、Adrenaline
Adrenaline 是一種軟件調試助手,它使用機器學習來幫助開發(fā)人員更有效地識別和修復代碼中的錯誤。
Adrenaline可以自動生成關于可能導致錯誤的假設的過程。 它還提供有關開發(fā)人員操作的實時反饋,以幫助他們測試和完善這些假設。 Adrenaline 結合使用程序分析、統(tǒng)計推理和概率推理來確定問題最可能的原因。
優(yōu)點:
- Adrenaline可以更快、更準確地識別錯誤,并減少手動調試所需的時間和資源。
- 它像 diff 一樣在線顯示修復
- 它使用 GPT-3 以簡單的英語解釋錯誤
缺點:
- 它需要用戶的 OpenAI API 密鑰。
- 如果輸入數據沒有經過適當的預處理,就有可能出現錯誤的診斷。
類別:調試助手,開源
價格:免費或 5 美元/月
16、Adept
Adept 的 ACT-1 是一款人工智能代碼補全工具,它使用深度學習算法實時提供智能代碼建議和完整代碼塊。
ADEPT的大型 Transformer 模型 ACT-1 已經過訓練,可以使用包括網絡瀏覽器在內的數字工具。 目前,它與 Chrome 擴展程序集成在一起,允許它觀察瀏覽器活動并執(zhí)行各種操作,例如鍵入、單擊和滾動。 此外,該模型可以處理涉及組合多個工具的任務,因為大多數計算機任務需要使用多個程序。 未來,ACT-1 有望要求澄清用戶的需求,使其更有幫助。 雖然它可能不知道所有事情,但 ACT-1 具有很強的可指導性,可以通過單次人類反饋糾正錯誤,在每次互動中變得更有用。
類別:過程自動化
?價格:尚未發(fā)布。
17、AlphaCode
AlphaCode是基于 Transformer 的語言模型。 414億個參數。
由 DeepMind 和谷歌開發(fā)的 AlphaCode 是生成有競爭力的編程解決方案的強大工具。 它是高度專業(yè)化的,專門接受過關于人們如何回答軟件寫作比賽問題的培訓。 AlphaCode 展示了一套獨特的技能集,結合了自然語言理解、解決問題的能力和大型語言模型的統(tǒng)計能力特征。
AlphaCode已經成功解決了退格問題,并且比以前依賴顯式指令的 AI 編碼系統(tǒng)有了顯著改進。 AlphaCode 模型在 700GB 的 GitHub 開源代碼上進行了預訓練,以學習代碼表示和解決顯式編碼任務。
類別:代碼生成,競爭性編碼
價格:尚未發(fā)布。
結束語
生成式 AI 正在改變代碼的生成方式,在很大程度上實現了編碼自動化。 它自動化任務的能力提高了編程的生產力和效率。 雖然 AI 驅動的編碼是邁向未來的重大飛躍,但當前的工具仍在不斷發(fā)展。 這些工具是編碼實踐的重要補充,但并不完美。 關鍵要素是人工智能與人類之間的監(jiān)督和伙伴關系。 由于這些模型致力于提高質量和準確性,因此必須了解人類專業(yè)知識和監(jiān)督的重要性,以使這些工具成為高效的編碼合作伙伴。
本文為新手開發(fā)人員、高級項目以及介于兩者之間的一切提供了各種工具列表。 如果無法引導 AI 朝著正確的方向發(fā)展,或者無法交叉檢查 AI 的成果,這些工具可能會適得其反。 這些工具可能會生成完美的代碼或不相關的輸出——這使得開發(fā)人員必須區(qū)分好代碼和壞代碼才能有效地使用這些工具。
原文鏈接:http://www.bimant.com/blog/17-ai-programming-tools/
版權聲明:本文內容由互聯網用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現本站有涉嫌抄襲侵權/違法違規(guī)的內容, 請發(fā)送郵件至 舉報,一經查實,本站將立刻刪除。