📅 2026 年 7 月
⚠️ 引用自原始來源,已核實 — 分享前請先確認最新資訊


如果你輸入泰文時不會出錯
寫 Go 卻覺得太簡單
或好奇為什麼新語言都沒有繼承

你正在使用一個男人花費 40 年打造的東西

Rob Pike


加拿大電腦怪咖

Rob Pike 出生於 1956 年,成長於電腦仍占滿整間房間的年代

在多倫多大學取得學士學位後,前往加州理工學院深造,從一開始就對作業系統與程式語言感興趣

1980 年進入貝爾實驗室,Unix、C 語言以及無數程式語言的發源地

在那裡,他與 Ken Thompson(Unix 之父)及 Dennis Ritchie(C 語言之父)合作,兩位都是業界公認的大師


貝爾實驗室時期

打造 Unix 第一個視窗系統

1981 年,Pike 為 Unix 撰寫了第一個視窗系統,當時 Windows 與 Mac GUI 尚未問世。後續發展成 1984 年的 Blit 終端機,支援重疊視窗

Plan 9 — 超越時代的作業系統

Pike、Thompson 與 Ritchie 團隊打造 Plan 9,將「萬物皆檔案」的理念發揮到極致

Unix 已把檔案系統、網路、裝置都視為檔案,但仍有例外;Plan 9 甚至讓 GUI 視窗也成為檔案,你可以透過網路掛載他人的視窗來查看

Plan 9 極具前瞻性,卻未成為主流,世界走向 Windows 與 Linux

但 Plan 9 的理念成為 Pike 後續所有作品的 DNA

Inferno — Plan 9 的網路版

繼 Plan 9 之後,他們打造 Inferno OS,從設計之初就針對網路環境

附帶的 Limbo 語言,外觀與 Go 極為相似;在此之前,Pike 已在 1989 年開發 Newsqueak,專門實驗並行程式設計

這正是關鍵:Go 今日使用的 goroutine 與 channel,其原型來自 Newsqueak(1989)→ Alef(1992)→ Limbo(1995)→ Go(2009),這條血緣極為清晰。大多數 Go 開發者不知道,自己每天使用的並行模型已近 40 歲

Inferno 與 Plan 9 一樣,超前於其時代

UTF-8 — 你每天不知不覺使用的編碼

這是電腦界最精彩的起源故事之一

1992 年 9 月,Pike 收到 X/Open 委員會的郵件,請他審閱名為 FSS/UTF 的新編碼提案。Pike 列出良好編碼應具備的條件,發現 FSS/UTF 至少缺少其中一項

當晚,Pike 與 Ken Thompson 在新澤西一家餐廳用餐,Ken Thompson 在餐墊上設計出 UTF-8 的位元封裝方式,Pike 就坐在對面

當晚他們回電 X/Open,表示週一就能完成實作

同一週五,Plan 9 已全面支援 UTF-8(原始碼記錄:1992 年 9 月 4 日 19:51:55)

UTF-8 的核心是與 ASCII 相容,A-Z 仍使用 1 byte,泰文、中文、日文只需多加幾個 byte

今日 UTF-8 涵蓋全球近 98% 的網站。每次你傳送泰文訊息而不亂碼,就是在使用 Thompson 設計、Pike 在那個晚餐餐廳旁觀的成果

Pike 曾親自澄清:「UTF-8 was designed, in front of my eyes, on a placemat in a New Jersey diner one night in September or so 1992」—— 不是 IBM 設計的

《The Unix Programming Environment》

1984 年,Pike 與 Brian Kernighan(另一位貝爾實驗室傳奇人物)合著《The Unix Programming Environment》

這本書闡述 Unix 哲學:寫只做一件事且做好的程式、用管道串接、以文字作為介面。這些哲學成為 25 年後 Go 的骨幹


Google 與 Go 的誕生

起源:改變一切的 45 分鐘傳奇

2002 年,Pike 加入 Google

根據 Pike 自己稱為「起源神話」的故事,2007 年某天,Google 的一個大型二進位檔編譯花了極長時間(傳聞 45 分鐘)。Pike 與 Robert Griesemer 聊天等待 Ken Thompson 加入

