新的紙和筆,新的藝術家

當程式碼成為中間產物,誰是軟體的作者?

11 分鐘

在一次持續近半年的工程實踐中,我只透過自然語言、產品文件、架構約束、運行結果和驗收回饋,與 Coding Agent 一起建立了幾款尚未發布的產品,涉及桌面端、瀏覽器擴充功能、服務端和資料庫。

我一行程式碼也沒有寫,也沒有讀。

但這不等於我把產品交給 AI了。我仍然決定它們要解決什麼問題,定義系統怎麼運作,判斷哪些邊界不可突破,驗證結果是否可靠,並對最終的軟體負責。改變的只是我與實現之間的介面。

這件事迫使我重新思考一個過去看似簡單的問題:一個人如果不再親手寫程式碼,卻仍然定義作品、判斷它是否成立並為其負責,他還是軟體的作者嗎?

這段實踐不能證明所有軟體都可以這樣開發。它甚至還不能證明這些尚未發布的產品最終會獲得市場認可。但至少在我們所做的這類應用中,以 Coding Agent 為核心的工作方式已經不只是提高程式效率的輔助手段,而開始成為一條可以持續規劃、實現、測試、修正和迭代的工程路徑。

真正重要的改變並不是「AI 會寫程式了」。真正的改變是,實現曾是軟體創造中最稀缺的環節之一,如今正逐漸退到幕後。

當實現不再是最稀缺的部分,人的工作會變成什麼?

這才是本文想討論的問題。

AI 的邊界正在移動

AI 從來不是一個固定不變的名詞。人們往往把電腦還不能穩定完成的事情稱為 AI;一項能力一旦成熟、可靠並進入日常產品,很快就會被視為普通技術,不再顯得像 AI。

我的經歷也恰好沿著這條邊界展開。中學和大學時,我做輪式機器人,依靠感測器和回饋控制實現循跡、避障與協同編隊;研究生期間,我研究電腦視覺,同時作為早期創始員工加入剛起步的商湯科技,參與把人臉活體檢測、工業視覺等技術帶進智慧型手機、高速鐵路等大規模應用。今天,通用大模型及其驅動的 Agent 又把邊界向前推了一步。這類系統不再只解決單點問題,而開始理解目標、呼叫工具,並在回饋中持續行動;我的工作也隨之轉向這類產品。回頭看,從控制運動、理解影像到執行完整任務,機器所能承擔的任務鏈越來越長,也越來越完整。

因此,本文所說的 AI,主要指由通用大模型驅動的 Agent,Coding Agent 是其中的典型代表。這類 Agent 的發展方向是自主執行更長程的任務,逐步實現自我演化,甚至訓練出自己的下一代版本。

2025 年,Andrej Karpathy 用「氛圍程式設計」(Vibe Coding)描述一種隨性的程式設計方式:告訴 AI 想要什麼,接受產生的程式碼,遇到錯誤就把報錯訊息交還給它,甚至可以忘記程式碼本身。 [1] 但這種放手有個前提:失敗的代價夠低。當時,面對嚴肅產品,我們仍使用 Cursor,由人主導開發並對程式碼負責,Agent 只作輔助。

到了 2026 年初,我們觀察到這條邊界再次向前移動。 Karpathy 後來把新的工作方式稱為 Agentic Engineering:開發者不再只是用 AI 補全程式碼,而是組織和監督 Agent 完成工程任務,同時保留審查與品質責任。 [2] 名稱本身並不重要。重要的是,AI 開始從一次次給予建議,變成能夠在限制下持續行動。

眼下已經發生的事情是:對一部分軟體創造者而言,自然語言和文件正在成為一種新的意圖表達層。

程式碼正在成為中間產物

計算機的發展史,也是一部不斷增加抽象層的歷史。

人們先用開關和插線操作機器,後來有了機器碼、組合語言和高階語言。每增加一層抽象,下面一層的複雜性就被封裝起來,人也離自己的意圖更近一點。

Coding Agent 為軟體開發增加了一個新的抽象層。它有些像是一台不那麼確定的超級編譯器:傳統編譯器把形式明確的程式轉化為機器指令,Coding Agent 則試著把人的意圖展開為介面、資料、服務和程式碼。

兩者的差異很重要。人類語言天然含混,需求經常殘缺,約束也可能彼此衝突。 Agent 不能把一句話機械地翻譯成唯一結果,只能在理解、規劃、實現、運作和驗證之間反覆循環。

所以,自然語言沒有取代程式語言。更準確地說,自然語言和文件正在成為人類維護的意圖層,程式碼則越來越像由 Agent 產生和維護的實作載體。

代碼因此更像中間產物,但“中間”並不意味著不重要。它仍然必須正確、安全、可維護,但不一定再由人逐行寫出和閱讀。就像大多數程式設計師不需要查看編譯器產生的機器碼,但仍然要為程式的行為負責。

