变革世界的代码:重要软件作品及其作者

摘要

本文是一份关于计算机科学史上最具影响力的软件作品及其创造者的深度研究报告,涵盖了操作系统、编程语言、数据库系统、大数据与消息中间件、云计算与容器技术、Web与浏览器技术、开发工具与版本控制、人工智能与机器学习框架以及中国企业级软件等九个技术领域,共计超过80个重要软件作品。报告详细梳理了每个项目的诞生背景、核心技术贡献及其作者的传奇故事,探讨了从贝尔实验室的阁楼到芬兰赫尔辛基大学的宿舍、从硅谷车库到意大利创业公司的开源创新历程。通过对这些软件作品和作者的深入剖析,本文揭示了技术创新背后的共同规律:许多改变世界的软件并非源于商业计划书或战略规划,而是诞生于个人兴趣、实际需求和对技术自由的追求。自由开源精神、务实的工程能力和对技术的极致热爱,构成了软件创新永恒的动力源泉。

关键词:软件作品;程序员;开源运动;计算机科学史;技术创新

一、引言

在人类技术文明的长卷中,软件作品占据着一个独特而奇妙的坐标。与实体工程不同,软件是纯粹的逻辑构建,它无法触摸,却无处不在。从你口袋里的智能手机到云端的数据中心,从银行交易系统到社交网络的推荐算法,代码以近乎隐形的方式定义着现代生活的运行法则。

更为动人的,是每一行关键代码背后的人。那些程序员——或者说,那些创造者——往往不是在豪华实验室里、拿着丰厚预算开展研究的体制内科学家。他们很多时候只是对自己遇到的某个问题感到“不爽”,于是决定亲手造一个解决方案。Ken Thompson为了能继续玩他的“星际旅行”游戏,写出了一个操作系统,后来被命名为Unix-8。Linus Torvalds只是想让自己的386电脑能用上一个好用的终端仿真器,结果一不小心写出了Linux内核。Salvatore Sanfilippo对MySQL的性能感到失望,于是用了将近一年时间独自打造了Redis-27

这些故事里,有孤独的执着,有偶然的灵感,有对自由近乎偏执的信仰,也有将技术之美视为最高价值的纯粹。它们共同构成了一部波澜壮阔的软件史诗。本文尝试以一份报告的形式,记录下这部史诗中超过80个关键节点——那些软件作品和它们背后的灵魂人物。

本文采用按技术领域分类的结构方式,共分为九大章节,分别涵盖操作系统、编程语言、数据库系统、大数据与消息中间件、云计算与容器技术、Web与浏览器技术、开发工具与版本控制、人工智能与机器学习框架以及中国企业级软件。每章选取该领域最具代表性的软件作品,深入剖析其技术贡献与人文故事。

二、操作系统与系统软件

2.1 Unix

Unix的故事是整部计算机软件史中最具传奇色彩的篇章之一。1969年,AT&T贝尔实验室的Ken Thompson利用一台闲置的PDP-7计算机,开始开发一个多用户、多任务的操作系统-9。在此之前,贝尔实验室曾与麻省理工学院、通用电气公司共同发起Multics(多路信息计算系统)计划,目标是让大型主机同时支持300个以上的终端机连线使用-8。但Multics计划进展缓慢、资金短缺,贝尔实验室最终于1969年退出。

Thompson在Multics上开发了一款名为“星际旅行”的游戏。退出Multics计划后,他的妻子带孩子回娘家探亲一个月,Thompson为了打发无聊时光,同时也为了继续玩他的游戏,决定自己写一个操作系统来移植这个游戏——Unix的雏形UNICS由此诞生-8。不久之后,Dennis Ritchie加入了这个项目。最初UNICS用汇编语言编写,移植极为不便。Thompson开发了B语言来重写系统,但仍不满意其可移植性,于是又开发了C语言,并用C语言重写了Unix-8

Dennis Ritchie(1941—2011)和Ken Thompson(1943— )共同创造了计算机科学史上最伟大的双人组合。Unix及其衍生系统至今仍运行在全球绝大多数的服务器、超级计算机和移动设备上。没有Unix,就不会有Linux、macOS和Android-13。Thompson后来还共同设计了Go语言,而Ritchie则于2011年离世,留下了令整个计算机界肃然起敬的技术遗产。

2.2 C语言

C语言与Unix是一对孪生兄弟。1972年前后,Dennis Ritchie在贝尔实验室设计了C语言,目标是提供一种兼具高级语言可读性和低级语言操作能力的系统编程语言。C语言的设计哲学是简洁、高效、信任程序员——它给予程序员极大的自由,也要求程序员承担相应的责任-。

Brian Kernighan是这一传奇的第三位关键人物。他不仅参与了Unix的开发,还亲自为Unix命名-13。1978年,Kernighan与Ritchie合著了《C程序设计语言》——这本被称为“K&R C”的书籍成为计算机科学史上最经典的教材之一。Kernighan还是AWK文本处理工具(名字取自三位作者的姓氏首字母:Aho、Weinberger、Kernighan)和AMPL数学编程语言的共同创造者。

C语言的影响力几乎无法用语言描述。它直接催生了C++、Java、C#、Objective-C等主流语言,其语法风格深刻影响了Python、JavaScript、Go等几乎所有现代编程语言的设计。直至今日,C语言仍在操作系统内核、嵌入式系统和高性能计算领域占据不可替代的地位。

2.3 Linux

1991年,赫尔辛基大学的学生Linus Torvalds(1969— )想在自己的386 PC上运行一个类似Unix的系统。当时他能接触到的是Andrew S. Tanenbaum教授开发的Minix——一个用于教学目的的类Unix系统。但Minix受限于教学用途的许可协议,许多地方也不能令Torvalds满意-9。于是他决定自己动手。

1991年8月25日,Torvalds在Usenet新闻组发布了一条后来被载入史册的消息,宣告Linux操作系统的诞生-9。他写道:“我正在做一个(自由的)操作系统(只是个爱好,不会像GNU那样大而专业)。”这句谦逊的开场白开启了一段改变世界的旅程。

Linux之所以能成功,很大程度上得益于它与Richard Stallman发起的GNU计划的完美结合。Stallman(1953— )于1983年发起GNU计划,目标是开发一个完全自由的操作系统。到1990年,GNU已经开发了大量优秀软件(如GCC编译器、Emacs编辑器),唯一缺失的就是一个可用的内核。Linux的出现恰逢其时——Linux内核与GNU工具的结合,构成了一个完整而自由的操作系统-8

Torvalds的另一项重大贡献是2005年创建的Git版本控制系统。当时Linux内核社区使用的商业版本控制工具BitKeeper撤销了免费使用权,Torvalds一怒之下花了两周时间写出了Git的雏形。如今Git已经成为全球开发者协作的标准工具,GitHub、GitLab等平台均建立在此基础之上。

2.4 GNU项目与自由软件运动

Richard Stallman是自由软件运动的精神领袖。1983年,他发布了《GNU宣言》,宣布启动GNU计划-。Stallman开发了GNU Emacs——一个高度可扩展的文本编辑器,以及GCC(GNU Compiler Collection)——一个支持多种编程语言的编译器套件。他还设计了GPL(GNU通用公共许可证),这一许可证引入了“Copyleft”概念,要求修改后的衍生作品也必须以相同许可证发布,从而确保了软件自由的“传染性”-。

Stallman的经历说明,软件自由不仅是一个技术议题,更是一种伦理选择。他以一己之力对抗整个专有软件产业的洪流,用几十年的坚持证明:自由软件的理想并非乌托邦。

2.5 BSD系列

BSD(Berkeley Software Distribution)是Unix的另一个重要分支。20世纪70年代末,加州大学伯克利分校在Unix源代码基础上进行了大量改进和增强,发布了BSD版本。BSD的TCP/IP协议栈成为互联网基础设施的核心组件。从BSD衍生出了FreeBSD、NetBSD和OpenBSD等操作系统-。

其中,OpenBSD由Theo de Raadt于1995年创建,以安全性著称,至今保持着默认安装条件下漏洞极少的纪录。FreeBSD和NetBSD则分别在性能优化和跨平台可移植性方面做出了突出贡献。这些BSD变种是开源运动初期最重要的实践成果之一,它们的开发者社区孕育了大量后来在互联网产业中发挥关键作用的技术人才。

2.6 macOS / iOS

macOS的核心基于Darwin操作系统,而Darwin融合了NeXTSTEP(Steve Jobs在离开苹果期间创立的NeXT公司的操作系统)和FreeBSD的技术。NeXTSTEP诞生于1985年Jobs被苹果驱逐之后,他以NeXT为平台开发了先进的面向对象操作系统。1997年苹果收购NeXT,Jobs回归,NeXTSTEP的技术成为macOS的基石,后来又被移植到iPhone上成为iOS。

虽然macOS和iOS并非传统意义上的“开源作品”,但它们对现代软件工程的影响至关重要——iOS的App Store开创了移动应用的商业模式,Objective-C和Swift语言随着苹果生态席卷全球开发者社区。Chris Lattner在苹果期间主导开发的Swift编程语言(2014年发布),如今已成为最受欢迎的现代编程语言之一,而Lattner同时也是LLVM编译器基础设施项目的创始人和主要作者。

2.7 Android

Android由Andy Rubin、Rich Miner、Nick Sears和Chris White于2003年共同创立,最初的目标是开发一个面向数码相机的操作系统,后来转向移动设备。2005年Google收购Android,2007年发布了基于Linux内核的Android操作系统。如今Android是全球用户量最大的移动操作系统,运行在超过30亿台设备上。其开源版本(AOSP)为全球手机厂商提供了自由定制的基础,但也引发了关于开源与商业控制之间张力的持续讨论。

2.8 Minix

Minix由Andrew S. Tanenbaum教授(1944— )于1987年创建,目的是为他的操作系统教材《操作系统:设计与实现》提供一个教学工具-9。Tanenbaum坚持Minix的代码量控制在几千行以内,以便学生能够完整阅读理解。Minix最著名的“贡献”是激发了Linus Torvalds开发Linux。1992年,Tanenbaum与Torvalds在新闻组上展开了一场著名的辩论,Tanenbaum批评Linux采用的宏内核架构已经过时,而Torvalds则为自己的设计据理力争。这场“Tanenbaum-Torvalds辩论”成为操作系统教科书中的经典案例。有趣的是,最新的Minix 3.0也逐步扩展了其应用范围,不再局限于教学领域-9

2.9 MS-DOS / Windows

1980年,微软公司为IBM PC开发了MS-DOS操作系统。MS-DOS最初基于Tim Paterson开发的86-DOS(QDOS),Paterson在短短六周内完成了这个操作系统的核心部分。微软以75,000美元的价格买下了86-DOS的全部权利,这一交易被视为商业史上最具远见的收购之一。

1985年,微软发布Windows 1.0,在MS-DOS之上提供了图形用户界面。经过多个版本的迭代,特别是Windows 95(1995年)、Windows XP(2001年)、Windows 7(2009年)等里程碑版本,Windows成为全球PC桌面操作系统市场的绝对霸主。尽管Windows是商业闭源软件,但其对整个软件产业的塑造力无法忽视——它定义了图形界面的标准范式,催生了庞大的Windows应用生态。

