1個(gè)C文件就寫出Web服務(wù)器!這個(gè)60歲程序員大有來(lái)頭,網(wǎng)友:打算回去抄代碼了
曾打造裝機(jī)量最多的數(shù)據(jù)庫(kù)
楊凈 明敏 發(fā)自 凹非寺
量子位 報(bào)道 | 公眾號(hào) QbitAI
一個(gè)C文件,就寫出一個(gè)Web服務(wù)器。
最近這個(gè)軟件,在圈里很火。Hackernews上熱度高達(dá)700+。
有網(wǎng)友直接問(wèn):他GitHub賬號(hào)是哪個(gè)?
但也有網(wǎng)友質(zhì)疑說(shuō),這個(gè)源文件得有幾萬(wàn)行代碼吧。
No,No,No!
只有2592行,而且完全開源!于是就有旁友打算回去抄代碼。
當(dāng)然,到處還流淌著各種對(duì)大佬的仰慕,在這就不一一列舉了。(手動(dòng)狗頭)
究竟是誰(shuí)打造了這一“精品”,背后到底是何方神圣?
Richard Hipp,一個(gè)已經(jīng)60歲的技術(shù)大牛。
你沒有聽過(guò)他的名字,但你當(dāng)前使用的手機(jī),一定有幾十甚至上千個(gè)他開發(fā)的數(shù)據(jù)庫(kù)——SQLite。比如,微信的聊天記錄就存在那里面。
可以說(shuō),它是世界上裝機(jī)最多的數(shù)據(jù)庫(kù),沒有之一。
以至于最新的Web服務(wù)器一出,就有網(wǎng)友高呼:大神寫個(gè)淘寶吧。
打造世界上使用最廣泛的數(shù)據(jù)庫(kù)
說(shuō)到Richard Hipp,就不得不提他的成名作:SQLite。
SQLite是一款輕型的數(shù)據(jù)庫(kù),最初版本的大小只有900KB左右。
它最大的特點(diǎn)就是嵌入式,支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語(yǔ)言相結(jié)合,比如 Tcl、C#、PHP、Java等,還有ODBC接口。
所以,SQLite可以應(yīng)用在非常多產(chǎn)品中,除了手機(jī)APP、電腦瀏覽器,甚至連電視機(jī)頂盒中也有它的身影。
并且,與同類數(shù)據(jù)庫(kù)Mysql、PostgreSQL相比,它的運(yùn)行速度也更快。
如此強(qiáng)大的數(shù)據(jù)庫(kù),Richard Hipp是怎么設(shè)計(jì)出來(lái)的呢?
這還要追溯到20多年前,他接下國(guó)防公司通用動(dòng)力的一個(gè)項(xiàng)目說(shuō)起。
當(dāng)時(shí),他要解決如何在導(dǎo)彈的小型計(jì)算機(jī)上安裝數(shù)據(jù)庫(kù)的問(wèn)題。
美國(guó)海軍所使用的Informix數(shù)據(jù)庫(kù)體積太大、無(wú)法安裝,而且它是一個(gè)單獨(dú)運(yùn)行的進(jìn)程,即使想方設(shè)法安裝成功,運(yùn)行的效率也不高,甚至還要耗費(fèi)大量人力來(lái)操控。
由此,Richard想:“為什么不能直接從磁盤上讀取數(shù)據(jù)呢?”
這樣既能提高運(yùn)行效率,也能減小數(shù)據(jù)庫(kù)大小。
于是,他用C語(yǔ)言寫了一個(gè)小文件,它可以被嵌入到任何程序中,并且大小只有900KB左右!
所以,你就能Get為啥這個(gè)新服務(wù)器,只有一個(gè)C文件了吧。(一直都很Richard風(fēng)格)
假設(shè)要啟動(dòng)導(dǎo)彈上一個(gè)GPS程序,這個(gè)文件只需在其內(nèi)部創(chuàng)建一個(gè)小數(shù)據(jù)庫(kù),就能來(lái)管理相應(yīng)的數(shù)據(jù)。
第一版SQLite就這樣誕生了。
之后,Richard對(duì)SQLite進(jìn)行過(guò)多次更新。
2001年剛發(fā)布第二版后不久,摩托羅拉就給他打來(lái)合作的電話,希望把SQLite應(yīng)用在他們的手機(jī)上。
2005年,Richard直接開源了SQLite,并于同年獲得Google O’Reilly 開源獎(jiǎng)。
而他最新發(fā)布的網(wǎng)絡(luò)服務(wù)器Althttpd,其實(shí)從2004年就開始運(yùn)行SQLite官網(wǎng)了。
官網(wǎng)上介紹,Althttpd的處理能力還可以。
截至到2018年,Althttpd在SQLite官網(wǎng)每天處理約50萬(wàn)個(gè)HTTP請(qǐng)求(每秒5、6個(gè)),每天能夠提供50GB的內(nèi)容(約4.6兆比特/秒)。
網(wǎng)友:真·輪子哥
他學(xué)習(xí)編程的緣起,還要從中學(xué)說(shuō)起。
大概是在70年代左右,當(dāng)時(shí)Richard在讀9年級(jí)。一次偶然的經(jīng)歷,讓他看到電傳打字機(jī),背后都連著一個(gè)大型計(jì)算機(jī)。
大概是這個(gè)樣子。
他被震撼到了,于是下定決心說(shuō):必須要學(xué)會(huì)編程。
執(zhí)行力超強(qiáng)的他,立馬就去學(xué)校圖書館,將所有關(guān)于計(jì)算機(jī)的書都借出來(lái)。
實(shí)際上,只有三本。那天晚上,他就將三本書看完了,還開啟了學(xué)習(xí)用BASIC編程的旅途。
隨后不久,Apple II出來(lái)了。
不太富裕的他,只買了一個(gè)主板,然后自己搭建鍵盤、電源,并將它們?nèi)亢附悠饋?lái)。
這當(dāng)中還發(fā)生了一個(gè)小插曲。
第一個(gè)主板不能用,他就電話給蘋果。聯(lián)合創(chuàng)始人史蒂夫·沃茲尼亞克就給他寄了另一個(gè)主板。
組裝成功之后,他就試圖在4K的內(nèi)存中編寫程序,這里面還包括視頻內(nèi)存。
當(dāng)時(shí)還因?yàn)闆]有顯示器,他就調(diào)制射頻,將它掛在電視機(jī)的天線上。
雖然分辨率感人,整個(gè)屏幕只有40個(gè)字符寬,24行高。
直到現(xiàn)在,他仍然表示:
It was the most amazing thing in the world.
這樣的創(chuàng)造因子,是從他父親那里繼承而來(lái)。
Richard這樣形容他的父親:“他是那種最原始的制造者,比如內(nèi)燃機(jī)什么的”。
而Richard則將同樣的想法——從零開始創(chuàng)造事物,放在了抽象的東西上。
接觸到計(jì)算機(jī)之后,Richard喜歡上了編程,原因很簡(jiǎn)單:不需要用任何具象的材料,就能構(gòu)建一個(gè)完全不同的世界。
事實(shí)上,他也一直在付諸實(shí)踐。
SQLite之后,他接著寫了分布式版本控制系統(tǒng)Fossil、Bug追蹤系統(tǒng)?CVSTrac,以及解析器生成器Lemon。
每次都是因?yàn)橛龅搅艘粋€(gè)問(wèn)題,然后就自己去編寫。
因此就有網(wǎng)友戲稱:真·輪子哥。
不過(guò)也有網(wǎng)友為他解釋:自己寫的工具確實(shí)更順手。
但還有比編寫SQLite更難的事情
不過(guò),對(duì)于這位大佬來(lái)說(shuō),還有比編程更難的事情。
那就是讓他的妻子Ginger Wyrick嫁給他。(手動(dòng)狗頭)
甚至在結(jié)婚之后,公司也改名了 ,Hipp, Wyrick & Company。
并將所有股份轉(zhuǎn)讓給她。
Richard在接受采訪時(shí)調(diào)侃,有時(shí)候一度不得不從她那購(gòu)買一半的股票。
參考鏈接:
[1]https://sqlite.org/althttpd/doc/trunk/althttpd.md
[2]https://changelog.com/podcast/201
[3]https://hackernoon.com/the-story-of-dwayne-richard-hipp-and-the-development-of-sqlite-in-1999-yc4v356q
- 英偉達(dá)最新芯片B30A曝光2025-08-20
- AI應(yīng)用如何落地政企?首先不要卷通用大模型2025-08-12
- 本科必學(xué)Dijkstra算法被超越!清華段然團(tuán)隊(duì)打破圖靈獎(jiǎng)得主證明的普遍最優(yōu)性2025-08-09
- 智能體邁入L4 時(shí)代!納米AI多智能體蜂群,可創(chuàng)作最長(zhǎng)10分鐘AI視頻2025-08-06