This has given me a new appreciation of Algol-68. It actually appears — gasp! — consistent, well-thought-out. And it was designed by committee. The interesting thing here is that the language specification was a complete mess, as conventional wisdom would tell you any design by committee would produce, but if you look at the actual programming language, it’s surprisingly clean.
This article has sort of rekindled my interest in programming languages, which was totally unexpected. My attitude to programming is both very practical and academic to the extreme. On the one hand, the sort of things I use it for are very practical matters, small hacks, scripts, tiny programs, stuff that glues together one piece of crap with another and barely works, but does something useful. (I probably couldn’t make a real program, one that does something substantial and requires more than some hundred lines of code.) On the other hand, what interests me about programming is the theory. Not the damn Big O’s or the — what was it called again? — operational semantics. No, simply the endless variety of models of computation. All the different sorts of ways you can express computation (in practice); which ways are novel, or expressive, or practical, or fail-safe; their fundamental equivalence, yet practical tradeoffs; how to translate between them; how to express one in terms of another; which tasks are suited to which models; and so on. Those are the things that interest me about programming. Everything from Joy to Fractran to Scheme (pre-R6RS) to C to lambda calculus to Coq to Forth to Brainfuck to Erlang to Haskell to Ruby to Taxi to Processing; just the astonishing variety of it all.
It’s late; possibly, this returned excitement will be gone by the time I wake up tomorrow. If not, expect some more writing about the above from a useless dilettante who by own admission wouldn’t last a day in a real-world programming job.
In the meantime, if you’re interested in this sort of stuff, Lambda the Ultimate is, or was, last I checked, the best place to learn about and discuss programming language theory.