若你編程,一定做過這種事:代碼報錯,把 error 複製進 Google,點開一個 Stack Overflow 的問題,年份顯示:2016年,下面那句:「I had the same issue.」你繼續往下翻,然後,代碼跑通了。
只可惜,我們已愈來愈少這樣做。
自從 ChatGPT、GitHub Copilot 和 Claude 等大型語言模型 (LLM) 出現以來,Stack Overflow 的受歡迎程度和流量持續下降,來自多家網路分析公司的數據以及 Stack Overflow 社群自身的更新都表明,開發者獲取資訊的方式發生了顯著轉變。
這種轉變的主要原因在於「解決方案路徑」的差異。開發者遇到錯誤後,若使用Stack Overflow,如上所述,會在 Google 上搜索,然後點擊 Stack Overflow 的鏈接,要花上一翻工夫瀏覽多個答案,才能篩選出的解決方案;而AI 生成模式,開發者只霄將自己的程式碼貼到 AI 中,然後詢問如「為什麼會拋出 NullPointerException?」人工智能便會立即根據開發者的提問和和上下文,提供量身定制的答案,這種「即時滿足」,令程式員極樂於使用。
再者,Stack Overflow 長期以來一直飽受對新手不友善的詬病,所發問題經常被標記為「重複」,「離題」或「不是真正的問題」,有時會附帶居高臨下的評論。
人工智慧則擁有無限的耐心。它不會在意問題是否「基礎性」,或者是否已被問過無數遍。對於初級開發者而言,向人工智慧提問在心理上比在論壇上冒著被公開批評的風險「更安全」。
而且,GitHub Copilot 和 Cursor 等工具可以將「答案」直接整合到整合開發環境 (IDE) 中;而離開 IDE 開啟瀏覽器搜尋 Stack Overflow 是一種「上下文切換」,會打斷開發者的工作流程。AI 程式碼助理更可以即時提供自動補全和邏輯建議。
不過,長此下去,有一個很大問題,只因AI 訓練是基於人類生成的內容進行訓練,其中許多內容來自 Stack Overflow。
如果開發者因為使用 AI 而停止在 Stack Overflow 上發布新的問題和答案,那麼就不會產生新的「真實資料」。那若當新的函式庫或框架發佈時(例如,新版本的 Next.js),在人類公開討論之前,AI 無法瞭解如何使用它們。如果公共論壇停止討論,AI 的知識就會停滯在過去。
而Stack Overflow 亦沒有坐視不理。他們已經意識到這種生存威脅,他們正在將生成式人工智慧整合到自己的平台中,使用戶能夠使用自然語言查詢龐大的、經過人工驗證的知識庫。亦與 Google 和 OpenAI 等公司達成協議,為模型訓練提供高品質數據,確保 Stack Overflow 的「人工驗證」元素仍然是人工智慧生態系統的一部分。
一言以蔽之,Stack Overflow 是AI的主要養份之一,缺它不可!