2.10 多核操作系统与并发控制

在操作系统理论的演进中,Edsger Dijkstra(1930—2002)是一位不得不提的先驱。他在1965年提出了信号量(Semaphore)的概念,解决了多进程并发访问共享资源时的同步问题。Dijkstra还提出了“银行家算法”来避免死锁,发表了《GOTO语句有害》(Go To Statement Considered Harmful)这篇引发结构化编程革命的著名论文。虽然Dijkstra的核心贡献集中在理论和算法层面,但他的思想直接影响了所有现代操作系统和并发系统的设计。

2.11 macOS内核与Mach

Mach微内核由Richard Rashid带领的卡内基梅隆大学团队于1985年开发。Mach首次将线程、虚拟内存和进程间通信等概念以微内核的方式实现,成为操作系统的研究平台。后来Mach被NeXTSTEP采用,进而成为macOS和iOS内核的基础。Rashid后来加入微软,创立了微软研究院并担任首席研究官,推动了微软在操作系统、人工智能和云计算领域的研究。

2.12 GNU Hurd

GNU Hurd是GNU计划最初设计的操作系统内核,由Richard Stallman于1990年启动。Hurd采用微内核架构,基于Mach微内核之上运行一系列服务器进程。但由于开发难度极高、进度缓慢,Hurd始终未能达到可用状态。Linux内核的出现和快速成熟使得GNU项目选择了“借壳上市”——以Linux作为内核来补全GNU操作系统。Hurd至今仍在缓慢开发中,成为开源社区中一个著名的“永不完工”项目,也成为了微内核架构理想与现实之间鸿沟的注脚。

三、编程语言

3.1 C++

Bjarne Stroustrup(1950— )于1979年在贝尔实验室开始开发“C with Classes”,即C++的前身。他的目标是给C语言添加面向对象的特性(类、继承、多态等),同时保持C语言的高性能和底层操作能力。1985年,《C++程序设计语言》第一版出版,C++正式面世-。

C++是软件工程史上最具雄心也最复杂的语言设计之一。它试图同时支持面向过程、面向对象、泛型编程和函数式编程等多种范式,既给予了程序员极大的表达自由,也因复杂度而备受争议。尽管如此,C++至今仍是游戏引擎、高频交易系统、浏览器内核等性能敏感领域的首选语言。Stroustrup获得了2018年的查尔斯·斯塔克·德雷珀奖(工程界的诺贝尔奖),以表彰他在编程语言设计领域的杰出贡献。

3.2 Java

1991年,Sun Microsystems的James Gosling(1955— )启动了“Green项目”,最初的目标是为消费电子产品开发一种可移植的编程语言。Gosling设计了一种名为Oak的语言,后来因商标问题更名为Java。1995年,Java伴随着“Write Once, Run Anywhere”(一次编写,到处运行)的口号正式发布-。

Java的革命性在于它的Java虚拟机(JVM)——源代码被编译为字节码,在任何安装了JVM的平台上都可以运行。这一设计使得Java成为互联网时代的理想编程语言。在企业级后端开发中,Java至今仍占据主导地位,其生态系统(Spring框架、Apache基金会的大量项目)深刻塑造了现代软件工程的实践模式。Gosling被誉为“Java之父”,2010年Oracle收购Sun后他短暂留任后离开。

3.3 Python

1989年的圣诞节,荷兰程序员Guido van Rossum(1956— )感到无聊,决定写一个新的脚本语言来打发假期。他以自己钟爱的BBC喜剧《Monty Python‘s Flying Circus》为这个语言命名——Python-。Python的第一个正式版本于1991年发布。

van Rossum的设计理念是“优雅”“明确”“简单”。Python使用缩进来定义代码块(这在当时极具争议),强调代码的可读性。van Rossum本人曾长期担任Python社区的“仁慈的终身独裁者”(Benevolent Dictator for Life),直到2018年卸任。Python如今是全球最流行的编程语言之一,在数据科学、人工智能、Web开发等领域全面开花,这很大程度上归功于其简洁的语法和丰富的第三方库生态(如NumPy、pandas、Django等)。

3.4 JavaScript

1995年,Netscape公司的Brendan Eich(1961— )被要求开发一种运行在浏览器中的脚本语言。Eich本人的兴趣在于函数式编程(特别是Scheme语言),但公司要求新语言在外观上接近当时炙手可热的Java。Eich只花了10天就设计出了JavaScript的原型(最初叫LiveScript)-。

这10天的仓促设计给JavaScript留下了诸多语法上的“怪异”之处(如隐式类型转换、变量提升等),但也赋予了它惊人的灵活性。如今JavaScript是Web前端的标准语言,且随着Node.js的出现扩展到了服务器端。Eich后来离开Mozilla(Netscape的后继者),创立了Brave Software,开发注重隐私保护的Brave浏览器。他从一个“被逼无奈”的10天项目开始,最终定义了整个Web交互层的基础。

3.5 PHP

1994年,丹麦裔加拿大程序员Rasmus Lerdorf(1968— )为了维护自己的个人网页,编写了一套用于追踪访问者的Perl脚本。为了提高效率,他用C语言重写了这些工具,并添加了表单处理等功能。这就是PHP(最初是“Personal Home Page”的缩写,后来改为“PHP: Hypertext Preprocessor”)的起源-。

Lerdorf从未打算创造一门编程语言,他只是想解决自己的实际问题。但PHP因其与HTML的深度集成、易学易用的特点,在Web开发大爆发的年代迅速风靡。维基百科、Facebook早期版本、WordPress等内容管理平台都是用PHP构建的。尽管PHP因其设计的不一致性而备受专业程序员的嘲讽,但它在互联网基础设施中占据的份额至今仍然惊人。

3.6 Ruby

1995年,日本程序员松本行弘(Yukihiro Matsumoto,1965— )发布了Ruby的第一个版本。松本(社区亲切地称他为Matz)在设计Ruby时追求的是“程序员的快乐”——他融合了Perl、Smalltalk、Lisp等语言中自己最喜欢的特性,创造了一门语法极富表现力的语言。2004年,丹麦程序员David Heinemeier Hansson(DHH)发布了基于Ruby的Web框架Ruby on Rails,以其“约定优于配置”的理念和极高的开发效率引爆了Ruby的流行度。Rails不仅改变了Web开发的方式,也深刻影响了后来Django、Laravel等框架的设计。

3.7 Go

Go语言由Google的三位资深工程师——Robert Griesemer、Rob Pike和Ken Thompson——于2007年开始设计,2009年正式发布。Rob Pike和Ken Thompson都是Unix和Plan 9操作系统的核心开发者,他们将几十年的系统编程经验注入Go的设计之中-。Go的目标是成为一种在大型项目中替代C++的“系统级”语言:它编译快、执行快、并发模型简洁(goroutine和channel)、语法简单到近乎“无聊”。在云原生时代,Docker、Kubernetes、Prometheus等几乎所有的基础设施项目都是用Go编写的。Go语言的成功证明,有时候“克制”比“丰富”更重要。

3.8 Rust

2006年,Mozilla员工Graydon Hoare开始了一个个人项目——Rust。他希望创造一门能提供C++级别的性能,但又能从根本上消除内存安全问题的系统编程语言。2009年Mozilla正式赞助该项目,2015年Rust 1.0发布。Rust的最大创新在于其所有权系统和借用检查器——它在编译时就能确保内存安全,而无需垃圾回收机制的运行时开销。这使得Rust特别适用于操作系统开发、浏览器引擎、区块链等对安全性和性能要求极高的领域。Rust连续多年在Stack Overflow开发者调查中被票选为“最受喜爱的编程语言”。

3.9 Perl

1987年,语言学家出身的Larry Wall(1954— )发布了Perl。Perl的名字取自《圣经》中的“珍珠”(pearl),但因与已有语言重名而改为Perl-。Wall将语言学中的诸多思想融入编程语言设计,使得Perl的表达方式极为灵活多样——“There’s More Than One Way To Do It”(不只一种方法来做一件事)是其核心理念。Perl在20世纪90年代的Web开发中扮演了关键角色(CGI脚本几乎等同于Perl脚本),其正则表达式引擎被几乎所有后来的语言采纳或借鉴。

3.10 Scala

Martin Odersky(1958— )是德国计算机科学家,他曾参与Java泛型的设计。2003年,他发布了Scala——一种运行在JVM上、融合面向对象和函数式编程范式的语言。Odersky后来创立了Lightbend公司(原名Typesafe),推动Scala的商业应用。Twitter、LinkedIn等公司曾大规模使用Scala构建后端服务,Apache Kafka就是用Scala开发的-。Scala还催生了Apache Spark等大数据框架,在大数据生态中占据重要地位。

3.11 Swift

Swift由Chris Lattner(1978— )在苹果公司主导开发,2014年在WWDC上发布。Lattner在伊利诺伊大学攻读博士学位期间就开始了LLVM编译器基础设施的开发,这一项目后来成为苹果、Google等公司编译器工具链的核心。Swift的设计目标是替代Objective-C,成为苹果生态(iOS、macOS、watchOS、tvOS)的主要编程语言。它语法现代、类型安全、性能优异,2015年以Apache 2.0许可证开源,迅速吸引了大量开发者。

3.12 Kotlin

Kotlin由JetBrains公司的俄罗斯程序员团队于2011年发布,主创者为Andrey Breslav。Kotlin被设计为一种在JVM上运行、与Java完全互操作的现代语言,解决了Java语法的冗长问题和空指针安全性缺陷。2017年,Google在I/O大会上宣布Kotlin成为Android官方支持的开发语言,这一决定使得Kotlin的流行度在短短几年内呈指数级增长。如今Kotlin不仅是Android开发的首选语言,也在后端开发和跨平台开发(Kotlin Multiplatform)中获得了越来越多的采用。

3.13 TypeScript

TypeScript由微软的Anders Hejlsberg(1960— )主导开发,2012年首次发布。Hejlsberg此前是Turbo Pascal和Delphi的创造者,后来又设计了C#语言——可以说,他是世界上设计了最多流行编程语言的人之一。TypeScript在JavaScript的基础上添加了可选的静态类型系统,解决了大型JavaScript项目中的可维护性问题。如今TypeScript已成为前端开发的主流选择,几乎所有大型Web项目都在使用它。Hejlsberg的职业生涯横跨了四个语言的创造或主导开发,这样的成就堪称软件工程史上的奇迹。

3.14 C#

C#同样由Anders Hejlsberg设计,于2000年随微软的.NET框架发布。C#的设计受到了Java和C++的深刻影响,但在语言特性上更加丰富和现代化。2000年代初,Java和C#之间爆发了激烈的“语言战争”,客观上推动了两种语言的共同进化。C#如今不仅在Windows生态中占据主导,也通过.NET Core/.NET 5+实现了真正的跨平台运行,在游戏开发(Unity引擎)和企业级后端开发中广泛使用。

3.15 Lua

Lua由巴西天主教里约热内卢大学的Roberto Ierusalimschy、Luiz Henrique de Figueiredo和Waldemar Celes于1993年创建。Lua的设计目标极其明确:轻量、可嵌入、高性能。它以不到200KB的体积提供了完整的脚本语言功能,成为游戏行业中最流行的嵌入式脚本语言——从《魔兽世界》到《愤怒的小鸟》,无数游戏的逻辑层都是用Lua编写的。Lua还在Redis(Lua脚本功能)和Nginx(OpenResty)等基础设施软件中发挥着关键作用。

