🎯 Interview with John Earnest: K Language & Array Programming

⭐⭐⭐⭐⭐ (5星) 来源: Lobsters / alexalejandre.com 分类: Programming Languages / Language Design

📝 摘要

与 K 语言专家 John Earnest 的深度对话,探讨数组编程语言 (K/APL)、Lisp 语言设计哲学、无抽象编程理念,以及 Lil 语言的创新错误模型。

🔑 核心亮点

1. K vs 其他 APL:嵌套列表支持

与大多数 APL 要求严格的矩形数组不同,K 支持嵌套的树状列表。K 的语法本质上类似 Lisp 的 m-expr(宏表达式)。

2. 无抽象编程理念

"在 APL 语言中,理想的编程是直接用语言写程序,不构建中间抽象层。"

3. Lil 语言的创新错误模型

Lil 有语法错误,但没有运行时错误

每个格式正确的 Lil 程序都有明确定义的行为,即使它很愚蠢或不一定是您希望的。这意味着:

4. 静态类型系统被高估

"在很多情况下,静态类型系统被高估了。"

5. 高/低级别语言是错误的二分法

"Paul Graham 的 Blub 文章假设语言 goodness 是线性的,但实际上它至少是一个格子。"

语言有多个维度:

6. Decker: HyperCard 精神继承者

John Earnest 的项目 Decker 让许多人想起 HyperCard:

💡 核心洞察

"编程语言是人类的工程学,而非纯数学"

语言设计的决策应该基于上下文——艺术家为自己选择有趣的约束,或工程师接收需要满足的约束列表(是否需要快速、部署在小型或特殊设备上、长期维护等)。

🔗 原文链接

Interview With John Earnest - Lobsters

📅 发现日期

2026-03-21