奇特的语言
OriginalAugust 2021
当人们说在他们的经验中,所有编程语言基本上都是等效的时,他们并不是在谈论语言本身,而是在谈论他们所做的编程类型。
99.5% 的编程工作都是将对库函数的调用粘合在一起。所有流行的语言在这方面都一样好。因此,一个人可以很容易地将整个职业生涯都花在流行编程语言的交集上。
但剩下的 0.5% 的编程却不成比例地有趣。如果你想了解它包含什么,那么奇怪语言的怪异性就是一个很好的线索。
奇怪的语言并非偶然地变得奇怪。至少好的语言不是。好的语言的怪异性通常意味着存在某种形式的编程,而不仅仅是将库调用粘合在一起。
一个具体的例子:Lisp 宏。即使对许多 Lisp 程序员来说,Lisp 宏也显得奇怪。它们不仅不在流行语言的交集内,而且由于其本质,很难在不将其变成 Lisp 方言的语言中正确实现。宏绝对是超越粘合编程技术的证据。例如,通过首先为这类问题编写一种语言,然后用它编写你的特定应用程序来解决问题。这并不是你可以用宏做到的全部;它只是程序操作技术空间中的一个区域,即使现在也远未完全探索。
因此,如果你想扩展你对编程可以做什么的理解,学习奇怪的语言是一种方法。选择一种大多数程序员认为奇怪但其平均用户很聪明的语言,然后专注于这种语言与流行语言的交集之间的差异。你在这门语言中能说出什么,而在其他语言中却难以表达?在学习如何说出以前无法说出的话语的过程中,你可能会学到如何思考以前无法思考的事情。
感谢 Trevor Blackwell、Patrick Collison、Daniel Gackle、Amjad Masad 和 Robert Morris 阅读了本文的草稿。