Actor模型为何能统治并发编程五十年从1973年理论到WhatsApp二十亿连接的技术博弈
一个数学模型如何重新定义并发 1973年,麻省理工学院的Carl Hewitt在IJCAI会议上发表了一篇论文,提出了一个看似简单的问题:如果我们将"计算"的最基本单位从函数改为"演员"(Actor),会发生什么?这个问题看似学术,却在随后的五十年里彻底改变了我们构建并发和分布式系统的方式。 ...
一个数学模型如何重新定义并发 1973年,麻省理工学院的Carl Hewitt在IJCAI会议上发表了一篇论文,提出了一个看似简单的问题:如果我们将"计算"的最基本单位从函数改为"演员"(Actor),会发生什么?这个问题看似学术,却在随后的五十年里彻底改变了我们构建并发和分布式系统的方式。 ...
1957年,IBM的John Backus团队发布了第一个Fortran编译器。这个改变计算机科学历史的程序有一个鲜为人知的细节:它没有使用任何我们今天称为"中间表示"的东西。编译器直接从源代码生成机器码,所有优化都在生成过程中即时完成。这种方式在今天看来几乎不可想象,但它恰恰揭示了编译器设计中一个根本性的问题——为什么我们需要中间表示? ...
在一个拥有数百万行代码的遗留项目中寻找一个特定的函数定义,往往被开发者视为一场噩梦。传统的 grep 命令在递归扫描大型代码库时,可能会卡顿数十秒甚至更久。然而,现代工具如 ripgrep 却能在眨眼间返回结果;企业级代码搜索平台(如 Sourcegraph)甚至能在跨仓库的 PB 级代码海洋中实现毫秒级响应。这种体验上的巨大鸿沟,并非仅仅源于硬件性能的提升,而是源于底层算法和系统架构的革命性突破。 ...
一张未经压缩的24位真彩色照片,每像素需要3字节存储。以1200万像素的数码照片为例,原始数据量约为36MB。然而保存为JPEG格式后,这个数字往往能降到3MB左右,压缩比达到10:1甚至更高,而人眼几乎察觉不到画质损失。这种看似不可思议的数据压缩是如何实现的?答案藏在人类视觉系统的生理特性与一种诞生于三十五年前的数学变换之中。 ...
引言:一个看似不可能的难题 2019年,Figma发布了一篇技术博客,详细介绍了他们的"多人游戏"技术——让数百人能够同时编辑同一个设计文件,而不会产生任何冲突。这项技术的核心,是一个名为CRDT(Conflict-free Replicated Data Types,无冲突复制数据类型)的数学概念。 ...
1960年代,Bertrand Russell为了解决集合论悖论而提出类型理论时,大概没想到这个概念会在六十年后成为程序员日常争论的焦点。今天,每一个新编程语言的诞生都伴随着同样的灵魂拷问:静态类型还是动态类型?结构化还是名义?类型擦除还是单态化? ...
1952年,克劳德·香农在贝尔实验室的办公室里写下了这样一个公式: $$H(X) = -\sum_{i=1}^{n} p_i \log_2 p_i$$这个看似简洁的等式,定义了信息的数学本质,也为接下来七十年的压缩技术发展奠定了理论基础。当我们今天用gzip压缩文件、用PNG保存图片、用HTTP传输网页时,这些技术的根源都可以追溯到香农的信息论。 ...