
短短幾年間,面向開發人員的 AI 工具領域已從新穎的自動完成外掛發展為龐大且往往令人應接不暇的生態系統,其中包括智慧助手、自主代理和 AI 優先環境。
本文追溯了從早期的自動完成工具(如 GitHub Copilot)到 AI 驅動的 IDE、快速原型平臺和全代理系統的湧現。
為了嘗試瞭解不斷發展的格局,我不會根據表面功能對工具進行分組,而是根據 AI 在工作流程中的位置進行分組:從“一臂之力的 AI”(例如 ChatGPT)到“整合 AI”(Copilot)、“AI 優先”環境(Cursor、Replit)和針對快速原型設計等特定用例的“以任務為中心的 AI”。
背景介紹
GitHub Copilot 的釋出時間剛好是三年前,感覺現在就像是另一個世界。
這個新興工具提供了改進的、令人印象深刻的自動完成功能,我很幸運獲得了預覽許可權。在我以往經驗的文章中,得出過以下結論:
我的感覺是,這個工具還不能徹底改變程式設計,但是我堅信…它將來會產生重大的、改變遊戲規則的影響。
而現在,僅僅三年之後,人工智慧似乎確實改變了遊戲規則。
隨著氛圍編碼、開發人員職位的減少和人工智慧驅動的軟體工程師的出現,很難忽視人工智慧似乎正在產生的影響。強調“似乎”,我們正處於AI炒作的頂峰。
本篇文章不會關注人工智慧可能(或不可能)對我們行業產生哪些更為現實的影響。相反地,我將從實際角度來審視這些工具本身以及它們的發展情況。
我堅信這些工具可以為各種軟體工程任務帶來真正的價值,值得探索和採用其中的一些工具。然而,這些工具的功能、廣度和數量正在迅速增加。本文章旨在為各位提供更詳細探索的起點。
以下是一些值得注意的 AI 開發工具和趨勢的高階時間表:
這些工具所提供的價值(可以粗略地以它們生成的程式碼量來衡量)一直在隨著時間的推移而增加——從早期透過自動完成生成數十行程式碼的工具,到快速原型和代理 AI 工具,可以一次性生成數百行(甚至數千行)程式碼。
以下是對各種型別的工具及其功能、優勢和劣勢的高階回顧。
自動完成(和聊天)
第一個真正展示生成式 AI 在編寫程式碼方面強大功能的工具是 GitHub Copilot,它於 2021 年底釋出。
多年來,我們一直透過 IDE(例如 VS Code、IntelliJ)使用自動完成功能。基本概念很簡單,編輯器使用編譯器(或直譯器)來完成變數、函式名稱或簽名,從而節省寶貴的擊鍵和時間。使用 Copilot,介面是一樣的,是一種自動完成的形式,但它不僅僅是完成幾個字元,還可以生成大量的程式碼。
Copilot 提供的生產力提升是顯著的,但也存在著風險,這個工具無法保證其生成的程式碼的正確性或質量。
Copilot 並不是唯一的 AI 自動完成工具。Tabnine 和 Sourcegraph (Cody) 等公司都有類似的產品,並具有額外的企業功能,例如在您自己的程式碼庫上訓練的自定義模型,以及與更廣泛的 IDE 整合。亞馬遜還發布了 Q,它與他們自己的 AWS 服務進行了更深入的整合。
過去幾年,Copilot 及其同類產品的功能也得到了增強。它們中的大多數現在都支援某種形式的聊天功能,這允許你執行不完全遵循自動完成工作流程的任務,例如重構。它們還允許你提出問題,例如“此應用程式中的身份驗證如何工作?”,這是熟悉和瀏覽程式碼庫的好方法。
最後,Copilot 進一步改進了介面,最近它釋出了Copilot Edits,使得跨多個檔案進行工作和範圍更改變得更加容易。
根據StackOverflow 2024 年開發者調查和Pragmatic Engineer 2024 年調查,GitHub Copilot 是最廣泛使用的 AI 工具,而且兩項調查都發現,更多開發者正在使用 ChatGPT 來編寫程式碼。
ChatGPT(Claude、DeepSeek……)
在深入研究更復雜的 AI 開發工具之前,更值得指出的是,像 ChatGPT 這樣的通用 AI 工具在編寫程式碼以及閱讀、解釋和除錯方面也非常強大。
截至2024年底,這仍然是開發人員中最受歡迎的 AI 工具。考慮到缺乏與開發人員工作流程的整合,這似乎相當令人驚訝——你必須將程式碼從 IDE 複製並貼上到聊天中,然後再複製回來。
也許有些開發人員喜歡這種互動效果,因為它傾向於限制他們對 AI 編寫程式碼的依賴程度,將其輸入限制在更小、更集中的任務上。
使用 ChatGPT 迭代編碼任務可能會感覺有點麻煩,不過隨著Canvas 的釋出,這種情況最近有所改善。Canvas 提供了一個介面,其中一個窗格中顯示程式碼,另一個窗格中顯示對話:
根據語言和環境,它還具有一些有限的執行程式碼的能力。
其他各種 AI 聊天機器人具有類似的功能,例如 Claude Artifacts。
人工智慧驅動的 IDE
Cursor 是 VSCode 的一個分支,釋出於一年多前。
GitHub Copilot 以擴充套件的形式呈現,是 IDE 的一個附加元件,而 Cursor 則將 AI 功能放在了首位。它非常鼓勵你在所有任務中使用 AI,包括生成提交訊息、驅動終端、程式碼庫分析、自動完成和建立整個應用程式。
現在,Cursor 的競爭對手開始變得越來越多,包括 Cline(開源)、Replit和 Windsurf。值得開發者們注意的是,Replit 擁有一個支援多種語言和框架的線上 IDE,它推出了 Replit Agent,再次將 AI 放在了首位。
Cursor 的一個有趣功能是規則,它是可用於自定義 IDE 整體行為的模型提示。你可以使用它們來鼓勵 Cursor 採用特定的編碼風格或適應特定型別的框架。
例如,以下是 Angular 開發的自定義規則的摘錄:
[...]- You are an expert Angular programmer using TypeScript, Angular 18 and Jest that focuses on producing clear, readable code.- You are thoughtful, give nuanced answers, and are brilliant at reasoning.- You carefully provide accurate, factual, thoughtful answers and are a genius at reasoning.- Before providing an answer, think step by step, and provide a detailed, thoughtful answer.- If you need more information, ask for it.- Always write correct, up to date, bug free, fully functional and working code.- Focus on performance, readability, and maintainability.- Before providing an answer, double check your work.[...]
(來自GitHub 上的Awesome Cursor Rules專案)
是的,人們提示此工具“始終編寫正確、最新、無錯誤、功能齊全且可用的程式碼”確實很奇怪。
我也對這些 AI 優先 IDE 的價值有些懷疑。雖然 AI 仍然有些不可靠,但我個人傾向於節制使用這項技術的程度。
此外,雖然 AI 擅長編寫程式碼,但它在更細緻的工程任務(即建立高質量、可靠且可維護的程式碼)方面仍表現不佳。然而,這並沒有阻止 Cursor 獲得大量追隨的粉絲,隨著底層大語言模型的改進,這些工具還會升級增強的。
我將其歸入此類別的另一個值得注意的工具是Aider,它提供了完全基於終端的使用者體驗。我將其歸入 IDE 類別是因為它的目標基本相同,即將程式碼生成、聊天、程式碼庫對映、Git 等整合到一個工具中。
快速成型
我看到的第一個使用 LLM 進行 UI 原型設計的例子是在五年前在 X 上分享的,當時 Copilot 尚未釋出:
以今天的標準來看,這個看起來非常笨重的演示引起了很多人的興趣和懷疑。今天的工具(v0、Bolt 以及最近的 Lovable)功能更加強大,可讓你在一兩個小時內建立中等複雜度的應用程式。
雖然我將它們描述為快速原型製作工具,但需要注意的是,它們不僅僅是視覺原型,它們完全能夠實現簡單的產品邏輯。在這種情況下,我相信各位也可以完全在這些工具中創建出具有生產質量的軟體或遊戲版本,它們都包括一個功能齊全的編輯器,讓你能夠直接與程式碼互動。
至於程式碼本身,我發現它結構良好且乾淨,但是並不完美。他們確實有重複程式碼的習慣;重構不是一個考慮因素。
我現在會毫不猶豫地使用這些工具來建立原型。除了對話提示外,你還可以新增詳細的規格和螢幕截圖,從而進一步加快流程。儘管有時他們會陷入困境,最終遇到無法解決的複雜錯誤或難以實現的功能。
代理
最後,我們來看看最先進的人工智慧工具——代理(Agent)。這些工具的目標是代表我們承擔重要任務,例如修復錯誤或從積壓工作中獲取工單。它們的目標是取代我們(一部分人)。
Devin 可能是比較知名的 AI 代理,這要歸功於大量的媒體報道以及20 億美元的估值。Devin 是一個完全自主的代理,你可以透過聊天介面與其互動,這應該會讓你感覺就像是軟體開發團隊的任何其他成員一樣。
不幸的是,他們的初始版本顯示 Devin 在 Upwork 上完成一項自由職業軟體任務,這還是有點誇大了該工具的功能,隨後的人員評論褒貶不一。
我在這裡與 AI IDE 有著同樣的擔憂,引用之前的話“雖然 AI 仍然有點不可靠,但我個人的偏好是適度使用這項技術。”
但再次申明,人工智慧的能力正在以驚人的速度增長。
另一個自稱“代理”的工具是 GitHub Copilot Workspaces,儘管它與 Devin 的主張截然不同。工作區也可以接手大任務,但它不是單獨處理,而是遵循頭腦風暴、任務生成然後執行的協作工作流程。
你還可以迭代和最佳化每個步驟。儘管它可以承擔的任務規模很大,但你還是會感覺一切盡在掌控之中。我嘗試過幾次,印象還不錯。
最後,GitHub 宣佈了Copilot Agent Mode的預覽版,它可以對一項任務進行多次迭代,直至完成為止。
結論
AI 開發工具的進化速度與底層模型開發的速度一致地快,非常快!
雖然各種型別的工具表面上看起來截然不同,但它們具有大致相似的功能(多檔案支援、聊天、自動完成)。我認為更大的區別在於 AI 的定位。考慮到這一點,我大致將這些工具描述為:
- “一臂之力”的人工智慧——使用通用聊天機器人(例如 ChatGPT)來幫助您編寫、理解和除錯程式碼。
- 整合 AI – 提供與 ChatGPT 類似的功能,但直接整合到 IDE 中,無需複製/貼上,並具有自動完成功能
- 人工智慧優先——例如 Cursor,它鼓勵你依靠人工智慧完成幾乎所有任務,而人工智慧最極端的就是代理
- 以任務為中心的人工智慧工具——最後是為特定用例設計的快速原型工具
理解應該採用哪些工具可能會令人困惑(都不採用還是全部採用?)但考慮到上述情況,我認為第一步是確定你想在工作流程中將 AI 定位在何處。
就我個人而言,更喜歡整合 AI 方法,我希望能夠快速與 AI 互動,但最終希望能夠掌控一切……
就目前而言來說,就是這樣。
作者:羅伯特
相關閱讀:
-
Llama4凌晨釋出!以超高性價比開啟原生多模態AI和開源MoE新時代 -
Visual Studio 增加了對 GitHub Copilot 補全程式碼引用的支援 -
微軟首席技術官:2030年AI將生成95%程式碼,工程師成為指令引導者