3.16 Objective-C

Objective-C由Brad Cox和Tom Love在1980年代初期创建。Cox受到Smalltalk面向对象设计的深刻影响,决定在C语言基础上添加Smalltalk风格的消息传递机制。1988年,Steve Jobs的NeXT公司购买了Objective-C的授权,并将其作为NeXTSTEP操作系统的主要开发语言。当苹果收购NeXT后,Objective-C成为了macOS和iOS开发的标准语言,直到2014年被Swift逐步取代。Objective-C独特的方法调用语法曾让无数开发者望而生畏,但也恰恰是这种独特性使苹果的软件生态与Java或C++生态形成了明确的区分。

四、数据库系统

4.1 MySQL

1995年,瑞典程序员Michael“Monty”Widenius(1962— )和他的商业伙伴David Axmark发布了MySQL。Widenius是UNIREG(一个早期的数据库系统)的作者,当他发现UNIREG无法满足日益增长的Web应用需求时,决定创建一个全新的数据库系统。MySQL的名字来源于Widenius的女儿“My”。

MySQL选择了“双授权”的商业模式,既提供开源版本,又提供商业授权,这一模式成为开源软件商业化的经典范本。2008年,Sun Microsystems以约10亿美元收购了MySQL AB公司,随后Sun又被Oracle收购。Widenius对Oracle收购MySQL深感不满,于是创建了MySQL的分支——MariaDB,以另一位女儿的名字命名。MySQL至今仍是全球使用最广泛的开源关系数据库。

4.2 PostgreSQL

PostgreSQL的前身是Michael Stonebraker(1943— )领导的加州大学伯克利分校Ingres项目。1986年,Stonebraker启动了“Post-Ingres”项目(即PostgreSQL的前身)。Stonebraker是数据库领域四位图灵奖得主之一(2014年获奖),他毕生致力于数据库技术的创新-。1994年,Andrew Yu和Jolly Chen为项目添加了SQL解释器,并将其更名为Postgres95,随后在1996年正式命名为PostgreSQL-。Bruce Momjian是PostgreSQL全球开发组的联合创始人,长期担任PostgreSQL社区的核心领袖-。

PostgreSQL以其对SQL标准的严格遵循、强大的扩展能力和先进的功能(如JSON支持、全文搜索、窗口函数)著称,是开源数据库技术追求者的首选。Stonebraker后来还创建了Ingres、Illustra、Vertica、VoltDB等多个商业数据库公司,深刻影响了数据库技术的商业化路径。

4.3 SQLite

2000年,美国程序员D. Richard Hipp在开发一个导弹驱逐舰上的软件系统时,需要一个无需管理、无需配置、可以嵌入到程序中的数据库。于是他编写了SQLite——一个自包含、零配置、事务性的SQL数据库引擎-。

SQLite的设计理念是“简单到极致”。它不是一个独立的数据库服务器,而是一个仅数百KB大小的C语言库文件,直接链接到使用它的应用程序中。如今SQLite是世界上部署最广泛的数据库,安装在每一部智能手机、每一台计算机中,支撑着无数网站和应用程序的数据存储。Hipp本人坚持SQLite进入公有领域,放弃版权,使任何人都可以无偿使用。

4.4 Redis

2008年,意大利程序员Salvatore Sanfilippo(网名antirez)正在开发一个叫LLOOGG的网站实时统计系统,需要实现一个高性能队列。他最初使用MySQL,但无论怎么优化都无法达到满意的性能。手头也不宽裕的他决定自己写一个专门的数据库-27

2009年,Redis(Remote Dictionary Server)诞生了。它将数据存储在内存中,支持字符串、列表、集合、有序集合、哈希等丰富的数据结构-27。2010年,VMware公司开始赞助Redis的开发,Sanfilippo和Pieter Noordhuis加入VMware全职开发Redis-。

Redis的出现重新定义了人们对数据库性能的认知。它的单机QPS可以达到10万级别。Twitter、GitHub、Stack Overflow、新浪微博等几乎所有大型互联网公司都是Redis的重度用户-27。Sanfilippo后来离开Redis项目,但Redis作为一款改变行业的基础设施软件,至今仍保持强劲的发展势头。

4.5 MongoDB

2007年,Dwight Merriman、Eliot Horowitz和Kevin Ryan共同创建了10gen公司(后更名为MongoDB Inc.)。Merriman曾是在线广告网络DoubleClick的CTO兼联合创始人,Horowitz是DoubleClick的工程师,他们在运营中深感关系数据库在处理大规模、非结构化数据时的局限。2009年,他们开源了MongoDB——一个面向文档的NoSQL数据库-。MongoDB使用JSON风格的文档存储数据,无需预定义模式,天然适合敏捷开发场景。尽管早期因默认写入配置的安全问题而受到批评,MongoDB已经成长为最流行的NoSQL数据库之一。

4.6 Apache Cassandra

Avinash Lakshman和Prashant Malik在Facebook工作时创建了Cassandra。Lakshman此前是亚马逊Dynamo论文的作者之一,他将Dynamo的分布式设计思想与Google Bigtable的数据模型相结合,创造了一种无单点故障、线性可扩展的分布式数据库。2008年,Facebook将Cassandra开源,随后它成为了Apache顶级项目。Cassandra被Netflix、Apple、Instagram等公司用于处理大规模、高可用的数据存储需求。

4.7 Elasticsearch

Shay Banon(1979— )是以色列程序员。他最初为自己的妻子开发了一个食谱搜索应用,后台使用了Lucene全文检索引擎。为了让Lucene更易用,他创建了Compass项目,随后在2010年发布了Elasticsearch——一个基于Lucene的分布式搜索和分析引擎-。2012年,Banon创立了Elastic公司。如今Elasticsearch及其配套的ELK Stack(Elasticsearch、Logstash、Kibana)是全球最流行的日志分析和全文搜索平台。

4.8 Neo4j

Neo4j由Emil Eifrem(1978— )联合创建,2007年发布了第一个版本。Eifrem是瑞典程序员,他与团队一起在开发一个企业内容管理系统时意识到,传统关系数据库在处理高度关联的数据时效率低下,于是创造了图数据库Neo4j-。Neo4j使用节点、边和属性来表示和存储数据,天然适合社交网络、推荐引擎、知识图谱等场景。Eifrem带领的Neo4j公司如今是图数据库领域的市场领导者。

4.9 Apache HBase

HBase是Google Bigtable的开源实现,由Powerset公司(后被微软收购)的工程师于2007年创建,随后成为Apache Hadoop生态系统的一部分。HBase是一个分布式的、面向列的数据库,运行在HDFS之上,适合存储海量的稀疏数据。Facebook曾将HBase用于其消息平台的基础存储,推动了HBase在大规模生产环境中的成熟。

4.10 InfluxDB

Paul Dix于2013年创建了InfluxDB——一个专门用于处理时间序列数据的开源数据库。Dix此前是初创公司的工程师,在实际工作中发现没有合适的数据库能高效处理大量带时间戳的监控和传感器数据。InfluxDB应运而生,它使用自定义的类SQL查询语言,支持极高的写入吞吐量和时间范围查询。在物联网、DevOps监控等领域,InfluxDB已经成为首选方案之一。

4.11 CockroachDB

CockroachDB由前Google工程师Spencer Kimball、Peter Mattis和Ben Darnell于2015年创建。Kimball和Mattis此前是GIMP图像编辑器(GNU Image Manipulation Program)和GTK工具包的原始作者。在Google工作期间,他们深入了解了Spanner分布式数据库的设计。CockroachDB被设计为一个云原生的分布式SQL数据库,目标是在跨地域部署下仍能保持ACID事务和自动故障恢复能力,恰如其名“蟑螂”——极其难以被杀死。

4.12 ClickHouse

ClickHouse由俄罗斯搜索引擎公司Yandex的Alexey Milovidov于2016年开源-。Yandex内部运行的Yandex.Metrica(类似Google Analytics的网站分析工具)需要极快地对海量数据进行OLAP查询。Milovidov领导的团队开发了ClickHouse,实现了每秒处理数亿行数据的惊人性能。ClickHouse采用列式存储、向量化计算引擎等先进技术,在实时数据分析领域异军突起,成为众多互联网公司的数据基础设施核心组件。

4.13 Apache Derby / IBM Cloudscape

1997年,Cloudscape公司开发了一个纯Java编写的关系数据库引擎。1999年Informix收购了Cloudscape,随后IBM又在2001年收购了Informix的数据库资产。2004年,IBM将Cloudscape的代码贡献给Apache软件基金会,成为Apache Derby项目。Derby以约2MB的体积提供了完整的SQL数据库功能,被嵌入到无数Java应用中,包括Apache OpenOffice和IBM的诸多产品。Derby证明了数据库不一定需要庞大而复杂——小巧同样可以强大。

五、大数据与消息中间件

5.1 Apache Hadoop

2003年和2004年,Google先后发表了两篇论文——GFS(Google File System)和MapReduce,描述了Google内部处理海量数据的基础架构。Doug Cutting(1963— )和Mike Cafarella读到了这些论文,决定创建一个开源实现。Cutting当时正在开发Nutch搜索引擎(后来成为Apache Lucene项目的一部分),急需处理大规模网页索引的能力。2006年,他将分布式存储和计算部分从Nutch中分离出来,命名为Hadoop——这是他儿子给一只黄色毛绒大象玩具起的名字-。2008年,Hadoop成为Apache顶级项目。Cutting后来担任Apache软件基金会的主席。

Hadoop的分布式文件系统HDFS和MapReduce计算模型,定义了一个时代的“大数据”技术范式。尽管后来Spark等新一代引擎在计算速度上超越了MapReduce,但Hadoop对于大数据技术普及的推动力是无法替代的。

5.2 Apache Spark

2009年,加州大学伯克利分校AMPLab的博士生Matei Zaharia开始开发Spark。他对MapReduce的迭代计算效率深感不满——MapReduce在每次迭代之间都要将数据写入磁盘,而Spark引入了弹性分布式数据集(RDD)的概念,将数据缓存在内存中。2013年,Spark成为Apache顶级项目,Zaharia联合创立了Databricks公司来推动Spark的商业化。

Spark的快速发展使其成为了大数据处理的事实标准。它支持SQL、流处理、机器学习和图计算等统一的计算引擎,将批处理与流处理融合在同一个平台之上。

5.3 Apache Kafka

2009年,LinkedIn的三位工程师——Jay Kreps、Neha Narkhede和Jun Rao——创建了Kafka-。LinkedIn当时需要一种高效的方式来处理每天数十亿条用户活动事件,包括页面浏览、点击、搜索等。Kreps是Kafka的原始作者和主要设计者,他将项目命名为Kafka以致敬他喜爱的作家弗朗茨·卡夫卡(Franz Kafka),寓意系统“为写入而优化”的设计理念-。

