EP 4792025-08-291:50:28
Task Manager 作者聊除錯與自閉症
Dave Plummer
前 Microsoft 工程師 Dave Plummer 談親手寫出 Task Manager、Zip 與 Pinball 移植的歲月,也聊自閉症怎麼形塑他的工作與婚姻。
Dave Plummer: Programming, Autism, and Old-School Microsoft Stories | Lex Fridman Podcast #479在 YouTube 看 ↗
重點6 條
- 從收音機行到 Microsoft:Dave 十一歲騎腳踏車去店裡玩剛到貨的電腦,高中一度輟學,靠自己寫的硬碟快取軟體賺學費,最後翻通訊錄找 Microsoft 員工的信箱冷信自薦,才進了公司。
- 寫出了人手一份的工具:他在 Microsoft 寫出 Task Manager、Zip Folders,還把 Space Cadet Pinball 移植到 Windows,三樣都先是自己的副業,後來才被收進系統,一路用到今天。
- 除錯占了八成人生:他形容 Microsoft 的日子八成時間在修別人的程式碼,從跨團隊的記憶體對齊之爭,到藏在 Task Manager 裡多年的一個百分比錯誤,都靠死磕除錯解決。
- 工作列為什麼不能自訂:聊到 Windows 近年越來越不給進階使用者自訂空間,他跟 Lex 對這到底是複雜度真的變高、還是工匠精神消失了,有不同看法。
- 自閉症是單一性思維:他解釋自閉症的核心不是缺乏同理心,而是一次只能深度投入一件事,也因此很難讀懂別人沒說出口的想法,連電話都比視訊難應付。
- 靠明確溝通撐過 31 年婚姻:他和太太發展出一套固定的口頭確認機制,來補上他讀不到的社交線索;也建議想幫助自閉症者的人,有話直說,不要留給對方去猜。
時間軸26 段
Dave 回憶十一歲騎腳踏車去收音機行玩剛到貨的 TRS-80,後來換成 Commodore 64,手刻組合語言遊戲,卻在備份時把唯一的原始碼洗掉。
他形容自己不是一次決定輟學,而是一天天少去學校,直到不敢再回去;後來自己去說服校長讓他重讀,才把高中念完。
大學時靠自己寫的硬碟快取軟體 HyperCache 賺學費,還翻出當年使用者登記卡上的信箱,寫信冷聯繫 Microsoft 員工毛遂自薦,意外促成一通電話面試。
他解釋 MS-DOS 本質上只是個指令啟動器,靠與 IBM PC 綁定成為業界標準;640K 的記憶體上限逼得每個工程師都得斤斤計較用量。
他先在 Windows 95 團隊做簡報快取,半年後轉去 shell 團隊參與 NT;兩人也聊到史上最有影響力的作業系統排名,95 之外還有 OS/360 與 Linux。
一天從下載上萬人份的通訊錄開始,接著處理整夜壓力測試留下的當機案例;把 Windows 95 介面搬上 NT,還得把整套程式碼從 8 位元改成 16 位元的 Unicode。
NT 核心是找來 Dave Cutler 這批原本在 DEC 做尖端專案的團隊從零打造,他形容 Cutler 治軍嚴格,絕不容忍馬虎的程式碼進到核心。
他認為工具決定一切,當年沒有 Git,只能用 diff 手動拼補丁;也提到自己在小組裡輸掉一場記憶體對齊的技術辯論,多年後仍認為自己是對的。
他說自己八成時間都在除錯而非寫新程式,舉了 Task Manager 一個「總 CPU 用量超過 100%」的老臭蟲為例,最後靠把自己電話號碼寫進 assert 訊息才等到有人回報,那行程式碼至今還留著。
他先在家寫出雛形,進公司後才拿到內部 API 換成即時準確的資料;堅持不連結 C runtime 以縮小體積,原始版本只有 87K,還用類似漢明碼的技巧只重繪真正變動的儲存格。
Space Cadet Pinball 是他被要求三個月內移植到 NT 的展示作品,遊戲核心沿用原廠的巨大狀態機當黑盒子;後來又在 XP 上市前臨危受命,趕出 Windows 的產品啟用系統。
他抱怨現在的 Windows 越來越不給進階使用者自訂空間,兩人為此辯論:到底是複雜度真的變高,還是開發排程壓力讓工匠精神消失了。
他在家寫的 Visual Zip 賣出幾千套,換來一台紅色 Corvette 的頭期款;後來 Microsoft 主動打電話收購,才發現對方根本不知道作者就在公司裡上班。
他簡述 ZIP 格式源自 BBS 年代下載共享軟體的需求,PKZIP 作者 Phil Katz 讓它成為業界標準;也提到參與過 Windows Media Center 最早的原型,並訪問過寫出 NT 藍畫面死機畫面的工程師 John Vert——白底藍字配色其實只是巧合。
他認為 NT 核心的程式碼水準遠高於使用者層的程式;也回憶剛進公司六週時,看同事 Laura Butler 徒手用 WinDebug 追出死結問題的功力,讓他印象深刻。
他多年用 C++ 與組合語言,最近為了訓練 AI 玩 1980 年的 Atari 遊戲 Tempest,才第一次認真學 Lua 與 Python,靠逆向工程抓出遊戲記憶體裡的參數餵給強化學習模型。
他的公司靠銷售優化軟體,在網路廣告失控燒到一天上萬美元後意外爆紅,卻也因為提醒使用者續約太頻繁被州檢察長盯上,最後和解限縮成一週一次。
他反過來檢討 Windows 帳號登入很難跳過、「建議設定」其實會偷偷把預設瀏覽器換成 Edge,認為這種手法短期有效,長期只會讓使用者不信任這個系統。
他心中最愛的是 Windows 2000 與 XP;解釋吃角子老虎機其實是先決定要不要中獎,才反過來產生對應畫面;近半年多迷上修復 PDP-11,其中一台自己組出四百萬位元組記憶體的頂規機種,還得重寫 BSD 核心讓面板指示燈正常閃爍。
他解釋自閉症的核心理論叫單一性思維,一次只能深度投入一件事,也同時有 ADHD;最大的困難是猜不到別人心裡在想什麼,只能靠模擬對方反應應付社交,電話尤其難應付,也提到剛進公司時在比爾蓋茲面前忍不住糾正一個小數字的尷尬經驗。
他建議自閉症者求職要靠作品說話,不要靠人格魅力;當上主管後才發現自己得刻意學著開口問部屬真正在意什麼,因為光靠觀察猜不出來。
他習慣在社交互動結束後回放整個過程,檢討哪裡做錯了;也澄清自閉症不是沒有同理心,而是要先聽到對方講出感受才能理解,掩飾則是刻意演出符合社交期待的表情與語氣。
他形容情緒崩潰時前額葉功能像暫時關機,進入接近爬蟲腦的恐慌狀態;也談到跟太太結婚 31 年,靠一套固定的口頭確認機制補上他讀不出來的社交線索。
他認為一到兩成的人多少落在自閉症光譜上,只是沒有嚴重到構成障礙;也提到頂尖工程師常見的那種單一焦點與拆解問題的執著,跟自閉症特質很像。
訓練 AI 玩 Tempest 已接近完成,剩下調超參數;也聊到手上在修的 PDP-11 硬碟,以及自己發起的 GitHub Primes——把同一個質數演算法丟進上百種語言裡每晚跑效能競賽,Zig 目前領先 Rust 與 C++。
他分享靠 AI 生成程式碼學 Python 的心得,形容那是 vibe coding;兩人討論 AI 會不會把工程師的角色變成更像在下指令的建築師;被問到人生意義,他的答案是做出有用又有創意的東西。