Thursday, October 31, 2013

Lisp is for Stupid People

[yes, the title is clickbait.]

I’ve been programming in Lisp for many years. It has a reputation as language only suitable to forbiddingly smart people (and indeed, most Lisp programmers I know are MIT-trained or the equivalent). I never quite understood that though. In fact, I realized recently that the reason I like Lisp, why I am always drawn back to it despite its general lack of commercial marketability, is not because I am so smart, but because I’m so stupid.

Or, more precisely, it is because Lisp is a better tool for overcoming my own mental limitations. It’s not that I am particularly stupid – my limitations are largely shared by everybody else. My attention is limited, my processing capacity is limited, my short-term memory capacity is limited, simply by virtue being a human being.

Programming is thought to require being able to hold complicated structures in the head. Here’s a cartoon illustration, which is pretty accurate as far as it goes, and here’s some actual interesting research on programmer’s mental functions. It may be that the fabled 10x or 100x programmers are just a little bit better at dealing with complexity than normal. I’m pretty good at it, but not superhuman, especially now that I’m getting alarmingly old.

The alternative to requiring programmers to be amazing jugglers of objects and acrobats of attention is powerful abstraction and good design. Abstraction is the basic way in which programmers encapsulate a bit of complexity in a single object or function call. All programming languages let you do this but some make it easier and/or offer more ways to do it. Good design means organizing a system around a few fundamental principles so that things make sense and navigating through the code doesn’t require a lot of effort.

These qualities are linked. Clean design means choosing abstractions so that they work together in powerful ways, and better abstraction tools make it easier to do that. It is certainly possible to do good software design in a less-powerful language. Some of the most impressive pieces of software design I’ve seen recently has been the series of visualization libraries coming out of Jeff Heer’s group, including prefuse (in Java) and the newer d3.js (in Javascript). The designers of these libraries have carefully chosen their abstractions so they fit together in powerful ways.

But, I maintain, it is a lot easier to do this in a language that is designed for it, and Lisp is that language. In Lisp, macros and other features make it trivially easy to hide all the details away in suitable abstractions, with the result that the meat of the program can be compact, so that the programmer can focus on it. In Java, by contrast, the important part of a program generally tends to be hidden away amidst boring boilerplate code that is necessary to please the Java compiler but not germane to the problem at hand (this article refers to the novel software metric “beef-to-bun ratio”, which is low in Java but apparently improving).

Thus Lisp has always seemed to me a much better tool than any other for augmenting my own limited brain functions. I don’t know why the rest of the world, presumably equally suffering from the same limitations, doesn’t see it that way.

Saturday, October 26, 2013

“God” == God

Three of my intellectual heroes these days, in roughly decreasing order of respectability: Bruno Latour, Christopher Alexander, and Alan Moore. If I squint I can even detect a common project or thread that unites them. For one thing, all seem vaguely disreputable from the standpoint of mainstream thought. In actual fact, all three of these people would likely be pretty welcome in technology circles; and both Latour and Alexander have keynoted major tech conferences. But part of their attraction is a certain outlaw quality that success has not eliminated.

For the other thing: they are all, in different ways, struggling towards the spiritual (for lack of a better term). Latour writes on ecotheology, Alexander is determined to undo materialist metaphysics in favor of something rigorously old-fashioned and hylozoic, and Moore – well, I’ll get to him. This spiritual bent is somehow linked closely to the disreputable qualities. At least in the eyes of the MIT-trained-nerdy-atheist aspect of myself. They beckon to me from outside prison walls that I seem to have erected for myself.