Kafka本质上是一个分布式的提交日志系统,它的设计颠覆了传统消息中间件的架构思维。2011年,Kafka成为Apache顶级项目。2014年,Kreps、Narkhede和Rao共同创立了Confluent公司,提供Kafka的商业支持-。如今Kafka几乎是所有互联网公司数据管道的标配,以极高的吞吐量承载着实时事件流。

5.4 Apache Flink

Flink起源于柏林工业大学的一个研究项目Stratosphere,由Volker Markl教授指导的博士生团队开发。2014年,Stratosphere更名为Flink并成为Apache顶级项目。Flink的设计理念是“真正的流处理”——它将批处理视为流处理的特殊情形(有界流),而非反过来。这一设计哲学使得Flink在实时计算场景中(如实时风控、实时推荐)展现出巨大的技术优势。Flink的核心贡献者后来创立了Ververica公司(已被阿里巴巴收购),阿里巴巴也将Flink作为其内部实时计算的核心引擎。

5.5 Apache Storm

Storm由Nathan Marz于2011年创建,当时他在BackType公司(后被Twitter收购)工作。Marz需要一个实时处理Twitter数据的系统,而Hadoop的MapReduce模型是为批处理设计的,不适合实时场景。Storm被设计为一个分布式的实时计算系统,提供“至少一次处理”的语义保证。Storm在Twitter和其他互联网公司被广泛使用,开启了“流计算”这一技术方向。Marz后来还创建了Lambda架构的概念,对大数据处理架构产生了深远影响。

5.6 Apache ZooKeeper

ZooKeeper最初是雅虎研究院的一个子项目,用于协调Hadoop集群中的分布式服务。Patrick Hunt和Flavio Junqueira是ZooKeeper的核心开发者。ZooKeeper的设计灵感来自Google Chubby锁服务论文,它提供了一个高可用的分布式协调服务,包括配置管理、命名服务、分布式同步和组服务等功能。ZooKeeper是几乎所有分布式系统架构中不可或缺的基础组件,Kafka、HBase、Dubbo等都依赖ZooKeeper进行协调。

5.7 RabbitMQ

RabbitMQ由Rabbit Technologies Ltd.于2007年发布,核心开发者包括Alexis Richardson和Matthias Radestock。RabbitMQ是AMQP(高级消息队列协议)的开源实现,使用Erlang语言编写,天然具备高并发和容错能力。AMQP协议由摩根大通银行的John O‘Hara提出,旨在创建一个开放的、跨平台的消息中间件标准。RabbitMQ以其丰富的路由策略和可靠的消息传递机制,成为企业级消息中间件的主要选择之一。

5.8 Apache Pulsar

Pulsar最初由雅虎开发,核心创建者为Matteo Merli和Joe Francis。2016年雅虎开源了Pulsar,2018年成为Apache顶级项目。Pulsar的设计采用了计算与存储分离的架构——Broker层负责消息服务,BookKeeper层负责持久化存储。这一架构使得Pulsar在扩展性和运维灵活性上具有独特优势。雅虎将Pulsar用于处理每天数千亿条消息,随后Splunk、腾讯等公司也大规模采用了Pulsar。

六、云计算与容器技术

6.1 Docker

2010年,法裔美籍程序员Solomon Hykes在法国创立了dotCloud公司,提供平台即服务(PaaS)产品-。在运营dotCloud的过程中,Hykes及其团队积累了大量关于Linux容器(cgroups、namespaces等)的技术经验。2013年3月,他们将内部使用的容器技术以Docker之名开源-18

Docker的出现改变了整个软件交付的方式。通过将应用及其依赖打包为轻量级的镜像,Docker解决了“在我机器上能跑”的经典问题,使得开发、测试和生产环境的一致性得以保证-18。Docker项目在GitHub上迅速获得了大量关注,以至于2013年底dotCloud公司直接改名为Docker Inc.-18。Docker成为容器技术事实上的标准,推动了云原生时代的全面到来。

6.2 Kubernetes

在Google内部,有一个名为Borg的秘密系统管理着数以百万计的容器。当Docker掀起了容器化浪潮后,Google的三位工程师——Craig McLuckie、Joe Beda和Brendan Burns——决定将Borg的思想转化为一个开源项目-。2014年,Kubernetes(简称K8s)正式发布。

Kubernetes的名字来自古希腊语,意为“舵手”或“领航员”。它提供了一套完整的容器编排方案——自动部署、弹性伸缩、服务发现、负载均衡、滚动更新等。短短几年内,Kubernetes就击败了Docker Swarm和Apache Mesos,成为容器编排领域无可争议的霸主-。Brendan Burns后来加入微软Azure团队,而Craig McLuckie则继续在云原生领域创业-。

6.3 OpenStack

2010年,Rackspace Hosting和美国国家航空航天局(NASA)联合发起了OpenStack项目。NASA贡献了其Nova计算引擎的代码,Rackspace贡献了Swift对象存储的代码。OpenStack的目标是创建一个开源的、与AWS兼容的基础设施即服务(IaaS)平台。在随后的几年中,OpenStack吸引了IBM、Red Hat、HP、AT&T等几乎所有科技巨头的参与,形成了一个庞大的开源生态。尽管近年来在公有云的竞争中OpenStack的影响力有所减弱,但它仍然是私有云部署的重要选择,其在开源协作和开放标准方面的探索具有深远意义。

6.4 Prometheus

Prometheus由SoundCloud的工程师Matt T. Proud和Julius Volz于2012年创建。Prometheus的设计灵感来源于Google内部的Borgmon监控系统。它采用时间序列数据库存储指标数据,使用自定义的PromQL查询语言,采用“拉”(pull)模式主动从被监控的目标抓取数据。2016年,Prometheus成为继Kubernetes之后第二个加入云原生计算基金会(CNCF)的项目,如今已成为云原生环境下监控的事实标准。Proud和Volz都曾任职于Google。

6.5 Envoy

Envoy由Lyft的工程师Matt Klein于2016年创建。Klein在Lyft负责微服务架构,他发现现有的网络代理(如HAProxy、Nginx)在微服务场景下暴露出诸多局限,于是决定编写一个专为微服务设计的L7代理。Envoy支持动态服务发现、负载均衡、TLS终止、HTTP/2和gRPC代理等功能。Envoy后来也成为CNCF的项目,是服务网格(Service Mesh)架构中的关键数据面组件,Istio项目正是以Envoy为基础构建的。

6.6 CoreDNS

Miek Gieben于2016年创建了CoreDNS,一个基于Go语言编写的DNS服务器。CoreDNS最初是Gieben的一个个人项目,他将Caddy Web服务器的插件架构思想应用到DNS服务器设计中。2017年,CoreDNS加入CNCF,随后在2019年成为Kubernetes的默认DNS服务器,替代了此前的kube-dns。Gieben的贡献使得云原生环境下的服务发现更加灵活和可扩展。

6.7 containerd

containerd最初是Docker项目的一部分,负责管理容器的生命周期。2015年,Docker公司将其从Docker引擎中分离出来成为一个独立的项目。2017年,containerd被捐赠给CNCF。Michael Crosby是containerd的核心维护者之一。containerd提供了客户端层,使得其他容器平台可以在不依赖完整Docker引擎的情况下使用容器运行时,是Kubernetes CRI(容器运行时接口)的重要实现之一。

6.8 Terraform

Terraform由Mitchell Hashimoto和Armon Dadgar于2014年创建,是HashiCorp公司的旗舰产品。Hashimoto在读大学期间就开始了HashiCorp的创业。Terraform将基础设施定义为代码(Infrastructure as Code),使用声明式的配置语言来描述云资源,支持AWS、Azure、GCP等数百个云服务提供商。Terraform的出现改变了IT运维的工作方式——基础设施的创建、修改和销毁变得像管理软件版本一样可控和可追溯。

6.9 Consul

Consul同样由HashiCorp公司的Mitchell Hashimoto和Armon Dadgar于2014年创建。Consul是一个分布式的服务发现和配置管理系统,提供健康检查、KV存储和多数据中心支持。在微服务架构中,服务实例的动态发现和健康监控是核心难题,Consul为这个问题提供了一个优雅的开源解决方案。Consul与Terraform、Vault和Nomad一起构成了HashiCorp的云基础设施工具矩阵。

6.10 Vagrant

Vagrant同样出自Mitchell Hashimoto之手,于2010年发布。Hashimoto当时是一名大学生,对每次在不同机器上配置开发环境感到极其痛苦。Vagrant通过虚拟机自动化工具解决了这个问题——开发者只需编写一份Vagrantfile,就能一键创建标准化的开发环境。虽然如今Docker已经大量取代了Vagrant在开发环境中的作用,但Vagrant开创的“可重复的、可编程的开发环境”理念已经深深嵌入现代软件工程实践中。Hashimoto本人也因其连续创造多个成功项目的惊人产出而成为开源社区中的传奇人物。

6.11 gRPC

gRPC(Google Remote Procedure Call)由Google于2015年开源,是Google内部使用了十几年的Stubby RPC框架的下一代版本-。gRPC使用Protocol Buffers(也是Google开发的数据序列化格式)作为接口定义语言,支持客户端和服务器之间高效的二进制通信。与传统的RESTful API相比,gRPC在性能、强类型接口和流式传输方面具有显著优势。在微服务架构中,gRPC已经成为服务间通信的主流协议之一,被Netflix、Square、CockroachDB等众多知名项目广泛使用。

七、Web与浏览器技术

7.1 Apache HTTP Server

1995年,一群志愿者在NCSA HTTPd(由Rob McCool开发)的基础上创建了Apache HTTP Server。Brian Behlendorf(1973— )是这个项目的核心组织者-。Apache采用模块化架构,支持动态加载模块来扩展功能。它迅速成为全球最流行的Web服务器软件,在互联网基础设施中扮演了至关重要的角色。Apache软件基金会(ASF)正是为支持Apache项目而成立的,如今ASF管理着超过350个开源项目,是开源世界最重要的组织之一。

7.2 Nginx

2002年,俄罗斯程序员Igor Sysoev开始开发Nginx。当时他在Rambler(俄罗斯最大的门户网站之一)工作,每天要处理超过5亿次请求。当时的Web服务器(特别是Apache)在处理高并发连接时性能表现不佳(C10K问题——即同时处理一万个并发连接)。Sysoev设计的Nginx采用了异步、事件驱动的架构,单机即可轻松处理数万个并发连接。

2004年Nginx正式发布后,因其高性能和低内存占用而迅速流行。2011年,Sysoev创立了Nginx Inc.以推动商业化,2019年被F5 Networks以6.7亿美元收购。如今全球超过三分之一的网站使用Nginx作为Web服务器或反向代理。

7.3 Node.js

2009年,Ryan Dahl(1981— )在JSConf Europe大会上首次展示了Node.js。Dahl对传统Web服务器处理并发的方式(每个连接一个线程)感到不满,他看到了JavaScript事件循环模型在服务器端的潜力。Node.js将Google的V8 JavaScript引擎(由Lars Bak领导开发)与事件驱动的非阻塞I/O模型结合起来,使JavaScript开发者可以用同一种语言编写前端和后端代码。

2010年,Isaac Z. Schlueter创建了npm(Node Package Manager),使得Node.js的生态系统迅速膨胀。2012年Dahl将项目的维护工作移交给了Schlueter,此后Node.js继续蓬勃发展,彻底改变了JavaScript的格局。

