奇怪的语言
Original2021年8月
当人们说他们的经验是所有编程语言基本上是等价的时,他们说的不是关于语言本身,而是关于他们所做的那种编程。
99.5%的编程工作都是将库函数粘合在一起。所有流行的语言都擅长这一点。因此,人们可以轻松地在流行编程语言的交集中度过整个职业生涯。
但是其余的0.5%的编程工作却是不成比例地有趣。如果你想了解它由什么组成,那么奇怪语言的怪异性就是一个很好的线索可以去追寻。
奇怪的语言并非偶然变得奇怪。至少好的语言不是。好的语言的怪异性通常意味着存在某种不仅仅是通常的库函数粘合的编程形式。
一个具体的例子:Lisp宏。Lisp宏对于许多Lisp程序员来说也很奇怪。它们不仅不在流行语言的交集中,而且从本质上来说,要在一种语言中正确实现它们,就需要将其变成Lisp的一种方言。而宏绝对是超越粘合编程技术的证据。例如,通过首先编写一种针对某类问题的语言,然后用它编写特定的应用程序来解决问题。宏的用途并不仅限于此;这只是一个在程序操纵技术领域中的一个区域,即使到现在,这个领域也远未被完全探索。
所以如果你想扩展你对编程可能性的概念,学习奇怪的语言是一种方法。选择一种大多数程序员认为很奇怪但中位数用户很聪明的语言,然后关注这种语言与流行语言交集之间的差异。在这种语言中,你能说些什么是在其他语言中极其不方便说的?在学习如何说以前无法说的话的过程中,你可能也在学习如何思考以前无法思考的事情。
感谢 Trevor Blackwell、Patrick Collison、Daniel Gackle、Amjad Masad和Robert Morris阅读本文的初稿。