Hello, World!\n

Can you ever start a weblog about programming languages without naming the first post “Hello, World!”? I am uncertain. It may lex fine, but it is grounds for disciplinary action if you treat warnings as errors. I hope you enjoyed that last sentence, because that’s what this is going to be.

Within days of starting out with programming, I became interested in programming languages themselves. Not just as crude tools that enable the act of programming, but as utensils that shape it. They are all different. They all have various characteristics. They all take the first opportunity to divide the world into a thousand aspects of which there’s a spectrum of possibilities, and more often than not, take off towards one extreme or the other.

The Sapir-Whorf hypothesis teaches that the extent of what is possible to express also forms the extent of what can be practically considered. It’s not enough that programming by itself is the language by which we tell the device what it should do; the language shapes the way in which we do it. It seems like there would be a big interest in trying to expand this extent, and history bears this out.

It is interesting being a programmer right now. Even if Alan Kay is right and nothing new has truly come out of computing since the 70’s, it doesn’t feel like it. Tethered as we may largely be by C and its historical legacy[1], there’s a hunger to take off in the opposite direction — a tension just as strong as that between, say, statically and dynamically typed languages.

So rather than try to take the time to distill the best features into my own toy language, I thought I’d start to write them down here instead. I already keep a weblog in the form of waffle, and sometimes weblog posts just appear in my mind. Maybe if I could train myself to write stmts posts as often and well as waffle posts, I will be able to connect the dots further.

[1]: By legacy, I mean the dictionary definition of “things that have been and shaped what was to come”, not the prevalent passive-aggressive industry speak for “things we have actually gotten around to deprecating, or which belong to the technological platform of our competitor, and which are therefore clearly unusable”. “Historical legacy” is a tautology, but it was meant to convey a wider perspective than the other usage.

4 thoughts on “Hello, World!\n”

  1. The Sapir-Whorf hypothesis is the intelligent design of lingusitics. OK maybe thats a bit harsh – intelligent design proponents try ocassionally to use scientific method. If there is a vague inkling that some minor aspects of the Sapir-whorf hypothesis could be with a lot of imagination be construed as very occasionally having some merit – it’s not because of Sapir or Whorf, their evidence was invented or fll of basic misunderstandings. I think it’s far more likely that when you begin learning another programming language a whole bunch of assumptions that you held (which you acquired by accident during the learning process of the previous languages) are found to be shaky. Your brain the pattern matching machine it is – reconfigures under different input. It’s not the peculiar characteristics of the new language that molds your thoughts, you have to think outside the box (similar in my opinion to scientists who cross specialize suddenly having viewpoints/ideas so different from their single specialty brethren). I can tell you from experience that this effect does not happen learning multiple human languages – but does with far more constrained programming languages. Oddly enough people in the info tech field that I greatly respect keep bringing up Whorf/Sapir – they are well read enough to come across the hypothesis,, but not enough to realise that it has never, ever had an unambiguous effect in human languages on humans, despite many contrived examples, any normal human being can adapt their human language to any circumstance – they are not constrained by their speech.

  2. So: the hypothesis kinda sorta holds in effect for programming languages. It might not be strictly proven or true for any case, or hold for the reason it is argued, but the effect is reasonably similar to what’s being argued.

    That’s good enough for me. That’s why it’s their hypothesis, not their proof, truth, law or self-evident, verifiable characteristic. That doesn’t mean that everything that rings true and has a small helping of accuracy while being fundamentally flawed is good enough, but even if what you say is completely and factually true, there’s far more meat on the hypothesis bone than on the “ID” bone because it at least happens to correlate with the effects on reality without being completely backwards.

    And to remove any doubt: I have never taken to a literal reading of the exact hypothesis; I read it simply as “exposure of a person to languages, their constraints and their possibilities have a measurable effect on the boundaries and usage of the vocabulary and imagination of that person”. Maybe the reason why it’s less the case for human languages is that they aren’t designed by a sat-down closely-knit group with a goal in sight, but evolved by everyone who uses and abuses it over time. xkcd #191 rings true here.

    1. Oh well, If you can take any idea and use it as a launch point to explore a knowledge domain in directions that you might not have thought of, then that’s a good thing – even if the initial idea is wrong. The thing that gets on my goat about Whorf and Sapir is they say if you don’t have the certain word in your language (eg “north”) then you will not be able (because of your language conditioning) envisage the idea of north. That is not what happens, we readily invent terms, ideas, paradigms that have not existed in our languages before. I think (but I have no bones about anyone disagreeing (( I only get annoyed when their names are incessantly parroted about)) ) that when it comes to designed programming languages Whorf and co’s ideas are more of a distraction than a help. There are better descriptions of what happens when we move to a language that is more expressive. I myself am working on the “Collin McCrae Rally Hypothesis” – when you get in a much faster, maneuverable car – you suddenly drive faster, and can maneuver better, and you can och, even speak with a better Scottish than you could before.

  3. The thing that gets on my goat about Whorf and Sapir is they say if you don’t have the certain word in your language (eg “north”) then you will not be able (because of your language conditioning) envisage the idea of north.

    Not being able to envisage is too far, I admit. But the Colin McRae analogue is a bit too tame too. (I would say something about going from being immersed in car terms to thinking in helicopter terms, but given what happened to him, I’m not sure that’s a metaphor I’d want to commit to.) You have the idea of north already in that you have “un-south”. Maybe “kata” and “ana” are better words; we don’t perceive a fourth dimension, but we can be taught the idea of it, and to reason about it, à la Flatland.

    If you take a Qbasic programmer and you put him in front of F# or Scala or Python, he’s not going to automatically grasp the new power at his disposal, while if you go the other way, there are plenty of things to miss.

Leave a Reply

Your email address will not be published. Required fields are marked *