7.4 VS Code

2015年,微软发布了Visual Studio Code,由Erich Gamma(《设计模式》一书的作者之一,Eclipse架构师)带领团队开发。VS Code基于Electron(GitHub开发的跨平台桌面应用框架)构建,使用了Monaco编辑器核心。尽管基于Web技术构建的桌面应用曾被嘲笑为“臃肿”,VS Code以其出色的扩展架构、智能代码补全(IntelliSense)和流畅的用户体验迅速征服了开发者。如今VS Code已经成为全球使用率最高的代码编辑器,其开源版本(Code - OSS)也在社区中广泛使用。

7.5 Chromium / Google Chrome

2008年,Google发布了Chrome浏览器及其开源版本Chromium。Chrome的主要技术负责人包括Lars Bak(V8 JavaScript引擎)、Ben Goodger(用户界面)等人。Chrome引入了多进程架构(每个标签页一个独立进程),大幅提升了浏览器的稳定性和安全性。V8引擎的JIT编译技术使JavaScript的执行速度提升了几个数量级。Chrome迅速超过了IE和Firefox,成为全球市场份额最高的浏览器。Chromium开源项目也为微软Edge、Opera、Brave等多个浏览器提供了基础。

7.6 Firefox

2002年,Mozilla基金会发布了Firefox浏览器(最初名为Phoenix,后改为Firebird,最后定为Firefox)的早期版本。Firefox的主要开发者包括Dave Hyatt、Blake Ross和Ben Goodger。在IE6垄断浏览器市场的年代,Firefox以标签页浏览、强大的扩展系统和更快的页面渲染速度吸引了大批用户。2004年Firefox 1.0正式发布,在不到一年的时间内被下载了超过1亿次。Firefox迫使微软重新开始开发IE,重新点燃了浏览器市场的竞争。Goodger后来加入Google领导Chrome的用户界面开发。

7.7 Electron

Electron最初由GitHub的工程师赵成于2013年创建,当时名为Atom Shell,用于支持GitHub的Atom编辑器。Electron将Chromium和Node.js整合在一起,使得前端开发者可以使用HTML、CSS和JavaScript构建跨平台桌面应用。VS Code、Slack、Discord、WhatsApp Desktop、Figma等大量流行应用都是基于Electron构建的。尽管Electron因其内存消耗和包体积备受争议,但它确实大幅降低了桌面应用开发的门槛,实现了“一套代码,多平台运行”的目标。

7.8 React

React由Facebook(现Meta)的软件工程师Jordan Walke于2011年创建。Walke受到XHP(一个PHP的HTML组件框架)的启发,开发了FaxJS——React的前身。2013年,React在JSConf US大会上正式开源。React引入了虚拟DOM的概念,通过声明式的组件化编程模型,大幅简化了复杂用户界面的开发。尽管React最初因其JSX语法(在JavaScript中写HTML)而遭到嘲笑,但如今它已成为全球最流行的前端框架,其组件化思想也深刻影响了Vue、Angular等框架的设计。

7.9 Vue.js

Vue.js由独立开发者尤雨溪(Evan You)于2014年发布。尤雨溪曾在Google Creative Lab工作,使用AngularJS开发项目时对其复杂性和某些设计感到不满。他决定提取Angular中自己最喜欢的部分,创建一个更加轻量、渐进式的前端框架。Vue.js从一个个人项目起步,凭借其柔和的学习曲线、出色的文档和灵活的渐进式设计,吸引了大量开发者和企业用户,成为中国开源项目在全球取得成功的代表性作品。

7.10 jQuery

2006年,John Resig(1984— )发布了jQuery。Resig当时只有22岁,他在日常前端开发中对浏览器之间巨大的DOM操作差异感到极度沮丧。jQuery的口号是“Write Less, Do More”(写得更少,做得更多)。它通过简洁的API统一了浏览器之间的差异,使得DOM操作、事件处理和Ajax请求变得前所未有的简单。在2010年代初期,全球超过70%的网站使用了jQuery。尽管随着现代JavaScript的发展,jQuery的使用率已大幅下降,但它对Web开发的民主化贡献是不可磨灭的。

7.11 Bootstrap

2011年,Twitter的两位工程师Mark Otto和Jacob Thornton发布了Bootstrap。当时Twitter内部不同团队开发的前端界面风格各异,Otto和Thornton决定创建一套统一的前端组件库来解决这个问题。Bootstrap提供了响应式网格系统、预定义的CSS样式和JavaScript组件,使得非设计背景的开发者也能快速创建美观的网页。Bootstrap曾一度是GitHub上星标数量最多的项目,将“前端框架”这一概念普及到了整个开发者社区。

7.12 WordPress

2003年,年仅19岁的美国大学生Matt Mullenweg和英国程序员Mike Little基于已停止维护的b2/cafelog博客软件,创建了WordPress。Mullenweg至今仍担任WordPress基金会的负责人和Automattic公司(WordPress.com的运营公司)的CEO。WordPress目前支撑着全球超过40%的网站,从个人博客到《纽约时报》等主流媒体都在使用它。WordPress的成功证明了开源软件与商业模式的结合可以创造出庞大而可持续的数字生态。

7.13 Drupal

2000年,荷兰大学生Dries Buytaert创建了一个内部留言板来与同学交流。毕业时,他决定将这个系统以Drupal之名发布到互联网上,让其他人也能使用。Drupal名字来源于荷兰语“druppel”(水滴),后经英语化为Drupal。Buytaert后来创立了Acquia公司为Drupal提供商业支持。Drupal以其强大的分类系统和灵活的模块化架构著称,被白宫网站、经济学人杂志等众多大型机构采用。

7.14 Apache Tomcat

Tomcat由Sun Microsystems的James Duncan Davidson于1999年创建,是实现Java Servlet和JSP规范的开源Web容器。Davidson最初将项目命名为“Tomcat”,因为“Tomcat”是一种不依赖他人、自力更生的动物-。Tomcat后来被捐赠给Apache软件基金会,成为Apache Jakarta项目的一部分。Tomcat至今仍是Java Web应用部署最常用的容器之一,几乎每一个Java Web开发者都曾与Tomcat打过交道。

7.15 HAProxy

HAProxy(High Availability Proxy)由Willy Tarreau于2000年创建。Tarreau当时需要一款高性能的负载均衡器来解决Web服务的高可用问题。HAProxy使用C语言编写,采用了单进程、事件驱动的架构,能够处理数十万并发连接。HAProxy如今被几乎所有的互联网基础设施所采用,包括GitHub、Stack Overflow、Twitter等。Tarreau至今仍然是HAProxy的主要维护者。

八、开发工具与版本控制

8.1 Git

2005年,Linus Torvalds在两周内写出了一个分布式版本控制系统——Git。当时Linux内核社区使用的商业版本控制工具BitKeeper突然撤销了对开源社区的免费使用授权,Torvalds“一怒之下”决定开发一个替代品。Git的关键设计包括分布式架构(每个开发者都有完整的代码仓库副本)、高效的分支管理、内容的SHA-1哈希校验等。

Git的出现彻底改变了软件开发协作的方式。GitHub、GitLab、Bitbucket等代码托管平台都建立在Git之上。Torvalds完成了Git的核心设计后,将维护工作移交给了滨野纯(Junio Hamano),后者至今仍是Git的核心维护者。

8.2 Subversion (SVN)

2000年,CollabNet公司的Karl Fogel和Jim Blandy开始开发Subversion,目标是创建一个更好的CVS(Concurrent Versions System)替代方案。Subversion支持目录的版本控制、原子提交、高效的二进制文件处理和分支标签操作,弥补了CVS的诸多缺陷。在Git普及之前,Subversion是开源项目和企业开发中最流行的集中式版本控制系统。Fogel后来还编写了《Producing Open Source Software》一书,成为开源社区管理的经典著作。

8.3 GNU Make

1976年,Stuart Feldman在贝尔实验室创建了Make——一个自动化构建工具。Feldman当时参与Unix的开发,发现每次修改代码后都需要手动重新编译的命令繁琐且容易出错。于是他编写了Make,通过Makefile定义文件依赖关系和构建规则。Feldman的设计如此成功,以至于Make在近50年后仍然是Unix/Linux平台上最主要的构建自动化工具。Make的影响远远超出了构建系统,其基于依赖的规则执行模型被Jenkins等CI/CD系统广泛借鉴。

8.4 GCC (GNU Compiler Collection)

1987年,Richard Stallman发布了GCC的第一个版本,最初只支持C语言。GCC是GNU计划的关键组成部分——如果没有一个自由免费的编译器,整个GNU操作系统项目将无从谈起。Stallman亲自编写了GCC的最初版本。后来GCC由Michael Tiemann等人扩展为支持C++、Fortran、Ada、Go等多种语言的编译器集合。Tiemann后来创立了Cygnus Solutions公司,开创了为开源软件提供商业支持的商业模式,该公司后被Red Hat收购。

8.5 LLVM / Clang

2000年,伊利诺伊大学厄巴纳-香槟分校的博士生Chris Lattner开始开发LLVM(Low Level Virtual Machine)。Lattner的导师是Vikram Adve教授。LLVM的设计理念是将编译器分解为可重用的、模块化的组件——前端、优化器和后端彼此独立,可以灵活组合。2005年,苹果公司聘请了Lattner,LLVM开始获得大规模商业应用。Clang是基于LLVM的C/C++/Objective-C编译器前端,2007年发布。Clang提供了比GCC更友好的错误信息和更快的编译速度。如今LLVM/Clang是macOS和iOS的默认编译器,也被Google、Intel等广泛使用。Lattner随后在苹果继续主导了Swift语言的设计。

8.6 Maven

Maven由Jason van Zyl于2002年创建,旨在解决Apache Turbine等Java项目中的构建管理混乱问题。Maven引入了项目对象模型(POM)和“约定优于配置”的理念,通过声明式的方式管理项目依赖和构建生命周期。Maven的中央仓库提供了一套标准化的依赖管理机制,解决了Java生态中长期存在的JAR包地狱问题。van Zyl后来创立了Sonatype公司,Maven中央仓库由其运营,是全球Java生态的核心基础设施。

8.7 Jenkins / Hudson

Jenkins最初以Hudson的名字于2005年由川口耕介(Kohsuke Kawaguchi)在Sun Microsystems工作时创建。川口当时需要一种自动化构建和测试的工具来解决频繁集成的问题。2011年,由于与Oracle(当时已收购Sun)的商标争议,项目更名为Jenkins。Jenkins成为持续集成和持续交付(CI/CD)的代名词,拥有超过1000个插件,几乎可以与任何开发工具集成。川口至今仍在积极推动Jenkins项目的发展。

8.8 GNU Emacs

1976年,Richard Stallman在MIT人工智能实验室创建了Emacs(最初是一套运行在TECO编辑器上的宏,称为Editor MACroS)。1984年,Stallman发布了GNU Emacs,这是GNU计划发布的第一个重要软件。Emacs远不止是一个文本编辑器——它内置了一个完整的Lisp解释器(Emacs Lisp),允许用户通过编写Lisp代码来无限扩展编辑器的功能。在Emacs中,你可以写代码、读邮件、浏览网页、玩游戏、管理日程。Emacs与vi/Vim之间的编辑器之争(Editor War)是计算机文化史上最著名的技术辩论之一,体现了自由与简洁、扩展性与效率之间永恒的张力。

