1个C文件就写出Web服务器!这个60岁程序员大有来头
杨净 明敏 发自 凹非寺
量子位 报道 | 公众号 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。
每次都是因为遇到了一个问题,然后就自己去编写。
因此就有网友戏称:真·轮子哥。
不过也有网友为他解释:自己写的工具确实更顺手。
不过,对于这位大佬来说,还有比编程更难的事情。
那就是让他的妻子Ginger Wyrick嫁给他。(手动狗头)
甚至在结婚之后,公司也改名了 ,Hipp, Wyrick & Company。
并将所有股份转让给她。
Richard在接受采访时调侃,有时候一度不得不从她那购买一半的股票。
参考链接:
[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
— 完 —
量子位 QbitAI · 头条号签约
关注我们,第一时间获知前沿科技动态
1个C文件就写出Web服务器!这个60岁程序员大有来头https://m.toutiaocdn.com/i6972809313589379597/?app=news_article×tamp=1623537267&use_new_style=1&req_id=20210613063427010135098086375E48B3&group_id=6972809313589379597&tt_from=android_share&utm_medium=toutiao_android&utm_campaign=client_share&share_token=3993bdbd-1893-4188-a453-2dd87b903b08