2007 年 9 月 21 日,三人在 Google 會議室的白板上開始草擬新語言

目標明確:即使程式碼庫再大也要快速編譯;沒有繼承、沒有例外;內建並行(goroutine + channel 繼承自 Newsqueak 與 Limbo);垃圾回收不拖慢速度

Pike 提議命名「go」,因為簡短易輸入

Go 正式推出

2009 年 11 月,Google 將 Go 開源

Go 的不同之處在於:它不是學院派語言,沒有論文支撐,也沒有複雜型別系統;它是一門給想把工作做完的工程師的語言

編譯成單一靜態二進位檔,沒有相依地獄;內建 gofmt,讓所有人的程式碼風格一致,再也不用爭論格式

Go 1.0 於 2012 年 3 月釋出,並維持向後相容至今

Go 為何勝出

Pike 設計 Go 遵循他在 2012 年演講總結的單一原則:「Less is exponentially more.」

不只是少做,而是移除所有不必要的東西,只留下真正必須的功能

Go 選擇移除繼承(改用組合 + 介面)、例外(改用錯誤回傳值)、泛型(初期移除,Go 1.18 才加入)

Go 所缺少的一切,正是 Pike 認為是負擔而非特性的部分

成果:Go 成為雲端基礎設施的第一語言,Docker、Kubernetes、Terraform、Prometheus 皆以 Go 撰寫


Pike 的哲學

Pike 不多話,但每次發言都犀利

「Less is exponentially more.」 Go 與 Pike 所有作品的核心

「Object-oriented design is the roman numerals of computing.」(2004)物件導向設計是電腦界的羅馬數字:可用,但不應是預設

「Concurrency is not parallelism.」 2012 年演講標題,成為經典名句:並行不等於平行

「A little copying is better than a little dependency.」 複製少量程式碼,勝過新增整個相依套件(Go 諺語)

「Clear is better than clever.」 清晰的程式碼,勝過聰明的程式碼(Go 諺語)

「Don't communicate by sharing memory; share memory by communicating.」 不要透過共享記憶體來溝通,要透過溝通來共享記憶體——goroutine + channel 的核心


今日

Pike 並未退休(儘管 Wikipedia 多次試圖如此描述,但缺乏來源)

他自稱 「Professional dilettante」,仍在審查 Go 程式碼,不斷在 GitHub 提交新程式碼

近期作品:Ivy(APL 風格計算機)、自製 Lisp 語言、日文工具

2024 年在 GopherConAU 以「What We Got Right, What We Got Wrong」為題演講,坦承 Go 的成功(規格、gofmt、相容性、並行)與失誤(async/await 是否優於 CSP?並行與平行是否長期解釋錯誤?)

2025 年發文「On Bloat」,探討當套件有大量依賴者時,小型套件如何變成問題

2026 年 1 月深入探討 Ivy 的高精度數學

仍在 Mastodon 與 Bluesky 活躍,生活往返美國與澳洲,與妻子 Renée French(插畫家,也是 Go gopher 的創作者)同行


Pike 與泰國程式設計師

UTF-8 讓泰文得以在網路上正常顯示;在此之前,TIS-620 與 Windows-874 經常衝突

Go 在泰國科技公司日益普及,Agoda、LINE MAN Wongnai、SCB TechX 皆已在正式環境使用 Go

Pike 的「less is exponentially more」哲學,在 AI 可生成百萬行程式碼的時代更顯重要:少做但做好,而非多做而混亂


總結

Rob Pike 用 40 年時間解答同一個問題:如何讓電腦對人類更簡單

我們每天使用的 UTF-8、數百萬台伺服器上運行的 Go,以及成為新一代開發者 DNA 的「less is exponentially more」哲學

這一切,都始於一個男人等 C++ 編譯 45 分鐘,然後心想「我們可以做得更好」


來源:Wikipedia、go.dev、Rob Pike's blog (commandcenter.blogspot.com)、UTF-8 歷史(Pike 2003 年親述)、Go FAQ、GitHub (github.com/robpike)、Wikiquote