8.9 Vim

1976年,Bill Joy(后来的Sun Microsystems联合创始人)创建了vi编辑器,作为BSD Unix的标准文本编辑器。1988年,Bram Moolenaar(1961—2023)发布了Vim(Vi IMproved),在vi的基础上添加了多级撤销、语法高亮、插件系统等功能。Vim使用模态编辑——在不同模式下同样的按键有不同的含义,这使得熟练用户的操作效率极高。Moolenaar还将Vim与慈善事业结合起来,通过Vim推广对乌干达儿童的援助。这位荷兰程序员于2023年去世,他留下的Vim至今仍是无数程序员的首选编辑器。

8.10 Eclipse

Eclipse最初由IBM于2001年创建,IBM捐赠了价值4000万美元的代码来启动这个开源项目。Eclipse的设计目标是创建一个通用的、基于插件的集成开发环境(IDE)平台。2004年,Eclipse基金会从IBM独立出来,成为一个独立的非营利组织。Eclipse最著名的是其Java开发工具(JDT),但通过插件体系它几乎可以支持任何编程语言和开发场景。Erich Gamma是Eclipse Java开发工具的主要架构师之一,他在加入微软领导VS Code开发之前,已经在Eclipse上积累了丰富的IDE设计经验。

8.11 IntelliJ IDEA

IntelliJ IDEA由JetBrains公司于2001年发布,主要创作者为JetBrains的联合创始人Sergey Dmitriev、Eugene Belyaev和Valentin Kipiatkov。JetBrains是一家捷克公司,总部位于布拉格。IntelliJ IDEA引入了深度代码分析、智能代码补全和大量重构工具,将Java IDE的体验提升到了一个新的水平。JetBrains随后推出了WebStorm、PyCharm、GoLand等一系列语言特定的IDE,还创建了Kotlin编程语言。JetBrains的成功证明了专业的开发工具公司可以创造出比免费替代品更优秀的产品。

8.12 Ant

Apache Ant由James Duncan Davidson于2000年创建,用于自动化Java项目的构建过程。Davidson当时正在开发Tomcat,需要一个跨平台的构建工具来替代平台相关的Make。Ant使用XML来描述构建过程(build.xml),虽然XML语法笨重,但Ant成功解决了Java项目跨平台构建的难题。Davidson也是Apache Tomcat的创建者,还是一位专业的摄影师。

8.13 Gradle

Gradle由Hans Dockter于2007年创建,他创立了Gradle Inc.来推动项目发展。Gradle结合了Ant的灵活性和Maven的约定优于配置理念,同时使用Groovy(后来也支持Kotlin)作为构建脚本语言,避免了XML的冗长。2013年,Google宣布Android项目将使用Gradle作为构建系统,这极大地推动了Gradle的流行。Gradle的表现力使其特别适合复杂的多模块项目构建。

九、人工智能与机器学习框架

9.1 TensorFlow

2015年11月,Google Brain团队开源了TensorFlow。TensorFlow的前身是Google内部的DistBelief系统,由Jeff Dean(1968— )和Andrew Ng等人领导开发-。Dean是Google最具传奇色彩的工程师之一,他在MapReduce、BigTable、Spanner、TensorFlow等多个改变世界的系统设计中都扮演了关键角色。

TensorFlow的名字来源于张量(tensor)在计算图(graph)中的流动(flow)。它的核心设计是一个符号化的计算图——先定义计算结构,再在会话中执行。2019年发布的TensorFlow 2.0引入了Eager Execution,简化了开发体验。尽管在学术界逐渐被PyTorch超越,TensorFlow在生产部署领域仍然拥有巨大的优势,特别是TF Serving、TF Lite(移动端推理)等生态系统组件。

9.2 PyTorch

PyTorch由Facebook AI Research(FAIR)团队于2016年发布,基于早期的Torch框架(由Ronan Collobert等人于2002年在纽约大学开发)-。PyTorch的核心贡献者包括Soumith Chintala、Adam Paszke等人。PyTorch的最大特点是动态计算图——计算图在运行时动态构建,这与TensorFlow早期版本的静态图形成了鲜明对比。动态图使得调试更加直观,代码更加Pythonic。

PyTorch在学术界迅速获得了压倒性的普及率,成为发表论文和进行研究的主流选择。如今PyTorch也在工业界获得了广泛应用,其TorchServe部署工具和TorchScript(支持导出为静态图)使其在生产环境中的竞争力不断提升。

9.3 Keras

François Chollet(1989— )几乎独自完成了Keras的开发-。Keras是一个高度封装的深度学习API,以TensorFlow、Theano或CNTK为后端运行。Chollet的设计哲学是“从理念到结果,尽可能快”——Keras将深度学习的常见操作封装为简洁的API,大幅降低了深度学习的入门门槛。Chollet于2015年发布Keras后,它迅速成为最受欢迎的深度学习框架之一。2017年,Keras被正式并入TensorFlow核心(tf.keras)。Chollet后来出版了《Python深度学习》一书,成为该领域的经典教材。

9.4 Theano

Theano是深度学习框架领域的“祖师级”存在,2007年由蒙特利尔大学的Yoshua Bengio(2018年图灵奖得主)领导的MILA实验室开发,核心贡献者包括Frédéric Bastien、Pascal Lamblin等人-。Theano将数学表达式编译为高效的数值计算代码,支持在CPU和GPU上自动求导。Theano开启了深度学习框架自动微分的技术路线,TensorFlow的设计理念在很大程度上继承了Theano。2017年,MILA实验室宣布停止Theano的开发,但其技术基因已在后续所有主流框架中得到延续。

9.5 Caffe

Caffe由加州大学伯克利分校的中国籍博士生贾扬清于2013年创建-。Caffe专注于计算机视觉领域的深度学习应用,提供了“模型定义即配置文件”的简洁方式和预训练的经典模型库。贾扬清博士毕业后先后在Google和Facebook工作,在Facebook期间参与了Caffe2和PyTorch的开发。Caffe在计算机视觉社区中一度是事实标准,影响了AlexNet、VGGNet、ResNet等经典模型的实现和传播。

9.6 MXNet

MXNet由DMLC(分布式机器学习社区)于2015年创建,主要贡献者包括李沐、陈天奇等人。李沐是华盛顿大学的博士,后来加入亚马逊AWS领导MXNet的开发。MXNet的一大亮点是其混合编程模型——既支持命令式编程(类似PyTorch),也支持符号式编程(类似TensorFlow)。2017年,亚马逊将MXNet作为AWS的官方深度学习框架推出。陈天奇同时也是XGBoost(一个梯度提升树库,在Kaggle竞赛中极为流行)和TVM(深度学习编译器)的创建者,他与李沐一起开创了华人程序员在深度学习基础设施领域的影响力版图。

9.7 Scikit-learn

Scikit-learn由David Cournapeau于2007年创建,是Google Summer of Code的一个项目。2010年,INRIA(法国国家信息与自动化研究所)的研究员们(包括Gaël Varoquaux、Alexandre Gramfort等人)接手并大幅扩展了该项目。Scikit-learn基于NumPy和SciPy构建,提供了分类、回归、聚类、降维、模型选择等经典机器学习算法的统一接口。Scikit-learn是数据科学领域最广泛使用的Python库之一,其API设计成为了机器学习库的事实标准。

9.8 XGBoost

XGBoost(eXtreme Gradient Boosting)由华盛顿大学的博士生陈天奇于2014年创建。陈天奇是DMLC社区的创始成员,他将梯度提升算法进行了极致优化——支持并行计算、正则化、缺失值处理和交叉验证。XGBoost在Kaggle竞赛平台上取得了惊人的成功——在2015年,Kaggle上29个获奖方案中有17个使用了XGBoost。陈天奇同时也参与了MXNet和TVM的开发,是中国新一代机器学习系统研究者的代表性人物。

9.9 Jupyter Notebook

Jupyter项目起源于2014年从IPython项目中分离出来。IPython由哥伦比亚大学的物理学研究生Fernando Pérez于2001年创建。Pérez在科研中需要一种更好的交互式Python环境,于是创建了IPython。2014年,IPython的Web笔记本组件独立为Jupyter项目(名字取自Julia、Python和R三种语言)。Jupyter Notebook提供了一种革命性的编程体验——在浏览器中混合代码、文档、可视化和数学公式,成为数据科学家、研究者和教育工作者的标配工具。Pérez至今仍在推动Jupyter生态的发展。

9.10 NumPy

NumPy的前身Numeric由Jim Hugunin于1995年创建,他是MIT的研究生。2005年,Travis Oliphant将Numeric和另一个竞争项目Numarray合并为NumPy。Oliphant后来还创建了SciPy和Anaconda发行版。NumPy提供了高性能的多维数组对象(ndarray)和丰富的数值计算函数,是Python数据科学生态的基石——几乎每一个用于数据科学、机器学习的Python库都依赖于NumPy。Oliphant于2012年创立的Anaconda公司使Python的科学计算环境一键安装成为可能。

9.11 pandas

pandas由Wes McKinney于2008年在AQR Capital Management工作时创建。McKinney是一名量化金融分析师,他需要一种比Excel更强大、比SQL更灵活的金融数据处理工具。pandas提供了DataFrame和Series两种核心数据结构,以及丰富的数据清洗、转换、聚合和可视化功能。2012年,McKinney出版了《利用Python进行数据分析》一书。pandas与NumPy、Matplotlib一起构成了Python数据分析的“黄金三角”,McKinney后来联合创立了Apache Arrow项目。

9.12 PyTorch Lightning

PyTorch Lightning由William Falcon于2019年创建,当时他是纽约大学和FAIR的博士生。Falcon的目标是将PyTorch中重复的样板代码(如训练循环、设备管理、检查点保存)抽象出来,让研究者可以专注于模型设计本身。Lightning提供了标准化的项目结构,并且天生支持多GPU、TPU和16位精度训练。在短短几年内,Lightning被大量研究团队和企业采用,成为PyTorch生态的重要组成部分。

十、中国企业级软件与中国程序员

10.1 TDengine

陶建辉是TDengine(时序数据库)的创始人。他在北京创办了涛思数据公司,目标是开发一款高性能、低成本的时序数据处理引擎。TDengine专门为物联网、车联网和工业互联网场景设计,采用“一个数据采集点一张表”的独特数据模型和超级表的概念,实现了10倍于通用数据库的插入和查询性能。

2019年,陶建辉宣布将TDengine开源——将核心代码以AGPL许可证发布在GitHub上,成为中国开源软件走向全球的代表性案例。陶建辉是中国程序员创业的典型人物,他此前还创办了和信通讯(后被联发科收购),在工程和管理方面都有深厚积累。

10.2 OceanBase

OceanBase是由蚂蚁集团(原蚂蚁金服)开发的一款分布式关系数据库。阳振坤是OceanBase的首席架构师。阳振坤早年在北京大学任教,后在微软亚洲研究院、百度等机构工作,是中国数据库领域的资深专家。OceanBase的设计目标是支持金融级的分布式事务,在TPC-C基准测试中两次打破世界纪录。2021年OceanBase宣布开源,展示了中国基础软件在核心技术领域追赶世界先进水平的决心和能力。

