【发布时间】:2018-02-16 02:50:31
【问题描述】:
在Why Clojure? Rich Hickey 上(据推测)声称“未来的平台是虚拟机,而不是操作系统”,并引用了类型系统、抽象操作系统的库、内存管理和字节码 + JIT 编译。我知道所有这些东西都来自 VM 平台,但它们已经存在了 25 年。什么会使操作系统和硬件抽象在未来更受欢迎,尤其是在权衡这种抽象的性能成本时?
【问题讨论】:
在Why Clojure? Rich Hickey 上(据推测)声称“未来的平台是虚拟机,而不是操作系统”,并引用了类型系统、抽象操作系统的库、内存管理和字节码 + JIT 编译。我知道所有这些东西都来自 VM 平台,但它们已经存在了 25 年。什么会使操作系统和硬件抽象在未来更受欢迎,尤其是在权衡这种抽象的性能成本时?
【问题讨论】:
为什么选择 Clojure?正在回答自我提出的问题——我为什么要编写另一种编程语言?——在 2006 年至 2007 年发明 Clojure 的计算生态系统的背景下。那时的世界很不一样。
从现代环境来看,Go 和 Rust 等语言可以被视为与 VMs-over-OSes 声称的相反论点——在单个非 VM 中提供可用性、新抽象的杠杆作用和效率,多操作系统工具链。
也就是说,自 Clojure 发明以来的 10 多年里,VM 抽象(LLVM、JSVM、移动 VM)在 JVM 的持续主导地位之外取得成功的证据是压倒性的。 VM 抽象允许庞大的工程团队专注于在抽象下实现类似操作系统的性能和效率结果。像无服务器和 unikernels 这样的持续努力甚至进一步抽象了操作系统,同时实现了更好的性能或效率结果。
以现代的眼光,从语言设计师的角度来看,为什么选择 Clojure?有点过时了,对核心主张的具体反驳很容易找到。但是,如果从历史的角度来看,不得不说 Rich 做得非常正确。
【讨论】: