軟體之 Emacs 化:客製化個人化應用程式的興起
幾十年來,在有軟體需求與擁有解決工具之間的差距,一直是由搜尋 App Store、與「還算好用」的開源專案妥協,或是花好幾週學習新語言來填補。但隨著我們進一步邁入 AI agent 的時代,一種根本性的轉變正在發生。我們正在進入「Emacs 化」的時代。
這個概念由漏洞研究員 rdslw 推廣,它指出軟體正從我們消費的產品轉向我們「擠出」的配置。當生成功能完備、原生介面的成本降至接近於零時,使用通用軟體的動機就會消失。
「還算好用」的摩擦力
許多開發者發現自己陷入了「還算好用」工具的循環中。以平凡的 Markdown 檢視器為例。雖然 Markdown 是開發界的通用語言,但閱讀體驗往往是碎片化的。你有像 glow 或 Markless 這樣的 Terminal User Interfaces (TUIs),它們功能強大但受限於終端機的等寬字體限制。另一方面,你有像 Obsidian 或 Typora 這樣的完整編輯器,它們非常適合寫作,但當你只想在不干擾精心佈置的工作空間時查看檔案時,它們又顯得過於侵入性。
當現有的選項失效時——例如缺乏基本搜尋、隱藏在應用程式內購買之後,或是無法支援簡單的複製貼上——傳統的反應是忍受它。然而,在一個 AI agent 可以以專業水準編寫 SwiftUI 代碼的世界裡,反應從「我該下載哪個 App?」轉變為「為什麼我不直接叫它幫我做一個呢?」
什麼是 Emacs 化?
要理解 Emacs 化,必須觀察 Emacs 的文化。對於「終身使用者」來說,Emacs 不僅僅是一個文字編輯器;它是一個可塑性的平台。使用者會編寫自己的 Lisp 函數來解決個人的小需求,創造出一個龐大且客製化的環境,這完全是「展示與分享」而非「Product Hunt」式的產品。
Emacs 化是指將這種精神應用於所有軟體。這是向個人化軟體的轉型:工具是高度特定化的,可能僅對其創造者有用,並且更多地被視為一種配置而非產品。
這種轉變的關鍵特徵包括:
- 從原始碼到提示詞 (Prompts): 在過去,工具的價值在於其原始碼。在 Emacs 化的世界中,如果一個 agent 寫了 SwiftUI 代碼,代碼本身就只是順帶的興趣。真正的價值在於用來生成它的想法與提示詞。
- 通用介面的消亡: 多年來,Electron 統治了領域,因為構建原生介面很困難且昂貴。現在,agent 可以可靠地構建 macOS 或 Windows 的原生介面,讓使用者可以繞過 Electron App 的「閃爍 Chromium」體驗,轉而選擇精簡、原生的性能。
- 客製化實用性: 軟體成為解決特定、即時問題的一種方式——例如為
bpftrace建立一個自定義的視覺化工具,或是帶有 SQLite FTS 索引的專用 Markdown 檢視器——而無需承擔維護通用產品的負擔。
反對觀點:維護與脆弱性
雖然「擠出」軟體的展望是令人釋放的,但它也帶來了新的挑戰。圍繞這一趨勢的社群討論突顯了顯著的緊張關係:維護成本。
一些開發者認為,個人化軟體可能是一種脆弱配置的「不神聖組合」。正如一位評論者所說,對低維護生活的渴望往往與為每件事都建立客製化工具的衝動相衝突。我們存在一種風險,即我們用一堆「slopcode」取代了穩定、儘管不完美,但專業的軟體,而這些「slopcode」會在作業系統更新或依賴項變動時立即崩潰。
此外,還有長壽的問題。如果一個工具是在 30 分鐘的互動式提示下生成的,那麼當它壞掉時,去除錯 (debug) 的動機比你親手花好幾個月構建的工具要低得多。
極客軟體的未來
儘管存在脆弱性的風險,軟體的「Emacs 化」承諾為進手用戶提供一個更有趣的 landscape 領域。我們正邁向一個專業工程師與一般用戶之間的「差距」正在被縮小的世界。程式設計正在變成一種高階配置。程式設計正在變成一種高階配置。
這種轉變允許改善「笨重」的終端機 App,並為先前僅限於命令列的複雜系統工具建立原生介面。目標不再是在 App Store 尋找完美的 App,如此而是意識到平台本身已變得極具可配置性。
在這個新範式中,開發者能做出的最有價值的貢獻,不一定是一份精緻的二進位檔,而是一張解決問題的截圖與用來達成該目標的提示詞。通用工具的時代正在結束;客製化、擠出的應用程式時代已經開始。