10.3 TiDB

TiDB由PingCAP公司开发,联合创始人包括刘奇、黄东旭和崔秋。刘奇和黄东旭都是中国新一代数据库工程师的杰出代表。TiDB是一个分布式、支持HTAP(混合事务/分析处理)能力的数据库,兼容MySQL协议和生态。TiDB的设计灵感来自Google Spanner/F1论文,采用存储和计算分离的架构。从2015年开源起,TiDB在全球分布式数据库社区获得了广泛认可,是CNCF的毕业项目之一,也是中国开源项目走向国际化的重要标杆。

10.4 Apache SkyWalking

吴晟是Apache SkyWalking的创始人和项目VP。SkyWalking是一个开源的应用性能监控(APM)系统,专门为微服务、云原生和容器化架构设计。吴晟带领团队将这个项目从个人项目一路发展为Apache顶级项目,成为中国程序员在国际开源社区赢得尊敬的标杆人物。SkyWalking支持多种语言的自动探针,可以在不修改应用代码的情况下实现调用链追踪和性能指标收集。

10.5 Apache Dubbo

Apache Dubbo是由阿里巴巴开发的高性能Java RPC框架,由梁飞(花名“虚极”)等人创建。Dubbo在阿里巴巴内部经过大规模生产环境验证后于2011年开源,迅速成为中国Java微服务生态中最流行的RPC框架。Dubbo支持多种注册中心、协议和负载均衡策略,是阿里巴巴中间件技术栈的核心组件之一。2018年,Dubbo以Apache顶级项目的身份重启开源维护,展现出阿里巴巴在开源战略上的重大转变。

10.6 Apache ShardingSphere

张亮是Apache ShardingSphere的创始人和项目VP。ShardingSphere是一个分布式数据库中间件解决方案,提供数据分片、读写分离、分布式事务、数据加密等功能。张亮从2016年开始开发这个项目,将其从个人项目一路推动至Apache顶级项目,代码被全球众多企业使用。张亮还创建了ElasticJob分布式调度框架(也是Apache项目),是中国开源基础设施领域最活跃的技术领袖之一。

10.7 WPS Office

求伯君是中国第一代程序员的标志性人物,他在1988年独自一人开发了WPS(Word Processing System)的第一个版本。在DOS时代,WPS是中国办公软件的代名词。后来微软Office进入中国,WPS经历了一段艰难的转型期。求伯君带领金山软件的团队,用三年时间重写了WPS的全部代码,实现了与微软Office的兼容。求伯君的创业故事是中国软件史上的传奇——从一个人的孤独编码到上市公司CEO,他的经历激励了一代中国程序员。雷军最初就是金山的第六号员工,在求伯君的团队中成长起来的。

10.8 微信

张小龙是中国互联网产品的传奇人物。他早年独自开发了Foxmail邮件客户端,这款产品在没有商业化推广的情况下获得了数百万用户。2005年,腾讯收购了Foxmail,张小龙加入腾讯。2010年,他向马化腾发邮件提议做一款移动端即时通讯产品,得到了支持。2011年,微信正式发布。在随后的几年中,微信从一款简单的聊天工具发展为集社交、支付、电商、内容分发于一体的“超级应用”。

微信的成功不仅是商业的成功,也展示了中国软件产品在用户体验和生态构建方面可以达到的高度。张小龙以对产品细节的极端关注而著称,他至今仍亲自参与微信许多关键功能的设计决策。

10.9 Foxmail

如前所述,Foxmail由张小龙于1996年独立开发。在互联网早期,电子邮件是核心的通讯工具,Foxmail以其简洁高效的设计成为中国最流行的邮件客户端。张小龙当时将Foxmail免费发布,依靠用户的口碑传播获得了惊人的市场份额。Foxmail的成功为张小龙赢得了“中国最好的产品经理之一”的声誉,也为他后来在腾讯创造微信埋下了伏笔。

10.10 UCDOS

鲍岳桥是中国早期的系统软件先驱。1990年代初期,在DOS操作系统上进行中文处理需要“汉字系统”的支持。鲍岳桥开发的UCDOS是当时最成功的汉字系统,通过UCDOS,普通用户才能在电脑上使用中文进行办公和编程-1。Windows的诞生让鲍岳桥看到了汉字系统没落的必然,随后他将目光转向了互联网——他后来创立了联众游戏(中国最早的在线棋牌游戏平台之一),继续在中国互联网历史上留下自己的印记。

10.11 Apache Doris

Apache Doris由百度于2017年开源(前身为百度Palo),是一个基于MPP(大规模并行处理)架构的交互式SQL数据仓库。Doris的设计目标是在海量数据上实现亚秒级的OLAP查询响应,特别适合实时报表和多维分析场景。Doris的核心开发者来自百度的搜索和广告团队,他们在处理海量用户行为数据方面积累了丰富经验。2022年,Doris成为Apache顶级项目,在中国和全球市场获得了美团、京东、小米等大量企业的生产部署。

10.12 Apache APISIX

Apache APISIX由支流科技(api7.ai)创建,王院生是项目的联合创始人和核心贡献者。APISIX是一个云原生API网关,基于Nginx和OpenResty构建,支持动态路由、负载均衡、认证鉴权、限流熔断等功能。APISIX于2019年开源,迅速成为Apache顶级项目。王院生和团队致力于将APISIX打造成云原生时代最强大的API网关,其插件热加载和毫秒级配置分发能力在业界独树一帜。

10.13 DeepSeek

DeepSeek由中国AI公司深度求索(DeepSeek AI)于2023年创立,创始人梁文峰。DeepSeek在2024至2025年间先后发布了DeepSeek-V2、DeepSeek-V3和DeepSeek-R1等系列模型。其中R1模型在数学推理任务上表现尤为突出,采用了强化学习方法提升模型的推理能力。DeepSeek以极高的性价比吸引了全球开发者——其API价格远低于OpenAI的同类产品,同时保持了竞争力极强的性能水平。DeepSeek的模型全部开源(包括模型权重),这使得它迅速在全球AI社区获得了大量关注,推动了中国在AI大模型领域的国际影响力。

10.14 Apache ECharts

ECharts由百度前端技术团队创建,核心贡献者包括林峰等人。ECharts提供了一个功能强大的JavaScript可视化图表库,支持数十种图表类型和丰富的交互方式。2013年开源后,ECharts凭借其精美的视觉效果和灵活的配置方式迅速成为全球最流行的数据可视化库之一。2018年,ECharts成为Apache顶级项目。ECharts被阿里巴巴、腾讯、GitHub等大量公司采用,是中国前端技术在开源世界取得的最耀眼成就之一。

10.15 Ant Design

Ant Design由蚂蚁集团的前端团队于2015年创建,是一个企业级UI设计语言和React组件库。核心贡献者包括偏右(花名)等人。Ant Design提供了一套完整的设计规范和高品质的React组件,大幅降低了中后台系统的开发成本。Ant Design在GitHub上获得了超过9万颗星标,是全球最受欢迎的React UI库之一,被阿里巴巴、腾讯、百度、字节跳动等众多中国公司以及大量国际企业广泛使用。

10.16 Element UI / Element Plus

Element UI由饿了么前端团队于2016年创建。饿了么在被阿里巴巴收购后,其前端团队继续维护和推广这个项目。Element UI是Vue.js生态中最流行的桌面端组件库,提供了丰富的组件和一致的设计风格。2020年,Vue 3.0发布后,Element Plus作为Vue 3的适配版本启动开发。Element UI在中国Vue开发者社区中的普及度极高,几乎是每个Vue项目都离不开的基础设施。

10.17 Nacos

Nacos由阿里巴巴于2018年开源,是一个动态服务发现、配置管理和服务管理平台。Nacos的核心贡献者包括阿里巴巴中间件团队的工程师。在微服务架构中,服务注册发现和动态配置管理是两个核心难题,Nacos用一个平台同时解决了这两个问题。Nacos支持Dubbo、Spring Cloud和Kubernetes等多种生态,是国内微服务架构中最常用的基础设施组件之一。

10.18 Sentinel

Sentinel同样由阿里巴巴开源,是面向分布式服务架构的流量控制组件。核心贡献者包括阿里巴巴中间件团队。Sentinel以“流量”为切入点,提供流量控制、熔断降级、系统负载保护等多种维度的高可用保障功能。在阿里巴巴“双十一”等大规模流量场景下经过充分验证后,Sentinel被开源并为社区采用,成为中国微服务生态的重要组成部分。

10.19 RocketMQ

Apache RocketMQ由阿里巴巴于2012年开源,最初名为MetaQ。RocketMQ是阿里巴巴内部使用的消息中间件,承载了“双十一”期间万亿级消息的流转。RocketMQ采用Java编写,支持发布订阅、消息轨迹、事务消息等高级特性,以极高的可靠性和吞吐量著称。2017年,RocketMQ成为Apache顶级项目,在全球金融、电商等行业获得了广泛采用。

10.20 PaddlePaddle(飞桨)

PaddlePaddle由百度于2016年开源,是中国首个自主研发的深度学习框架。核心团队由百度AI科学家领导,包括王海峰等资深工程师。PaddlePaddle提供了从开发、训练到部署的全流程深度学习工具链,特别在NLP和OCR(光学字符识别)领域有深厚积累。PaddlePaddle为中国AI开发者提供了TensorFlow/PyTorch之外的本土化选择,在产业落地和企业级应用方面具有显著优势。

十一、其他重要软件与工具

11.1 Wireshark

1998年,Gerald Combs发布了Ethereal(2006年因商标问题更名为Wireshark)——一个图形化的网络协议分析工具。Combs最初在密苏里大学堪萨斯城分校的网络运营中心工作,需要一个更强大的网络流量分析工具。Wireshark能够实时捕获和分析网络数据包,支持数千种协议的深度解析,是网络工程师和安全研究者的必备工具。Combs后来创立了Riverbed Technology和SharkFest(Wireshark用户和开发者大会)。

11.2 ffmpeg

ffmpeg由Fabrice Bellard于2000年创建。Bellard是软件世界中的一位真正奇才——他不仅创建了ffmpeg(全球最流行的音视频编解码工具库),还是QEMU(全系统模拟器)和TinyCC(极小的C编译器)的作者,并且在计算圆周率的世界纪录方面也有建树。ffmpeg提供了几乎无所不包的音视频处理能力,被VLC播放器、Chrome浏览器、YouTube、Instagram等无数软件和服务使用。ffmpeg命令行工具的语法复杂得令人望而生畏,但它强大到足以处理任何你能想到的音视频格式转换任务。

11.3 VLC Media Player

VideoLAN项目于1996年由法国École Centrale Paris的学生发起,最初的目标是在校园网络中流式传输视频。2001年,VideoLAN团队发布了VLC(VideoLAN Client)播放器。VLC的核心开发者和项目主席是Jean-Baptiste Kempf。VLC以其“什么都能播放”的能力而著称,几乎支持所有已知的音视频格式和编解码器,并且是完全开源免费的。VLC的图标——那个戴着交通锥的小路障——已经成为了自由软件文化的标志性符号。