Latour and Alexander I’ve written about previously; Moore is a more recent object of obsession. He is, of course, pretty well-known at this point as the most accomplished writer in the comic book format (Watchmen, V for Vendetta, League of Extraordinary Gentleman). What I didn’t know until recently was that he had declared himself to be a Magician, in roughly the Aleister Crowley sense, and was getting seriously into all sorts of mystical shit. In fact he’s written about this widely and you can find stuff on the net; his series Promethea is pretty much a catalog of various mystical systems in graphical form. While this sort of thing is not really my thing, I can at least respect that it is neither crazy or lamebrained or even supernatural. Here is a rough statement of the core of his stance as I understand it, from an interview in The Believer (emphasis added):
Actually, art and magic are pretty much synonymous. …The central art of enchantment is weaving a web of words around somebody… When that enchantment is the creation of gods and the creation of mythology, or the kind in the practice of magic, what I believe one is essentially doing is creating metafictions. It’s creating fictions that are so complex and so self-referential that for all practical intents and purposes they almost seem to be alive. That would be one of my definitions of what a god might be. …It is a concept that has become so complex, sophisticated, and so self-referential that it appears to be aware of itself….If gods and entities are conceptual creatures, which I believe they are self-evidently, then the concept of a god is a god.
This is more or less exactly the same idea I was groping towards a few years back. Given my background and biases, I’m inclined to think of god-concepts in more quasi-mathematical terms, whereas Moore thinks in quasi-linguistic terms, but I think we are pointing in the same general direction. The title of this post is my attempt to condense the idea down to a sort of formal notation, because that’s what I do.

This way of looking at things seems so simple and obvious and at least partially right that I can’t believe it’s all that original (with either Moore or me). Yet I can’t find much prior art. Perhaps it isn’t really satisfying to most people who want to know one way or the other if there is a referent on the other end of the symbol. Maybe people’s concept of concept is not rich enough to encompass these kind of complex, quasi-autonomous structures. Concepts are insubstantial; gods if they are not mere fiction have some effects in the world. We are used to thinking of symbols as dead things on paper; but the more primal oral form of language was always alive, always closely connected to the real-time human activity of a speaker. The causal powers of words in the old days was immediate and obvious.

But we are getting more experience even in our advanced writing-based culture, with complex symbol systems that are immaterial and yet have effects in the world. That is what software is, after all. Gods are pieces of cultural software, powerful enough to erect cathedrals, start wars, bind together communities. Like software, they are living texts, actualized fictions.

[update:

Another doctrine that might sound profoundly anti-rational is that God’s holy four-letter name, the Tetragrammaton, is identical with God Himself. Unlike other names that merely point to the signified, when the unnamable Absolute becomes known to the created beings by a name, that name itself becomes the personal God of religion, ’Elohey Is ́ra’el. When the Jews received the Torah at Mount Sinai, they experienced a synesthetic vision, in which the sounds of the commandments were seen as flying letters, made of pure light...during their synesthetic experience, the Jews actually saw God as identical to His name. Therefore, it is permitted to bow before the letters of the Tetragrammaton, because they are God, in an esoteric sense, and not just a visual representation of Divinity, which Judaism forbids
From Between Enlightenment and Romanticism: Computational Kabbalah of Rabbi Pinchas Elijah HurwitzYoel Matveyev, talking about an 18th century encyclopedia assembled by Hurwitz ]

Friday, October 18, 2013

The Government Within

I have a new guest post up at Ribbonfarm, mostly on the work of George Ainslie.

To go a bit meta on it: I find Ainslie fascinating but hard to internalize. I wrote the post mostly as a way to force myself to reread parts of his work and try to get deeper into it, with I guess some partial success. Any theory of distributed agency is hard, I think. The natural operation of the brain is based in simple agency and narrative; we aren't so good at thinking about systems with distributed control, or at the boundary between mechanism and agency.

Saturday, October 12, 2013

Fixing The Fixer

Mark Stein, one of my oldest friends, has helped edit and re-issue the memoirs of Mendel Beilis:
One of the great trials of the twentieth century was the 1913 blood-libel trial of Mendel Beilis in Czarist Russia. Beilis, a Jew, was arrested in 1911 by the Czarist secret police. He was accused of ritually murdering a Christian boy in order to use the boy’s blood to bake matzah for Passover. Beilis was jailed for over two years, under horrible conditions, while awaiting trial. He heroically resisted all pressure to implicate himself or other Jews. In 1913, after a dramatic trial that riveted the Jewish people and much of the rest of the world, Beilis was acquitted by an all-Christian jury.
This is a genuinely moving and gripping account. With something of a happy ending, even. Aside from Beilis's own responses to his troubles, which display an unassuming heroism in the face of forces bent on his destruction, it is quite heartwarming to see that a good many Christians supported and came to his aid, but also his neighbors and acquaintances. Very oddly, his friends and supporters included even members of the Black Hundreds, the anti-semitic nationalist group that was pushing the libel.

The post title is a reference to a supplementary essay that claims Bernard Malamud plagiarized large sections of his famous novel The Fixer from Beilis' account.