1個C文件就寫出Web服務器!這個60歲程序員大有來頭
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。
一個C文件,就寫出一個Web服務器。
最近這個軟件,在圈里很火。Hackernews上熱度高達700+。

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

但也有網友質疑說,這個源文件得有幾萬行代碼吧。

No,No,No!
只有2592行,而且完全開源!于是就有旁友打算回去抄代碼。

當然,到處還流淌著各種對大佬的仰慕,在這就不一一列舉了。(手動狗頭)

究竟是誰打造了這一“精品”,背后到底是何方神圣?
Richard Hipp,一個已經60歲的技術大牛。
你沒有聽過他的名字,但你當前使用的手機,一定有幾十甚至上千個他開發的數據庫——SQLite。比如,微信的聊天記錄就存在那里面。
可以說,它是世界上裝機最多的數據庫,沒有之一。
以至于最新的Web服務器一出,就有網友高呼:大神寫個淘寶吧。

打造世界上使用最廣泛的數據庫
說到Richard Hipp,就不得不提他的成名作:SQLite。

SQLite是一款輕型的數據庫,最初版本的大小只有900KB左右。
它最大的特點就是嵌入式,支持Windows/Linux/Unix等等主流的操作系統,同時能夠跟很多程序語言相結合,比如 Tcl、C#、PHP、Java等,還有ODBC接口。
所以,SQLite可以應用在非常多產品中,除了手機APP、電腦瀏覽器,甚至連電視機頂盒中也有它的身影。
并且,與同類數據庫Mysql、PostgreSQL相比,它的運行速度也更快。
如此強大的數據庫,Richard Hipp是怎么設計出來的呢?
這還要追溯到20多年前,他接下國防公司通用動力的一個項目說起。
當時,他要解決如何在導彈的小型計算機上安裝數據庫的問題。
美國海軍所使用的Informix數據庫體積太大、無法安裝,而且它是一個單獨運行的進程,即使想方設法安裝成功,運行的效率也不高,甚至還要耗費大量人力來操控。

由此,Richard想:“為什么不能直接從磁盤上讀取數據呢?”
這樣既能提高運行效率,也能減小數據庫大小。
于是,他用C語言寫了一個小文件,它可以被嵌入到任何程序中,并且大小只有900KB左右!
所以,你就能Get為啥這個新服務器,只有一個C文件了吧。(一直都很Richard風格)
假設要啟動導彈上一個GPS程序,這個文件只需在其內部創建一個小數據庫,就能來管理相應的數據。
第一版SQLite就這樣誕生了。
之后,Richard對SQLite進行過多次更新。
2001年剛發布第二版后不久,摩托羅拉就給他打來合作的電話,希望把SQLite應用在他們的手機上。
2005年,Richard直接開源了SQLite,并于同年獲得Google O’Reilly 開源獎。
而他最新發布的網絡服務器Althttpd,其實從2004年就開始運行SQLite官網了。

官網上介紹,Althttpd的處理能力還可以。
截至到2018年,Althttpd在SQLite官網每天處理約50萬個HTTP請求(每秒5、6個),每天能夠提供50GB的內容(約4.6兆比特/秒)。
網友:真·輪子哥
他學習編程的緣起,還要從中學說起。
大概是在70年代左右,當時Richard在讀9年級。一次偶然的經歷,讓他看到電傳打字機,背后都連著一個大型計算機。
大概是這個樣子。
他被震撼到了,于是下定決心說:必須要學會編程。
執行力超強的他,立馬就去學校圖書館,將所有關于計算機的書都借出來。
實際上,只有三本。那天晚上,他就將三本書看完了,還開啟了學習用BASIC編程的旅途。
隨后不久,Apple II出來了。
不太富裕的他,只買了一個主板,然后自己搭建鍵盤、電源,并將它們全部焊接起來。
這當中還發生了一個小插曲。
第一個主板不能用,他就電話給蘋果。聯合創始人史蒂夫·沃茲尼亞克就給他寄了另一個主板。
組裝成功之后,他就試圖在4K的內存中編寫程序,這里面還包括視頻內存。
當時還因為沒有顯示器,他就調制射頻,將它掛在電視機的天線上。
雖然分辨率感人,整個屏幕只有40個字符寬,24行高。
直到現在,他仍然表示:
It was the most amazing thing in the world.
這樣的創造因子,是從他父親那里繼承而來。
Richard這樣形容他的父親:“他是那種最原始的制造者,比如內燃機什么的”。
而Richard則將同樣的想法——從零開始創造事物,放在了抽象的東西上。
接觸到計算機之后,Richard喜歡上了編程,原因很簡單:不需要用任何具象的材料,就能構建一個完全不同的世界。
事實上,他也一直在付諸實踐。
SQLite之后,他接著寫了分布式版本控制系統Fossil、Bug追蹤系統 CVSTrac,以及解析器生成器Lemon。
每次都是因為遇到了一個問題,然后就自己去編寫。
因此就有網友戲稱:真·輪子哥。

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

但還有比編寫SQLite更難的事情
不過,對于這位大佬來說,還有比編程更難的事情。
那就是讓他的妻子Ginger Wyrick嫁給他。(手動狗頭)
甚至在結婚之后,公司也改名了 ,Hipp, Wyrick & Company。
并將所有股份轉讓給她。
Richard在接受采訪時調侃,有時候一度不得不從她那購買一半的股票。