从飞蛾到Microservices:编码的全面历史:第一部分

发布: (2026年1月13日 GMT+8 02:19)
11 min read
原文: Dev.to

I’m happy to translate the article for you, but I’ll need the full text you’d like translated. Could you please paste the content (or the portion you want translated) here? I’ll keep the source link, formatting, markdown, and any code blocks unchanged while translating the rest into Simplified Chinese.

引言

在键盘敲击声和终端闪烁之前,在编译器争论和代码检查工具唠叨之前,先有了想法——原始而大胆的想法,关于思维本身如何可以被机械化。编码的历史并不是从代码本身开始的;它始于使代码成为可能的智力支架。二进制并非在实验室里诞生——它是一种哲学立场。逻辑并非为电路发明——它是为形式化推理而创造的。而第一个程序并不是写在计算机上的——它是为一台尚未存在的机器而设想的。

本节深入探讨编码历史的第一个时代(1600 – 1800 年代),当时计算更多是一种概念而非实物。我们将漫步于莱布尼茨的二进制梦、布尔的思维代数、巴贝奇的机械想象以及阿达·洛夫莱斯的远见跨越——那一刻,编程不再只是算术。沿途,我们会把这些思想与现代软件的 DNA 联系起来,因为过去不仅是序幕——它是我们所构建的一切之下的架构。

莱布尼茨与二进制的梦想

哲学家在数学中看到机器

在 1679 年,戈特弗里德·威廉·莱布尼茨写下了仅用两个符号 01 表示数字的思想。这不仅是一个巧妙的编码技巧;对莱布尼茨而言,二进制是形而上的。他把它视为创世的映射——从虚无中产生的东西,从非存在到存在。这种哲学框架很重要,因为它是二进制得以流传的原因。二进制不仅仅是高效;它是根本的。

二进制为何胜出

  • 简洁性: 两种状态——开/关、真/假——可以干净地映射到物理系统。
  • 抗噪声性: 二进制信号具有韧性;微小的变化不会改变其含义。
  • 通用性: 任意数据——数字、文本、图像、声音——都可以表示为比特序列。
  • 可组合性: 复杂结构源自简单原语(比特 → 字节 → 词 → 文件 → 系统)。

二进制是意义的终极压缩。它是能够写出一切的最小字母表。


乔治·布尔与思维代数

逻辑可编程化

1854 年,乔治·布尔 发表了《思维定律的研究》。他的目标十分大胆:把推理形式化为代数。他引入了 ANDORNOTXOR 等运算,并展示了它们如何对真值进行建模。他并不是在构建电路——而是发明了电路的语言。

布尔运算的通俗解释

操作含义
AND两个输入都为真时为真
OR至少一个输入为真时为真
NOT取反真值
XOR当两个输入不相同时为真

这些并非抽象符号——它们是每个 CPU 的基础。每条指令、每个分支、每次比较,都在运行布尔逻辑。

一个小真值表

ABA AND BA OR BA XOR BNOT A
000001
010111
100110
111100

这张表是计算的核心脉搏。每个条件、每个分支预测、每个流水线危害——在它们之下,都隐藏着这套逻辑。

查尔斯·巴贝奇与分析机

第一台可编程机器——纸上设计

在 1830 年代,Charles Babbage 设计了 Analytical Engine,这是一台由齿轮、杠杆和穿孔卡驱动的机械计算机。它从未完全建成,但其设计具有革命性。它不是普通的计算器——而是一台通用机器。

引擎的架构

  • The mill: 处理单元——类似 CPU。
  • The store: 内存——类似 RAM。
  • Punched cards: 输入——类似程序和数据。
  • Printer: 输出——类似 I/O 设备。

巴贝奇不仅想象了计算本身;他还设想了可编程计算。他将数据与指令分离,引入了控制流,并设计了一台能够循环执行的机器。


Ada Lovelace:第一位程序员

超越算术的远见者

与巴贝奇合作时,Ada Lovelace 撰写了说明分析机如何计算伯努利数的笔记。但她的视野更广。她想象机器能够操作超越数字的符号。她把计算机视为创造性的工具。

“分析机编织代数模式,就像雅卡尔织机编织花卉与叶子一样。”

Ada 不仅仅写了一个算法——她写下了编程的哲学。她明白计算是符号化的,而不仅仅是数值的。她预见了软件的出现。

编程如艺术

Ada 的织机类比并非诗意的空话——它是一种设计原则。她看到了模式、构成和结构。她明白指令可以被编织成意义。这就是软件架构。这就是设计模式。这就是抽象。


提花机与穿孔卡片

第一个“程序”是纺织品

Jacquard 织机 使用穿孔卡片来控制织造图案。每张卡片编码一行指令。更换卡片,即可改变图案。这就是模块化。这就是可重用性。这就是版本管理。

卡片即代码

  • 数据编码: 孔洞代表二进制状态。
  • 顺序控制: 卡片定义顺序——类似指令流。
  • 模块化: 图案可重复使用——类似库。

织机本身不是计算机,但它是可编程的。它向世界展示了机器可以遵循符号指令。

为什么这个时代重要

1600 – 1800 年代并不是在现代意义上编写代码。它们是关于 发明使代码成为可能的思维模型

  • 二进制: 数字表示的基底。
  • 布尔逻辑: 计算的语法。
  • 可编程机器: 软件的架构。
  • 符号操作: 从算术到抽象的飞跃。

没有这些思想,现代编程就不存在。它们不是琐事——它们是基础。


切线、轶事与人性纹理

  • 莱布尼茨制造了一台机械计算器 Stepped Reckoner,能够加、减、乘、除。它预示了可编程机器的出现。
  • 布尔的工作奠定了布尔代数的基础,支撑了当今的数字电路和编程语言。

故事仍在继续…

莱布尼茨的二进制思想最初被视为抽象哲学。工程师们花了数十年才认识到它的实际价值。

巴贝奇因频繁放弃项目而臭名昭著。他设计了多台引擎,却从未完成。

阿达·洛弗莱斯在抵抗社会规范的压力下奋斗,这些规范不鼓励女性从事数学。她的遗产是逆境中远见的见证。


Closing the Chapter

第一时代的编码历史是一段种子的故事——这些种子植根于哲学、数学和机械设计。二进制为我们提供了字母表。布尔逻辑为我们提供了语法。分析机为我们提供了架构。阿达·洛芙莱斯为我们提供了叙事。

这些并不是博物馆里的展品。它们是活生生的工具。它们是你的代码能够编译、CPU 能够分支、数据能够序列化、系统能够扩展的原因。它们也是编程不仅仅是算术运算,而是表达的根本所在。


Want Section 2?

如果你想让我继续写 Section 2: The Dawn of Electronic Computing (1930s–1940s)——Alan Turing 的通用机器、ENIAC 的插板编程、第一次 “bug”、以及汇编语言的诞生——请说一声。如果这让你产生共鸣,请支持、留下评论或分享。我会把它做成完整系列,追溯从 Ada 的算法到 AI‑assisted coding 的全过程,包含深入探讨、代码片段以及让一切鲜活的人物故事。

Warning! Parts of this are AI‑generated, check important info for mistakes.

Back to Blog

相关文章

阅读更多 »

记得 Micro-Soft 吗?

我第一次编程是在上世纪70年代末使用 Microsoft BASIC——那时公司仍叫 Micro‑Soft。快进到今天,他……

Rapg:基于 TUI 的密钥管理器

我们都有这种经历。你加入一个新项目,首先听到的就是:“在 Slack 的置顶消息里查找 .env 文件”。或者你有多个 .env …

HackPrix 第一季回顾

概述 介绍 HackPrix,这是 HackPrix 社区的一项倡议——一个创新与专业相结合、让创意得以绽放的空间。HackPrix Sea...