Someone (I think someone I was interviewing, though this is a detail without any point) asked me once why I like Clojure so much. I had been extolling its virtues, and I might also have been extolling them in an enthusiastic mode, this being a thing that on occasion I do, which, as an aside, causes some people to mistake me for a “true believer” although I must assure you — in fact I insist — that I am anything but that. Regardless, the situation being what it was called for a good answer, so I thought for a moment and replied, “Clojure is multi-paradigmatic without being ad-hoc.”
Some time has passed and I still believe this is so, and in the intervening time I have sat down several times to write: one, an explanation of what this means, and, two, an argument for why I believe it is the correct design for any programming language, but every time I have failed to direct enough energy to the task and have abandoned it well before I found enough words to justify publishing something on the matter. I have not lost hope in this regard, still, but I have at last reached the point where I no longer feel greedy enough for the observation that I will cherish it on my own, and so here I am, letting it into the world. Perhaps someone else will find my prodigal idea and give it the explanation, or the refutation, that it deserves.