计算机科学中哪些方法奏效了:1999 vs. 2015(2015)

遗留与行业特定语言

  • 许多关键系统依赖“老旧”或小众技术:Erlang(电信)、COBOL(银行)、MATLAB/FORTRAN(科学计算)、MUMPS(医疗)。
  • 讨论在于:能从这些语言为何成功并长期占据主导地位中学到什么。
  • 一种观点认为:语言的采用与演化类似自然语言——更多受社会和历史力量驱动,而非单纯的技术优劣。

花哨的类型系统与 TypeScript

  • TypeScript 被称赞为把“真正的”强类型带给了 Web 编程的大多数人,尤其是没有正式计算机科学背景的人。
  • 也有人认为,类似甚至更强的类型系统几十年前就已存在;TS 的主要成就,是把这些能力带到了最大的实践者群体。
  • 围绕 TS 到底有多“花哨”,与 Java/C#/Checker Framework 相比展开争论:
    • 优点:结构类型、联合类型、映射类型、丰富的类型推断、强大的库能力(例如类型级 SQL)。
    • 缺点:大量借鉴 Java/C#,缺少形式化规范,并且可能出现令人意外的行为。

动态语言中的静态类型

  • Python 和 JavaScript 正在获得可选类型;工具和编码规范正让它在团队中变得半强制。
  • 有人担心强制类型会背离 Python 的初衷,并预测会出现分支或一种新的未加类型语言。
  • 也有人说,实践中的“强制”仍允许逃生口(Any、类型转换),因此比完全静态语言没那么痛苦。
  • 类型的价值在于编辑器支持、帮助新人上手大型代码库,以及团队协作,尽管会增加一些摩擦。

RISC、CISC 与指令集

  • 有一条强烈的讨论线索重新审视文章中的“RISC = No”:
    • 如今很多人把 ARM 在移动端的主导地位以及 Apple 的 M 系列视为 RISC 的“是”或至少“也许”。
    • 反方观点:真正的分界线是 x86 与非 x86;现代 ARM 和 x86 都大量依赖微操作,RISC/CISC 的界线已经模糊。
  • 有人强调 ARM 的定长指令使解码可以非常宽且高效,从而提升性能/功耗比。
  • 也有人认为,RISC 在晶体管预算紧张时才真正重要;今天我们完全负担得起复杂 ISA 和更深的流水线。
  • RISC-V 被引用为主要因开放性而成功,而不是“RISC 性”本身;不过很小的 RISC-V 核心甚至都不用微操作。
  • 讨论深入到历史比较(R2000 vs 80386)、流水线与时钟频率、制程节点和微码,但没有形成统一结论。

能力与安全

  • “Capabilities” 被澄清为基于能力的安全模型(不可伪造的令牌,授予特定权限,例如文件描述符)。
  • 移动应用的权限弹窗与之有些关联,但大多实现的是半静态、基于身份的权限,而非完整的能力系统。
  • 能力模型被视为优雅,但很少作为现实世界安全的唯一基础;它们主要出现在沙箱和底层操作系统代码中。

函数式编程与“函数式风格”

  • 许多人认为“纯 FP”在实践中是一个“否”,但 FP 思想(lambda、模式匹配、联合类型、高阶 API)正越来越主流。
  • 观点一:混合语言(带 FP 特性的 Java/C#/JS)能在保持命令式/面向对象的同时,获得大部分 FP 好处。
  • 观点二:这些混合方案并不理想;真正的 FP 需要的不只是 lambda——例如以表达式为中心、默认不可变、持久化数据结构、显式管理副作用。
  • 关于 FP 的定义仍在争论:
    • 有人说一等函数就足够。
    • 也有人坚持更强条件,如引用透明性和结构化的副作用处理(monad 或其他 effect 系统)。
  • 澄清指出,“记录(records)”本身并不天然属于函数式;它们早于 OOP,并存在于许多范式中。
  • 另一个分支话题是:什么才算“面向对象”,也没有共识;一些人认为 Java 的 records 反而有点反 OO,因为它们尽量减少隐藏状态/行为。

并行、GPU 与 Rust

  • 问题是 GPU/TPU 是否应算入文章分类中的并行性。
    • 一种立场:它们实现的是“盒子里的巫师”模型——由专家编写并行内核,而不是通用并行编程。
    • 另一种观点:几乎所有 GUI/Web 应用都隐式使用 GPU 并行,而且 map-reduce 和 SIMD 才是真正有效的并行场景。
  • Rust 被提议可能改变并行性的图景,其所有权/借用系统在内存安全之上,进一步提供了很强的线程安全保证。

神经网络与评估变化

  • 有人认为按 2024 年的标准,NN 状态应当是“是”,并指出 2014–2015 年左右出现了重要的深度学习论文。
  • 也有人强调,自 1960 年代以来神经网络经历过多次热点;2015 年只是建立在数十年既有工作的复兴。

元话题:为 2024 更新“哪些方法奏效了”

  • 一些评论者希望更新表格:
    • RISC 从 2015 年的“否”变成至少“也许”。
    • 花哨类型系统更加突出(Rust、先进的 TS),可以说从“否”变成“也许/是”。
    • 函数式思想如今在许多主流语言中已成“预期”特性。
  • 普遍的谨慎是:任何 yes/maybe/no 的分类都会很快过时,不应被视为永恒真理。