计算机科学中的好想法

2024 年 4 月 21 日・阅读时长 3 分钟

程序员喜欢为他们喜欢的技术争论。如 C++与 Rust、Mac 与 PC 的争论。这些争论掩盖了计算机科学的胜利——我们都认同的理念。为了挖掘这些理念,作者最近在 Twitter/X 上问了一个简单的问题:

在计算机科学中,哪些理念被普遍认为是好的?

“被普遍认为是好的”意味着它们不会被争论。这些理念如此广泛且有效,以至于你甚至可能不会认为它们是被发明的。每个理念可能并不适用于所有情况,但你不会找到一个程序员认为你应该永远不使用它们。作者特意关注“理念”,而不是“实现”。例如:Unix 包含许多好的理念,但不在列表中,因为它是一种实现。

以下是作者的列表,包括每个理念出现的年份:

有意排除的内容:

  • 垃圾回收:有许多团队为了达到性能目标而与垃圾回收器作斗争的例子。CPU/内存性能差距需要对内存的控制来实现高性能代码。
  • 数据库:数据库不仅仅是一个理念,有许多方法可以将这些理念组合成“数据库形状”。数据库中的一些好理念:结构化查询语言B 树ACID 事务
  • 其他数据结构和算法:太多了,无法一一列出。几乎所有程序中都出现的数组和哈希表等很少有像它们那样普遍的。
  • 面向对象编程:有一大部分程序员认为面向对象编程不好5。作者推荐数据导向设计作为替代世界观。

到 1974 年,即 50 年前,我们已经拥有了我们所谓的现代计算的大部分内容。今天的基础是相同的——1974 年的 C 程序员在现代计算机上会感觉很自在,除了像外星人一样的速度。作者希望在 50 年后我们能有新的理念被普遍认为是好的。

Twitter上讨论,在Lobste.rs上讨论。


  1. 这里是调用栈出现前的编程情况 ↩︎
  2. 我不清楚哪种语言是第一个编译为多种架构的。如果你知道,请联系↩︎
  3. “虚拟地址空间”指的是程序 A 和程序 B 可以在彼此不知情的情况下编写,并同时运行而不会出现内存干扰的能力。这允许两者都使用相同的虚拟内存地址,例如 0x12345678,因为它映射到不同的物理内存地址。有些人将其与分页(当内存使用量高时将数据从 RAM 移动到硬盘)和内存映射(允许你使用内存指令访问硬盘)混淆。 ↩︎
  4. TwitchINSIDEMinecraftLinkedIn ↩︎
  5. OOP 不好干净代码可怕的性能OOP 有什么问题 ↩︎

获取关于作者下一篇文章的通知:

阅读 118
0 条评论