除了十幾歲時做過一段時間網站,搗鼓過Flash動畫以外,我從沒當過軟件工程師,也沒有放棄新聞工作而投身技術行業的雄心。然而,在過去的幾個月里,我一直在瘋狂地寫程序。
我的作品包括:一個可轉錄和總結長播客內容的工具,一個能將我的社交媒體賬號里的書簽整理成可搜索數據庫的工具,一個能告訴我某件家具是否能放進我的汽車后備箱的網站,以及一個名為“LunchBoxBuddy”的應用。LunchBoxBuddy可以分析我冰箱里的食物,據此幫我決定給兒子準備什么午餐帶去學校。
這些創造都要歸功于人工智能以及被稱為“氛圍編程”(vibecoding)的人工智能新趨勢。氛圍編程是人工智能研究員安德烈·卡爾帕西(AndrejKarpathy)所普及的一個詞。它概括了當今人工智能工具的實用性和易用性,借助這些工具,即使是非技術愛好者,只需在文本框中輸入提示語,也能創建功能齊全的應用程序和網站。你不必知道如何編程,只要有一個想法,再加上一點耐心就足夠了。
我自己的氛圍編程試驗意在開發我所謂的“個人軟件”—解決我生活中特定問題的小型定制應用程序。它們都不是大型技術公司會去開發的工具,沒有市場受眾,功能特性有限,而且其中一些只是湊合能用。
但以這種方式構建軟件—用一兩句話描述一個問題,然后看著一個強大的人工智能模型構建一個定制的工具來解決該問題—是一種令人十分興奮的體驗。
人工智能編程工具并非新鮮事,已經誕生多年。早期的工具旨在幫助專業程序員提高工作效率,比如GitHubCopilot。它們有的是以和ChatGPT完成句子一樣的方式來完成代碼行。但你仍然需要懂得如何寫代碼,不然無法最大限度地利用這些工具,也無法在人工智能卡殼時及時介入。
但在過去一兩年里,人們開發了新的工具來利用更強大的人工智能模型,讓新手也能像專家一樣編程。這些工具包括Cursor、Replit、Bolt和Lovable,它們的運作方式大同小異:根據用戶的提示提出設計方案,確定使用哪些軟件包和編程語言效果最好,然后開始構建產品。大多數產品都提供有限的免費功能,付費用戶可以獲取更高級的功能,能夠構建更多東西。
對于非程序員來說,氛圍編程就像巫術。輸入提示語后,一行行神秘的代碼會快速出現在你面前,幾秒鐘后,如果一切順利,一個工作原型就會誕生。用戶可以提出調整和修改的建議,只要感到滿意就可以將這些新產品部署到網絡上或在自己的計算機上運行。整個編程過程可能只需要幾分鐘,也可能需要幾個小時,具體取決于項目的復雜程度。
我讓Bolt開發一個應用,讓該應用可以根據我上傳的冰箱里的東西的照片,幫我決定給兒子準備什么午餐。該應用先是分析了這項任務,將任務分解為多個步驟。然后,它生成了一個基礎網頁界面,選擇了一個圖像識別工具來識別我冰箱里的食物,并開發了一個算法來根據這些食物推薦做什么餐食。
如果人工智能需要我作決定—例如,我是否希望它列出推薦的食物的營養成分—它會提示幾個選項。然后,它就會繼續寫代碼。遇到困難時,它會嘗試調試自己的代碼,或者退回到遇到困難之前的步驟,然后嘗試采用不同的方法。在我輸入提示語大約10分鐘后,LunchBoxBuddy就出結果了,它建議我做一個普通的火雞三明治。
我的氛圍編程試驗并非全都取得了成功。幾個星期以來,我一直在努力創建一個郵件自動回復工具,讓它能夠用我的寫作風格自動回復我的電子郵件。但我還沒能做出來。在嘗試將人工智能工作流程整合到GooglePhotos和VoiceMemos等應用程序中時,我也遇到了一些障礙,因為這些應用在設計上并不能很好地與第三方插件配合使用。
當然,人工智能偶爾也會犯錯。有一次,我試著為我家附近的一家輪胎店建立網站,人工智能根據這家店的Yelp頁面內容編造了虛假評論,并將這些評論添加到一個客戶評價頁面里。還有一次,我試圖把自己寫的一篇長篇故事變成一個互動網站,人工智能只收錄了一半的文本,漏掉了另一半。
換句話說,還是要有人監督一下機器人,氛圍編程才能發揮更好的作用。此外,它可能最適合應用于業余項目,而不是重要的工作任務。
這種情況可能不會持續太久。許多人工智能公司正在研究可以完全取代人類程序員的軟件工程代理人。人工智能已經在競爭性編程測試中取得了世界一流的成績,包括Google在內的數家大型技術公司已將大量工程工作外包給人工智能系統。Google首席執行官桑達爾·皮查伊最近表示,人工智能生成的代碼在Google部署的所有新代碼中占1/4以上。
如果我是一名初級程序員,我可能會對自己的就業前景感到恐慌。但我只是一個喜歡搗鼓的人,喜歡創造一些能改善我個人生活的工具。而氛圍編程(真正意義上的編程),是人工智能正明顯展現進步的一個領域。
自從上個月在播客里談論了自己的氛圍編程經歷,我已從其他幾十個人那里聽說他們在人工智能的幫助下構建了自己的工具。讀者們稱自己通過建立網站來追蹤雞蛋的價格,或搜索洛杉磯地區的Zillow房源信息,以發現帕利塞德山火后房租被哄抬的情況。
我并不是對人工智能盲目樂觀,也不是對人工智能編寫的應用程序不斷改進可能會引發的社會影響視而不見。我認為,可自動構建有用軟件的人工智能也有可能自動創建惡意代碼,甚至引發自動化網絡攻擊。我也擔心,軟件工程師只是第一個可能被人工智能工具替代的技術崗位。
這些工具本身很少能改變世界。但就目前而言,開發應用程序來自動處理我生活中煩人或耗時的任務,似乎是人工智能的最佳用途。