我的小狗Pixel不喜歡我的沙發鍵盤。它經常占據我大腿上的位置,而我那隻12歲的約克夏貴賓犬認為這是它的專屬領地。在它看來,優質的擁抱時光絕不能因為我想寫作或編程而受到影響。
昨晚就是這種情況,我的好孩子爬到我的肩膀上,依偎著我,然後睡著了。就在那一刻,我意識到像VS Code和Xcode這樣強大的開發環境實際上已經過時了。
我正在開發兩個蘋果編程項目,每個項目都將在iPhone、iPad、Mac和Apple Watch上運行。我正在構建總共八個二進制文件,最終將通過蘋果應用商店分發。
一個項目是3D列印耗材管理項目,幫助我跟蹤3D印表機耗材卷。我有120個線軸,放在四個存儲架上,每個架子有五層。這些線軸不斷在存儲架和我的八台3D印表機之間移動。五台印表機可以同時使用四個線軸,一台可以使用八個線軸,另外兩台每次只能使用一個線軸。
iPhone應用使用NFC標籤,使跟蹤這些線軸的移動變得超級簡單,並使用內置攝影機為每個線軸拍攝參考圖像。Watch應用檢查和更新位置,而Mac應用提供耗材庫存的桌面視圖。
第二個項目最初基於耗材管理系統,但已經發展成更多功能。這個項目管理物理和數字縫紉圖案。許多縫紉愛好者,比如我的妻子,收集了數百甚至數千個圖案,跟蹤它們往往是一個相當大的挑戰。
我的代碼使用NFC標籤和照片來管理物理圖案。代碼還添加了大量設備端AI來解析圖案並發現名稱、類別、供應商和其他相關欄位數據。這種方法避免了用戶必須將所有這些資訊輸入程序的需要。縫紉應用在最初作為耗材管理應用的基本功能基礎上,添加了深度的編目工具和功能。
耗材應用已經相當成熟。我已經積極使用了大約三個月,準備開始添加各種應用內購買功能。縫紉圖案應用仍處於相對早期的開發階段。讓設備端AI可靠工作需要大量時間,因為圖案和格式有很多變化,每家公司的做法都不同。仍有許多用戶界面元素需要設計並連接到所有四個應用平台。
永遠不要讓任何人告訴你,你可以僅僅通過說幾句話或打個響指就能進行編程。如你在上面看到的,這些產品很複雜,儘管AI完成實際編程。
在傳統編程時代,存在一個可以描述為編輯→構建→測試→調試,然後回到編輯的開發循環。
所有集成開發環境(IDE)都圍繞這個循環構建。IDE界面的大部分結構圍繞文件樹和編輯支持工具,從語法著色到命令完成,再到指出循環開始和結束的垂直標記。IDE還包括調試器。你在編輯器中設置斷點,逐行循環代碼,逐步觀察代碼運行。
語音編程也有一個循環,非常相似。
不是編輯,而是指令,即向AI發出關於你想要什麼的提示。構建保持不變。代碼必須轉換為工作程序。這一步通過解釋或編譯然後組裝程序來完成。
測試階段也保持不變。但你不是自己進行調試,而是必須引導AI。AI可以找到並修復編碼錯誤,但通常需要指導來找到問題發生的位置。你不能只是說"修復它"並假設AI能做到。對於相當多的錯誤,它需要一些有經驗的指導。
所以循環變成了指令→構建→測試→引導,然後循環回到指令。
注意,語音編程循環實際上沒有編輯和調試元素。大多數人選擇和定製他們的開發環境來優化編輯和調試,因為傳統上大部分時間都花在這上面。
使用語音編程,大部分時間都花在聊天界面中,通常只是一個終端窗口。你唯一需要接觸開發環境的時間是啟動構建。然後你運行一直在工作的程序,看看什麼有效,然後回到聊天或終端界面來引導AI。
幾乎沒有時間使用IDE來做我們歷史上需要IDE做的事情。
這把我們帶回到Pixel。昨晚,它依偎在我的左肩膀上,這意味著我的左臂和手被占用了。這讓我無法使用物理鍵盤。但我可以用右手控制鼠標,用聲音與AI交談。
我有一個鼠標按鈕編程為按回車鍵,另一個啟動Wispr Flow,我在Mac上使用的聽寫軟體。
我所有的實際編程工作都在iTerm2中完成,這是一個免費的MacOS終端程序,我設置了多個標籤頁,每個項目一個。
以下是我昨晚連續兩小時的循環過程:
我連續做了兩個小時這個過程。兩個項目都有了相當大的進展。我在IDE中唯一做的事情就是選擇菜單項,將測試代碼通過蘋果發送到我的設備。
如果我製作的不是蘋果應用,我甚至可以使用AI啟動構建。我根本不需要使用IDE。
今晚,我在程序上做了更多工作。現在,Pixel依偎在我妻子身邊,所以我有兩隻手可以自由工作。我又花了幾個小時"編程",除了將代碼發送到TestFlight(蘋果的代碼測試網關)外,仍然沒有使用Xcode IDE做任何事情。
去年,在我開始認真進行大項目的語音編程之前,我以為我需要一個支持AI的IDE。所以,我將所有編程從PhpStorm(一個我用於WordPress插件的備受喜愛的IDE)轉移到VS Code。我在一篇文章中寫了這個轉變,認真地說選擇正確的IDE對於充分使用AI功能是重要的。
我不知道這個觀點會如此錯誤。
在過去幾天裡,我一次也沒有使用編輯器或調試器。
用一隻手和語音聽寫,我開發了兩個完全獨立的Mac應用。我在一個簡單的終端程序中工作,有兩個彩色編碼的窗口和第三個窗口,合併了兩個應用。
我不再因為沒有空閒的手而避免使用IDE。今晚我不使用IDE是因為它完全不必要。
終端和語音聽寫過程令人驚訝地輕鬆,除了稍微不安的感覺提醒我這種方法有多奇怪,特別是對於一個對IDE這整個概念有著數十年深厚情感聯繫的人來說。
Q&A
Q1:什麼是語音編程?它是如何工作的?
A:語音編程是通過語音指令和AI對話來進行軟體開發的方法。開發循環從傳統的編輯→構建→測試→調試變成了指令→構建→測試→引導。開發者通過語音向AI發出指令說明需求,AI生成代碼,然後開發者測試並引導AI修復問題。
Q2:語音編程是否意味著IDE完全沒用了?
A:幾乎如此。在語音編程中,大部分時間都花在聊天界面或終端窗口中,只有在需要啟動構建或發送代碼到測試平台時才需要接觸IDE。傳統上用於編輯和調試的IDE功能基本不再需要,因為AI承擔了代碼編寫和錯誤修復的工作。
Q3:僅用語音和鼠標真的能完成複雜的應用開發嗎?
A:是的。作者用這種方法開發了兩個複雜的蘋果應用項目,包括3D列印耗材管理應用和縫紉圖案管理應用,每個項目都要在iPhone、iPad、Mac和Apple Watch上運行。通過語音聽寫軟體和鼠標操作,可以完成從需求描述到代碼生成的整個開發流程。