這改變了我們應該把什麼寫得清楚。

過去,文檔經常只是程式碼的說明。在我們的實踐中,這層關係開始倒過來:程式碼越來越多地依據文件被產生和驗證。產品為什麼存在,系統怎麼運作,哪些邊界不可突破,什麼證據可以證明它滿足要求──這些過去常被視為代碼附屬物的內容,正在成為真正的源頭。

過去是:“Talk is cheap. Show me the code.”

現在是:“Code is cheap. Show me the doc.”

不再親手寫程式碼,並沒有降低表達的要求,反而要求我們表達得更精確。過去,一個含混的想法還會在漫長的實現過程中逐漸暴露、逐漸澄清;現在,Agent 會迅速把它變成一個能夠運作、看似完整的系統。含混並沒有消失,只是被埋進了實現,直到日後以故障和損失的形式顯現。

AI 沒有讓人免於思考。它只是讓人更難以實現的忙碌掩蓋想法的含混。

「紙和筆」的下半句

2025 年,王堅把 AI 比喻為人類「新的紙和筆」:它不是思想本身,而是人類思想的一種延伸。 [3] 我很認同這個比喻。

它帶著一種有趣的歷史對稱。 1948 年,圖靈曾設想,一個人拿著紙、鉛筆和橡皮,嚴格遵循一組規則,他的行為就可以被看作一台通用機器。 [4] 那時,人們用紙筆解釋人怎麼模擬機器。近八十年後,方向似乎反了過來:機器正在成為新的紙和筆,幫助人們將意圖展開為可以運作的世界。

這個比喻也讓我想起大學時的生活。除了睡覺,我大概有三分之一的時間都在軟體和硬體之間來回折騰:安裝作業系統、配置環境、學習工具,也擺弄單片機、調試輪式機器人,讓它們協同編隊,再做一些自己想做的演示。那個過程很有樂趣,但我也常常把更多時間花在準備創作上,而不是創作本身。就像一個畫家總是在尋找紙張、製作顏料和修理畫筆。

說 AI 是新的紙和筆,並不是說它無所不能。紙不會自動寫出小說,顏料不會自動畫出好畫,相機也不會自動拍出好電影。工具降低了表達成本,卻不替創作者決定什麼值得表達。

Coding Agent 比紙筆主動許多。它會提出建議、執行任務,也會在一定範圍內做出選擇。但只要它不能為作品的目的和後果承擔責任,它就不會因為參與更多而自動成為作者。

真正令我感興趣的,是「新的紙和筆」的下半句:

如果有了新的紙和筆,我們需要什麼樣的藝術家?

軟體創作的重心正在上移

「程式設計師是藝術家」不是一個新說法。

1974 年,Donald Knuth 在《作為藝術的電腦程式設計》中討論程式設計為何既需要知識、技巧和創造力,也能產生具有美感的物件。 [5] 2003 年,Paul Graham 在《駭客與畫家》中提出,駭客與畫家都是「創造東西的人」;對軟體創造者而言,電腦就像顏料之於畫家、混凝土之於建築師,是一種表達媒介。 [6]

所以,AI 並沒有讓程式設計師第一次成為藝術家。它改變的是藝術主要發生在哪裡。

過去,程式設計師的藝術很大一部分發生在程式碼內部:一個演算法是否精巧,一組抽像是否簡潔,一個系統是否以盡可能少的結構容納了足夠的可能性。這種美不會因為 Agent 出現而消失。

但當更多實現工作下沉到 Agent,人的創作重心會向上移動。軟體的藝術將更體現在整部作品中:選擇什麼問題,理解怎樣的人,建立什麼秩序,捨棄哪些可能,怎樣回應用戶,又以什麼方式進入人的生活。

產品和體驗層面的創造早已存在。變化在於,當實現不再佔據大部分注意力,這些工作可能成為更多軟體創造者的主要工作。

程式碼的優雅仍然重要,但程式碼從來不是軟體之美的全部。人與 AI 共同完成的軟體,也不應只被看作一堆能夠運作的程式碼,而應被視為一個完整的軟體作品。

這就是「新的藝術家」所指向的改變。

如果用現有的職業語言近似描述,這個角色有些像是產品經理和架構師的結合:既追問做什麼、為誰而做,也追問系統怎樣長期成立、邊界在哪裡。但這兩個稱呼還不夠。軟體的作者還需要美感、同理心、取捨能力,以及對整體結果負責的意願。

這裡的「藝術家」不是更高貴的職位,也不一定是某一個人。它是一種對完整作品負責的作者角色,也可以由一個團隊共同承擔。

工程讓作品可靠地存在;藝術決定它為什麼存在,以及如何進入人的生活。