11.4 Blender

Blender由荷兰动画工作室NeoGeo的Ton Roosendaal于1994年作为内部工具创建。1998年,Roosendaal创立了Not a Number(NaN)公司来推广Blender,但在2002年公司因资金问题倒闭。Roosendaal发起了一场“Free Blender”众筹活动,在社区的支持下筹集了10万欧元,从投资者手中买回了Blender的源代码并开源。如今Blender是全球最强大的开源3D创作套件,被广泛应用于动画电影、游戏开发和视觉特效制作。Roosendaal至今仍担任Blender基金会的主席。

11.5 GIMP

GIMP(GNU Image Manipulation Program)由Peter Mattis和Spencer Kimball于1995年创建,当时两人是加州大学伯克利分校的学生。GIMP的目标是创建一个免费开源的图像编辑工具,作为Adobe Photoshop的替代品。Mattis和Kimball后来在Google工作时又共同创建了CockroachDB分布式数据库,展现了惊人的技术多面性。GIMP在开源图形工具领域长期占据核心地位,为无数设计师和开发者提供了免费的图像处理能力。

11.6 7-Zip

7-Zip由俄罗斯程序员Igor Pavlov于1999年创建。Pavlov开发了全新的7z压缩格式,在压缩比上显著优于当时主流的ZIP和RAR格式。7-Zip完全免费开源,支持数十种压缩和解压缩格式。Pavlov至今仍是一个人独立维护着这个项目,其简洁、高效、无广告的特性使得7-Zip在全球拥有数以亿计的用户。Pavlov的低调和坚持是开源世界中“小而美”精神的完美体现。

11.7 PuTTY

PuTTY由英国程序员Simon Tatham于1998年创建。Tatham当时是剑桥大学的学生,需要一个能在Windows上通过SSH远程登录Unix服务器的工具。PuTTY不仅实现了SSH协议,还支持Telnet、Rlogin和串口连接。自发布以来,PuTTY始终是Windows平台上最流行的SSH客户端。Tatham是一位坚定的开源支持者,他还维护着一系列其他小型开源工具,始终保持着独立开发的姿态。

11.8 cURL

cURL由瑞典程序员Daniel Stenberg于1997年创建-。Stenberg当时想从网站上自动下载汇率数据,但找不到合适的工具,于是自己写了一个。cURL最初名为httpget,后来发展为支持几乎所有网络协议的命令行数据传输工具。libcurl(cURL的核心库)被无数软件项目使用,覆盖了操作系统、编程语言、游戏引擎、汽车系统等各个领域。Stenberg至今仍在全职维护cURL,他已成为开源软件可持续维护的代表人物。

11.9 OpenSSL

OpenSSL由Eric A. Young和Tim Hudson于1998年创建,是SSL/TLS协议的广泛使用的开源实现。尽管OpenSSL在2014年的Heartbleed漏洞事件中暴露出开源安全软件维护资源不足的问题(当时整个项目只有两名全职维护者),但这反而激发了整个行业对开源基础设施的重视。Core Infrastructure Initiative由此成立,为关键开源项目提供资金支持。OpenSSL如今仍然是互联网加密通信的核心组件。

11.10 CMake

CMake由Bill Hoffman于1999年在Kitware公司创建。Hoffman的目标是创建一个跨平台的构建系统生成器,解决大型C/C++项目在不同平台(Unix Makefile、Visual Studio、Xcode等)上构建管理的问题。CMake使用自己的脚本语言来定义构建过程,然后生成目标平台的原生构建文件。如今CMake是C/C++项目中最广泛使用的构建系统,被KDE、LLVM、OpenCV、VTK等几乎所有大型C/C++开源项目采用。

11.11 Fish Shell

Fish(Friendly Interactive SHell)由瑞典程序员Axel Liljencrantz于2005年创建。Fish的设计目标是成为一个更友好的Unix Shell——提供语法高亮、基于历史的自动补全建议、更直观的脚本语法。与Bash和Zsh相比,Fish的用户体验大幅提升。尽管Fish的脚本与POSIX Shell不兼容限制了其在服务器环境中的采用,但作为交互式Shell,它已被大量开发者在个人工作站上使用。

11.12 Oh My Zsh

Oh My Zsh由Robby Russell于2009年创建,是一个Zsh配置管理框架。Zsh(Z Shell)由Paul Falstad于1990年创建,本身就是一个功能强大的Shell,但其配置相对复杂。Oh My Zsh通过社区驱动的插件系统和丰富的主题,使Zsh的开箱即用体验得到了革命性提升。在GitHub上,Oh My Zsh是星标数量最高的项目之一,成为开发者个性化终端环境的标准配置方式。

11.13 tmux

tmux由Nicholas Marriott于2007年创建,是GNU Screen(终端复用器)的现代替代品。Marriott当时需要在一个SSH会话中管理多个终端窗口,但Screen的代码库已经老化且维护不活跃。tmux采用了更现代化的设计和BSD许可证,支持窗口分割、会话持久化和脚本化控制。tmux已经成为服务器管理和开发工作流中不可或缺的工具,与Vim/Emacs一起构成终端工作环境的“铁三角”。

11.14 Ansible

Ansible由Michael DeHaan于2012年创建。DeHaan此前是Red Hat的工程师,也是Cobbler(Linux安装服务器)的创建者和Func(多节点管理框架)的共同作者。Ansible的设计哲学是“简单至上”——它使用YAML编写配置(称为Playbook),通过SSH与目标机器通信而无需安装代理,这使得Ansible的部署和使用极其简单。2015年,Red Hat收购了Ansible。如今Ansible与Puppet、Chef和SaltStack一起成为IT自动化和配置管理领域的核心工具。

11.15 rsync

rsync由Andrew Tridgell于1996年创建。Tridgell是澳大利亚程序员,也是Samba(SMB文件服务器开源实现)的主要作者。rsync实现了增量文件传输——只传输文件变化的部分,极大提高了文件同步的效率。Tridgell设计了独特的滚动校验算法来检测文件差异。rsync是Unix/Linux系统管理中最常用的工具之一,也是Dropbox等云存储服务的核心技术基础之一。Tridgell对开源社区的贡献不仅限于代码——他还因对微软专有协议的成功逆向工程而闻名,在Samba与微软之间的法律纠纷中扮演了关键角色。

十二、总结与反思

在梳理了超过80个重要软件作品及其作者的传奇故事之后,有一些反复出现的模式值得深入思考。

需求驱动而非商业驱动

绝大多数改变世界的软件作品并非源于商业计划书或市场调研报告,而是源于作者自身面临的具体问题。Ken Thompson想玩“星际旅行”游戏,于是写出了Unix-8。Linus Torvalds想在自己的386上运行一个好用的系统,于是写出了Linux-9。Salvatore Sanfilippo对MySQL的性能不满,于是写出了Redis-27。这种“解决自己的问题”的动机,使得这些软件在设计之初就扎根于真实的需求土壤中。

正如Brian Kernighan在访谈中提到的,贝尔实验室的成功秘诀在于“没有繁重的工作量”,大家都在做自己认为有趣或重要的事情-13。这种从个人兴趣出发、由内而外的创新模式,是软件创新最基本的驱动力。

自由开源精神的胜利

Linux、Git、Apache、MySQL、Python、Node.js、Docker、Kubernetes、React、VS Code……今天几乎所有的互联网和云计算基础设施都运行在开源软件之上。Richard Stallman于1983年发起的自由软件运动,经过几十年的发展已经从边缘走到了主流-。

特别值得强调的是GPL(GNU通用公共许可证)的“Copyleft”理念,它确保了开源代码的自由特性不会被后来的修改者剥夺——自由软件的自由是可以“传染”的-。而Apache、MIT等更为宽松的许可证则为开源软件在商业领域的广泛应用铺平了道路。这种制度创新——软件许可证的设计——本身就是一项伟大的“元软件”成就。

从“副产品”到主业

C语言是为了更好地编写Unix而生的“副产品”-8。Git是Linux内核开发过程中的一个“工具性副产品”。gRPC是Google内部系统的开源副产品。Kafka是LinkedIn内部数据管道需求催生的副产品。这些“副产品”最终的影响力在许多维度上甚至超过了它们原本要服务的“主业”。这一规律对技术管理有深刻的启示——组织应该为“副产品”的成长保留足够的空间和自由度。

简洁至上与克制的智慧

SQLite的Richard Hipp将数据库压缩到数百KB,7-Zip的Igor Pavlov一个人维护一个用户数亿的项目,Go语言的设计者们坚持语法“无聊”到极致,cURL的Daniel Stenberg数十年如一日地维护一个“完成一件事并把它做好”的工具-。这些选择背后是一种价值观:软件应该简单、可靠、易于理解。在功能不断膨胀的行业趋势下,保持克制本身就是一种强大的设计能力。

全球协作与中国贡献

从早期的贝尔实验室(Unix、C语言)和MIT(GNU、Emacs),到硅谷互联网公司催生的大数据技术(Hadoop、Kafka、Spark),再到中国企业贡献的TDengine、TiDB、SkyWalking、DeepSeek,软件创新的地理版图在持续演变。中国程序员正从开源技术的消费者成长为重要的贡献者和创造者,陶建辉、吴晟、张亮、梁文峰等人的故事表明,中国在基础软件和前沿AI领域的原创能力正在迅速提升。

结语

从1969年贝尔实验室的Unix诞生,到2025年DeepSeek的开源大模型震撼全球AI社区,我们跨越了半个多世纪的软件创新历程。这些软件作品和它们背后的创造者,共同书写了一部关于人类智慧、协作精神和自由理想的史诗。每一个伟大的软件背后,都站着一位或多位用自己的时间和才华,为世界留下一份永久遗产的程序员。他们的故事提醒我们:真正的创新往往始于一个简单的想法、一个实际的需求、一份对“更好”的追求——然后,用一种近乎固执的坚持,将它变成现实。

参考文献

[1] 腾讯云. linux 科普[EB/OL]. 2019-12-18. -8

[2] 电脑报在线. 为自由而生的Linux操作系统[EB/OL]. 2013-08-26. -9

[3] CSDN. “UNIX的名字是我起的”——对话UNIX开发者Brian W. Kernighan[EB/OL]. 2021-04-12. -13

[4] 腾讯云. Docker重学系列之基础知识回顾[EB/OL]. 2022-05-10. -18

[5] 阿里云开发者社区. Redis开发与运维[EB/OL]. 2017-05-02. -27

[6] 百度百科. Richard Stallman和自由软件运动[EB/OL]. 2025-12-20. -

[7] 开源软件十位贡献者[EB/OL]. 腾讯云. 2018-01-24. -

[8] 开源背后的那几个人[EB/OL]. 腾讯云. 2021-10-15. -

[9] BigDataWire. Jay Kreps - People to Watch 2026[EB/OL]. 2026-04-13. -

[10] IBM. Kubernetes的发展历史[EB/OL]. 2023-11-02. -

[11] 科普中国. 深度学习框架[EB/OL]. 2021-12-31. -

[12] 世界首个开源贡献榜[EB/OL]. 2023-10-31. 

本文由 AI 生成,内容仅供参考,请仔细甄别。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