Loading...

奇怪的语言

Original

2021年8月

当人们说在他们的经验中所有编程语言基本上是等价的时,他们所做的陈述并不是关于语言,而是关于他们所做的编程类型。

99.5%的编程由将库函数的调用粘合在一起组成。所有流行的语言在这方面都是同样优秀的。因此,人们很容易在流行编程语言的交集内度过整个职业生涯。

但其余的0.5%的编程则不成比例地有趣。如果你想了解它的组成,奇怪语言的奇特性是一个很好的线索。

奇怪的语言并不是偶然奇怪的。至少好的语言不是。好的奇怪语言的奇特性通常意味着存在某种形式的编程,而不仅仅是将库调用粘合在一起。

一个具体的例子:Lisp 宏。即使对许多 Lisp 程序员来说,Lisp 宏看起来也很奇怪。它们不仅不在流行语言的交集内,而且由于其本质,在没有将其转变为 Lisp 方言的情况下,很难在其他语言中正确实现。而宏无疑是超越粘合编程的技术的证据。例如,通过首先为该类型的问题编写一种语言,然后在其中编写你的特定应用程序来解决问题。你可以用宏做的事情并不仅限于此;这只是一个程序操作技术空间中的一个区域,即使现在也远未被完全探索。

因此,如果你想扩展对编程可能性的概念,学习奇怪的语言是一种方法。选择一种大多数程序员认为奇怪但其平均用户聪明的语言,然后专注于这种语言与流行语言交集之间的差异。你能在这种语言中说些什么,而在其他语言中说起来会极其不方便?在学习如何表达你之前无法表达的内容的过程中,你可能会学习如何思考你之前无法思考的事情。

感谢 Trevor Blackwell、Patrick Collison、Daniel Gackle、Amjad Masad 和 Robert Morris 阅读草稿。