A comrade programmer whom I respect is studying Haskell. Recently when I started looking at it I found a delightful essay, "Why Haskell Matters", the Epilogue of which led me to an article by Paul Graham that I had read long ago but sadly forgotten, "Beating the Averages". It echoes some important metaphors in No Concepts At All (^z 22 Feb 2001):

... Languages fall along a continuum of abstractness, from the most powerful all the way down to machine languages, which themselves vary in power. ... Programmers get very attached to their favorite languages, and I don't want to hurt anyone's feelings, so to explain this point I'm going to use a hypothetical language called Blub. Blub falls right in the middle of the abstractness continuum. It is not the most powerful language, but it is more powerful than Cobol or machine language.

And in fact, our hypothetical Blub programmer wouldn't use either of them. Of course he wouldn't program in machine language. That's what compilers are for. And as for Cobol, he doesn't know how anyone can get anything done with it. It doesn't even have x (Blub feature of your choice).

As long as our hypothetical Blub programmer is looking down the power continuum, he knows he's looking down. Languages less powerful than Blub are obviously less powerful, because they're missing some feature he's used to. But when our hypothetical Blub programmer looks in the other direction, up the power continuum, he doesn't realize he's looking up. What he sees are merely weird languages. He probably considers them about equivalent in power to Blub, but with all this other hairy stuff thrown in as well. Blub is good enough for him, because he thinks in Blub.

When we switch to the point of view of a programmer using any of the languages higher up the power continuum, however, we find that he in turn looks down upon Blub. How can you get anything done in Blub? It doesn't even have y.

By induction, the only programmers in a position to see all the differences in power between the various languages are those who understand the most powerful one. ...

So what's the most powerful language? Is there no limit to the hierarchy? What would it feel like to look down from a lot higher "up"?

Sometimes I suspect that the top of the pyramid is simply logic.

(cf. DoMeta (8 May 1999), ScriptingLanguages (29 Jun 1999), OnSomethingness (17 Jan 2000), PersonalProgrammingHistory (2 Apr 2002), WorseIsBetter (23 Dec 2003), ToolsToMakeTheToolsToMake (26 Mar 2005), MaroonedInRealtime (12 May 2006), ...)

TopicProgramming - TopicScience - TopicThinking - 2007-08-17

(correlates: ScienceWiki, SpinCycle, DuringOrEnduring, ...)