Living In Flatland

Nathan Marz has an interesting post that makes use of the flatland metaphor to explain Lisp. For those who don’t know, the book Flatland: A Romance of Many Dimensions describes a two dimensional world inhabited by polygons of various sorts. One day a sphere visits the protagonist, a square, upsetting his world view and basic assumptions. Oddly, the book was written in 1884 as a satirical critique of Victorian culture but remains popular today as a sort of science fiction story.

Marz’s thesis is that many programmers live in their own flatland happily unaware of higher dimensions until a Lisp comes to visit an reveals the higher dimension that Lisp macros offer. The ability of the language to operate on itself at compile time and change the language itself is a bit like a square meeting a sphere.

The Lisp that Marz uses and discusses is Cloture but many Irreal readers may be more familiar with Elisp. It doesn’t matter. They both have macros and the ability to change the underlying language to suite the problem at hand. Part of the power of Emacs—contra those who would rewrite it in Python or whatever—is that it’s written in this higher dimensional language and makes it available to the user to extend or change its capabilities.

Marz remarks that the advantages of Lisp dwarfs its adoption and wonders why that is. His explanation is that the majority of programmers are living in flatland and simply can’t conceive of another dimension.

This entry was posted in General and tagged , . Bookmark the permalink.