🎯 John Earnest 访谈:K语言与数组编程哲学

编程语言 K语言 APL ⭐⭐⭐⭐⭐ (5星)

John Earnest 是 K语言/Octopus语言的设计者,创造了许多"在运行平台上复杂得不可思议"的项目,如 Decker(类似 HyperCard)。

核心观点

关于抽象: 在APL系列语言中,理想是"不加抽象编程"——直接用语言写程序。设计讨论常围绕什么应该是原语vs惯用语。
"在小说《上帝之眼中》,工程师 caste 不会只做一把椅子,而是为一个人在特定时刻做精确需要的椅子。"

关键洞见

  • 静态类型系统被高估: 对于复杂到无法装进一个人头脑的系统,类型有助于协调社会问题;但在小规模、快速变化时,简洁性和即时性更重要
  • Lil语言无运行时错误: 每个合法的Lil程序都有定义行为,即使愚蠢或不符合预期
  • 高水平和低水平语言是错误二分法: Paul Graham的Blub文章假设线性 scale,但实际上至少是 lattice
  • 编程语言复杂度预算: 每个语言都有复杂度预算,要花在有益的地方

Decker 项目

类似 HyperCard 的创造性开发环境:

  • 文档和应用不需要硬性分离
  • 数据存在于 deck 中,deck 就是应用
  • 可实现自己的撤销/重做/保存加载,或直接利用环境属性
"我不建议任何人用 Lil 构建百万行代码库,但它在 50 行解决问题方面很擅长。"