2024 年 4 月 21 日・阅读时长 3 分钟
程序员喜欢为他们喜欢的技术争论。如 C++与 Rust、Mac 与 PC 的争论。这些争论掩盖了计算机科学的胜利——我们都认同的理念。为了挖掘这些理念,作者最近在 Twitter/X 上问了一个简单的问题:
在计算机科学中,哪些理念被普遍认为是好的?
“被普遍认为是好的”意味着它们不会被争论。这些理念如此广泛且有效,以至于你甚至可能不会认为它们是被发明的。每个理念可能并不适用于所有情况,但你不会找到一个程序员认为你应该永远不使用它们。作者特意关注“理念”,而不是“实现”。例如:Unix 包含许多好的理念,但不在列表中,因为它是一种实现。
以下是作者的列表,包括每个理念出现的年份:
- 二进制数(1500 年代)
- 可编程计算机(1837 年)
- 布尔代数(1847 年)
- 浮点数(1936 年)
- 数组(1942 年)
- 可调用单元(1947 年)
- 哈希表(1953 年)
- 调用栈(1957 年)1
- 结构化编程(1958 年)
- 可移植编程语言2
- 进程(1958 年)
- 分组交换(1962 年)
- 虚拟地址空间(1963 年)3
- 内存保护(1964 年)
- 版本控制(1972 年)
- 公钥加密(1973 年)
- 图形用户界面(1973 年)
有意排除的内容:
- 垃圾回收:有许多团队为了达到性能目标而与垃圾回收器作斗争的例子。CPU/内存性能差距需要对内存的控制来实现高性能代码。
- 数据库:数据库不仅仅是一个理念,有许多方法可以将这些理念组合成“数据库形状”。数据库中的一些好理念:结构化查询语言、B 树、ACID 事务。
- 其他数据结构和算法:太多了,无法一一列出。几乎所有程序中都出现的数组和哈希表等很少有像它们那样普遍的。
- 面向对象编程:有一大部分程序员认为面向对象编程不好5。作者推荐数据导向设计作为替代世界观。
到 1974 年,即 50 年前,我们已经拥有了我们所谓的现代计算的大部分内容。今天的基础是相同的——1974 年的 C 程序员在现代计算机上会感觉很自在,除了像外星人一样的速度。作者希望在 50 年后我们能有新的理念被普遍认为是好的。
- 这里是调用栈出现前的编程情况 ↩︎
- 我不清楚哪种语言是第一个编译为多种架构的。如果你知道,请联系我。 ↩︎
- “虚拟地址空间”指的是程序 A 和程序 B 可以在彼此不知情的情况下编写,并同时运行而不会出现内存干扰的能力。这允许两者都使用相同的虚拟内存地址,例如 0x12345678,因为它映射到不同的物理内存地址。有些人将其与分页(当内存使用量高时将数据从 RAM 移动到硬盘)和内存映射(允许你使用内存指令访问硬盘)混淆。 ↩︎
- Twitch、INSIDE、Minecraft、LinkedIn ↩︎
- OOP 不好、干净代码可怕的性能、OOP 有什么问题 ↩︎
❖
获取关于作者下一篇文章的通知:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。