Shrek 2, bless its little green ears, is as multilayered as an ogre, with the “moral” strand being in some way related to the value of appearances as opposed to the “inner nature” of whatever it is you’re currently judging. Very noble. On the other hand, I think humans are wired to reach initial conclusions based on how something looks. As the blue food phenomenon shows, we have some strong inbuilt prejudices for and against certain aesthetic qualities of objects.
To which rule programming languages may not be an exception. For instance, every so often I play with a SmallTalk environment, something like Squeak for example. I can get over the way the thing looks, the way the workspace is laid out, the way the nonstandard controls do what they do. But when I look at SmallTalk code – somehow I know that deep down, it and I are not destined to be more than acquaintances.
Something of the same feeling hangs, for me, around C++. My first deep and meaningful programming language relationship, if you don’t count the adolescent flirtations with assembler and BBC Basic, was with C, and C syntax still works for me on some basic level of my soul. But I never could get on with C++, not in the same way; I never managed to get into the zone. Where does the ampersand go again? How do you write that odd template thing? It’s all a bit too arbitrary.
In recent years I’ve done my share of Perling (Perl Diving?) but found, in the end, that the sheer overloaded-punctuation-frenzy of the code began to get to me. I used to read the Obfuscated C entries for fun, so scary mixtures of characters from the top row of the keyboard don’t frighten me, but Perl seemed to be following a path to a place where the meaning of any single character from the ASCII set became heavily context-dependent; a sort of celebration of semantic overloading. I’ll still read most anything Larry Wall writes for the sheer pleasure of his wit, but the language that needs two characters to denote object attribute access is no longer my first choice for anything. Brevity may be the soul of wit, but Perl is too brief – positively hysterical, my dears.
Which brings me, naturellement, to Python. Being as cynical as anyone (and more so than most), the idea of a language that used whitespace for actual meaningful source semantics seemed… wrong to me, in the same sort of Lovecraftian way that the geometry of Ryleh did to the sailors. But when I dug deeper, I found that the simplicity and regularity of Python spoke to me and called me on. Perhaps it’s the call of a Siren, but the neat way in which list comprehensions reused the syntax of lists, loops and if told me that this was a language that worked in the same way I did. An absence of baroque encumbrances. Long may it continue.
Or a cake. If you don’t get that, where were you when the first Shrek came out?