【為什麼我們要挑選這篇文章】神人工程師的故事百聽不膩!過去曾分享一人同時擔任 Google 與 FB 的工程師,以及資安界零負評的工程師。這次則是一位「隱藏版工程師」的故事。

當你聽到 Richard Hipp 這個名字時可能還一頭霧水,但現今手機的 APP 、電腦瀏覽器,甚至電視機上盒都可以看到他的發明 -SQLite 資料庫的運用,而他是如何創建這個發明的呢?(責任編輯:何泰霖)

本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請連繫出處
作者:量子位

一個 C 語言檔案,就能寫出一個 Web 伺服器?

最近這個軟體,在資訊圈裡很熱門。Hackernews 上討論熱度高達 700+。

有網友直接問:他 GitHub 帳號是哪個?

但也有網友質疑說,這個原始檔案得有幾萬行程式碼吧。

No,No,No!

只有 2592 行,而且完全開源!於是就有網友打算回去抄程式碼。

當然,討論中不乏各種對這位神人的仰慕,在這就不一一列舉了。

究竟是誰打造了這一「精品」,背後到底是何方神聖?

Richard Hipp,一個已經 60 歲的技術大神。

你沒有聽過他的名字,但你現在使用的手機,一定有幾十甚至上千個他開發的資料庫—— SQLite。比如,微信的聊天記錄就存在那裡面。

可以說,它是世界上裝機最多的資料庫,沒有之一。

以至於近期最新的 Web 伺服器一出,就有網友高呼:大神寫個淘寶吧。

用 C 語言打造出世界上使用最廣泛的資料庫 SQLite

說到 Richard Hipp,就不得不提他的成名作:SQLite。

SQLite 是一款輕型的資料庫,最初版本的大小只有 900KB 左右。

它最大的特點就是嵌入式,支持 Windows/Linux/Unix 等等主流的作業系統,同時能夠跟很多程式語言相結合,比如 Tcl、C#、PHP、Java 等,還有 ODBC 介面。

所以,SQLite 可以應用在非常多產品中,除了手機 APP 、電腦瀏覽器,甚至連電視機上盒也都有它的身影。

並且,與同類資料庫 Mysql、PostgreSQL 相比,它的運行速度也更快。如此強大的數據庫,Richard Hipp 是怎麼設計出來的呢?

這要追溯到 20 年前,他接下美國通用動力(General Dynamics,GD)國防企業集團的一個項目說起。

當時,他要解決如何在導彈的小型電腦上安裝資料庫的問題。

美國海軍所使用的 Informix 資料庫體積太大、無法安裝,而且它是一個單獨運作的程序,即使想方設法安裝成功,運作的效率也不高,甚至還要耗費大量人力來操控。

因此,Richard 想:「為什麼不能直接從磁碟上讀取數據呢?」樣既能提高運作效率,也能減小資料庫的大小。

於是,他用 C 語言寫了一個小檔案,它可以被嵌入到任何程式中,並且大小只有 900KB 左右!

所以,你就能 Get 為啥這個新伺服器,只有一個 C 檔案了吧。(一直都很 Richard 風格)

假設要啟動導彈上一個 GPS 程式,這個檔案只需在其內部創建一個小資料庫,就能來管理相應的數據。

第一版 SQLite 就這樣誕生了。

之後, Richard 對 SQLite 進行過多次的更新。2001 年剛發布第二版後不久, Motorola 就致電與他詢問合作意願,希望把 SQLite 應用在他們的手機上。

2005 年,Richard 直接開源了 SQLite ,並於同年獲得 Google O’Reilly  開源獎。

而他最新發布的網路伺服器 Althttpd ,其實從 2004 年就開始運行 SQLite 官網了。官網上介紹,Althttpd 的處理能力還可以。

截至到 2018 年, Althttpd 在 SQLite 官網每天處理約 50 萬個 HTTP 請求(每秒 5、6個),每天能夠提供 50GB 的內容(約 4.6 兆 MB/秒)。

受到 maker 父親啟蒙,神人工程師 Richard 的「寫程式」之路

他學習程式語言的緣起,還要從中學說起。

大概是在 70 年代左右,當時 Richard 就讀 9 年級。一次偶然的經歷,讓他看到電傳打字機,背後都連著一個大型電腦。

大概是這個樣子。

他被震撼到了,於是下定決心說:必須要學會寫程式。

執行力超強的他,立馬就去學校圖書館,將所有關於電腦科學的書都借出來。

實際上,只有三本。那天晚上,他就將三本書看完了,還開啟了學習用 BASIC coding的旅途。

不久後,Apple II 出來了。不太富裕的他,只買了一個主機板,然後自己搭建鍵盤、電源,並將它們全部焊接起來。

這當中還發生了一個小插曲。

第一個主機板不能用時,他打電話給蘋果。而蘋果的聯合創始人史蒂夫·沃茲尼亞克(Steve Wozniak)就寄給他另一個主機板。

組裝成功之後,他就試圖在連同影片記憶體總共只有 4K 的記憶體中編寫程式。當時還因為沒有電腦螢幕,他就調整無線電頻率,將它連接到電視機的天線上。

雖然解析度低,且整個螢幕只有 40 個字元寬,24 行高。但直到現在,他仍然表示:It was the most amazing thing in the world.

而有這樣的創造因子,其實是從他父親那裡繼承而來。 Richard 這樣形容他的父親:「他是那種最原始的 Maker,比如內燃機什麼的都自己來」。

而 Richard 則將這樣的想法——從零開始創造事物,放在了抽象的東西上。接觸到電腦之後,Richard 喜歡上了寫程式,原因很簡單:不需要用任何具象的材料,就能構建一個完全不同的世界。

事實上,他也一直在付諸實踐。

SQLite 之後,他接著寫了分散式版本控制系統 Fossil、 Bug 追蹤系統 CVSTrac ,以及解析器生成器 Lemon。

每次都是因為遇到了一個問題,然後就自己去編寫。因此就有網友戲稱:他是真正的 Maker。

不過也有網友為他解釋:自己寫的工具確實更順手。

大神 Richard 自認比寫出 SQLite 更難的事情

不過,對於這位大神來說,還有比寫程式更難的事情。

那就是讓他的妻子 Ginger Wyrick 嫁給他。甚至在結婚之後,公司也改名了,Hipp, Wyrick & Company。

並將所有股份轉讓給她。

Richard 在接受採訪時調侃,有時候一度不得不從她那購買一半的股票。

參考資料

hackernoon 》、《 changelog》、《 Althttpd

(本文經 AI 新媒體量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈1個C文件就寫出Web服務器!這個60歲程序員大有來頭,網友:打算回去抄代碼了〉。首圖來源:Method Youtube

更多神人工程師

【資安界明星逝世】因揭發 DNS 漏洞聞名,全球駭客推文緬懷「零負評工程師」
自備材料 + 自己寫程式,工程師 DIY 一台「樹莓派相機」送女友!
7 歲小孩獲得 IBM AI 認證,成為全球最年輕工程師!