当前位置: 首页 > 科技观察

1个C文件写一个Web服务器!这位60岁的程序员,底蕴深厚

时间:2023-03-13 19:33:29 科技观察

本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。一个C文件,写一个Web服务器。最近,这个软件在圈内很火。Hackernews上的人气高达700+。有网友直接提问:他的GitHub账号是哪个?不过也有网友质疑,这个源文件一定有几万行代码。不不不!只有2592行,而且完全开源!于是有小伙伴打算回去copy代码。当然,到处都有对大boss的各种仰慕,这里就不一一列举了。(手动狗头)这家“精品店”是谁创立的,幕后黑手又是谁?理查德·希普,一位60岁的科技巨头。你没听说过他的名字,但你现在用的手机里一定有几十个甚至上千个他开发的数据库——SQLite。比如微信聊天记录就在那里。可以说是世界上安装最多的数据库,没有之一。最新的web服务器一出,就有网友大呼:神写个淘宝。构建世界上使用最广泛的数据库说到RichardHipp,就不得不提到他的成名之作:SQLite。SQLite是一个轻量级的数据库,初始版本的大小只有900KB左右。它最大的特点是嵌入式,支持Windows/Linux/Unix等主流操作系统,可以与多种编程语言结合,如Tcl、C#、PHP、Java等,并具有ODBC接口。因此,SQLite可以应用到很多产品中,除了手机APP,电脑浏览器,甚至电视机顶盒。而且,与同类数据库Mysql、PostgreSQL相比,运行速度更快。RichardHipp是如何设计出如此强大的数据库的?这要追溯到20多年前,当时他接手了国防公司通用动力公司的一个项目。当时,他要解决的问题是如何在导弹的小电脑上安装数据库。美国海军使用的Informix数据库太大,无法安装,而且是一个单独的进程。即使安装成功,运行效率也不高,甚至需要大量人力来操作。由此,理查德想到:“为什么我们不能直接从磁盘读取数据呢?”这不仅可以提高运行效率,还可以减小数据库的大小。于是,他用C语言写了一个小文件,可以嵌入任何程序,大小只有900KB左右!所以,你可以理解为什么这个新服务器只有一个C文件。(一向很理查德风格)假设你要在导弹上启动一个GPS程序,这个文件只需要在里面创建一个小型数据库来管理相应的数据。第一个版本的SQLite就这样诞生了。从那时起,Richard对SQLite进行了多次更新。2001年第二版发布后不久,摩托罗拉就找他合作,希望将SQLite应用到自己的手机上。2005年,Richard直接开源SQLite,同年获得GoogleO'Reilly开源奖。而他最新的web服务器Althttpd其实从2004年就开始运行SQLite了,根据官网的说法,Althttpd的处理能力还不错。截至2018年,Althttpd在SQLite官网上每天处理约500,000个HTTP请求(每秒5或6个),每天可以提供50GB的内容(约4.6Mbit/s)。网友:甄鹿子哥,他学习编程的渊源,得从中学开始。大概在70年代左右,当时理查德上九年级。一次偶然的经历让他看到了一台电传打字机,后面有一台大电脑。大概是这样的。他很震惊,于是下定决心说:一定要学编程。执行力超强的他立马去学校图书馆借了所有关于计算机的书籍。实际上,只有三个。那天晚上,他读完了三本书,开始了他的BASIC编程学习之旅。不久之后,AppleII问世了。不是很有钱,只买了一块主板,然后自己做了键盘,电源,全部焊接。还有一个小插曲。第一个主板坏了,于是他打电话给苹果。联合创始人史蒂夫沃兹尼亚克给他寄了另一块主板。组装成功后,他尝试在4K内存中编写程序,内存中还包括显存。由于当时没有显示器,他将无线电频率调制后挂在电视机的天线上。虽然分辨率令人印象深刻,但整个屏幕只有40个字符宽和24行高。直到现在,他还说:这是世界上最神奇的事情。这种创造性的因素是从他父亲那里继承来的。理查德这样形容他的父亲:“他是最原始的制造者,比如内燃机什么的”。而理查德也采取了同样的想法,从头开始创造事物并将它们放在抽象的事物上。接触计算机后,理查德爱上了编程,原因很简单:他可以在不使用任何具体材料的情况下构建一个完全不同的世界。事实上,他一直在付诸实践。在SQLite之后,他继续编写分布式版本控制系统Fossil、错误跟踪系统CVSTrac和解析器生成器Lemon。每次都是因为遇到问题,然后自己写的。因此,有网友戏称:真轮哥。不过有网友向他解释:自己写的工具确实更方便。但是有比编程更困难的事情SQLite但是,对于这个大家伙来说,有比编程更困难的事情。那就是让他的妻子姜维瑞克嫁给他。(手动狗头)即使结婚后,公司更名为Hipp,Wyrick&Company。并将所有股份转让给她。理查德在接受采访时开玩笑说,有一次他不得不从她那里购买一半的股票。