工程不會消失,責任不能外包

新的藝術家並不是提出一個好點子,然後等 AI 把剩下的事情做完。

紙筆普及以後,寫作仍需要訓練;相機普及以後,攝影仍需要判斷。 Coding Agent 降低了實現門檻,卻沒有自動解決複雜系統中的架構、安全性、效能、品質和維護問題。

我不讀程式碼,也不代表我放棄了工程控制。控制點發生了變化:從逐行檢查實現,轉向明確系統目標、架構原則、資料邊界、權限模型、測試標準、可觀測性和驗收結果。

這不是把嚴格變成寬鬆,而是把嚴格放在不同的地方。測試是否涵蓋了真正的風險?運行結果能否證明系統滿足約束? Agent 所給的解釋是否有證據支持?一個功能能夠運行,是否也意味著它值得交付? AI 可以參與這些工作,但最終必須由人們判斷證據是否可信,並承擔判斷錯誤的後果。

有些領域——例如基礎設施、安全關鍵系統和底層軟體——仍會長期要求人們深入程式碼,甚至比過去更需要少數真正理解底層的人。新的抽象層從來不會消滅下面的層。高階語言沒有消滅彙編,雲端運算也沒有消滅作業系統。它只是讓更多創造者不必在每一次創造中重新穿過所有底層。

我選擇不寫也不讀程式碼,是一項有邊界的實踐,不是一條適用於所有人的規則。它的價值不在於證明程式碼已經過時,而是幫助我看清楚:當程式碼不再是人控制軟體的唯一介面,哪些工作仍然不能被交出去。

答案首先是判斷,其次才是責任。

更強的工具也可能帶來更大規模的平庸。實現成本下降以後,我們很可能會先得到更多重複、粗糙、沒有真實需求的軟體。紙和筆不會自動帶來文學,Coding Agent 也不會自動帶來軟體的文藝復興。

AI 沒有消除稀缺性,它只是轉移了稀缺性。

過去,軟體生產的瓶頸主要在於程式設計能力、工程資源和實現時間。隨著這些限制減弱,問題判斷力、產品直覺、系統認知、美感、對人的理解,以及為後果負責的意願,就會變得相對更加稀缺。

當「怎麼做成」越來越便宜,「究竟做什麼」就會變得越來越昂貴。

從程式碼的作者到軟體作品的作者

Bret Taylor 曾經引用 Arya Asemanfar 的一個概括:AI 可以替你起草,但你仍然是作者。 [7] Addy Osmani 則是把開發者的新角色描述為架構師和主編。 [8]

作者並不等於親手完成作品中的每一個動作。建築師不親手砌下每一塊磚,導演也不操作片場裡的每台攝影機。但他們必須知道作品要成為什麼,能夠判斷它是否成立,並對作品整體負責。

軟體正在發生同樣的變化。

過去,我們常常用「誰寫了程式碼」來辨識軟體的作者。以後,作者身分可能越來越取決於另一組問題:誰定義問題,誰建立約束,誰作出關鍵取捨,誰判斷作品已經完成,又由誰承擔它進入現實世界之後的後果。

這也可能改變軟體的經濟單位。過去,通常只有足夠多人共享的需求,才值得被開發成一套軟體。當實現成本大幅下降,一個團隊、一個家庭,甚至一個人的特殊工作流程,也可能值得擁有自己的軟體。未來未必人人都要成為程式設計師,但更多人可以成為軟體的作者。

AI 把越來越多的實現工作向下推,也把人的控制點和創作重心向上推了一個抽象層。程式設計師將不再只是程式碼的作者,而會越來越成為軟體作品的作者——這就是我所說的「新的藝術家」。

新的紙和筆已經出現。但新的文藝復興不會因此自動到來。它不取決於 Agent 能產生多少程式碼,而取決於我們是否有判斷力,也是否願意承擔責任,回答一個比「怎麼做成」更困難的問題:

什麼值得被創造,我們又希望人怎麼感受它?


參考資料

[1] Andrej Karpathy,介紹「Vibe Coding」的 X 貼文,2025-02-02。

[2] Andrej Karpathy,提出「Agentic Engineering」的 X 貼文,2026-02-04。

[3] 柳寧馨,《王堅:創新源自「不完美」與「跨界」》,《21世紀經濟報道》,2025-09-25。

[4] Alan M. Turing,“Intelligent Machinery”,National Physical Laboratory report,1948。

[5] Donald E. Knuth,“Computer Programming as an Art”Communications of the ACM,17(12),1974,pp. 667–673。

[6] Paul Graham,“Hackers and Painters”,2003-05。

[7] Bret Taylor,“AI is your ghostwriter, but you are the author”,LinkedIn,2026-02-10。

[8] Addy Osmani,Beyond Vibe Coding,O’Reilly Media,2025-08。