November 19th, 2010

krazy koati

Explanations I can't explain

The only hard part of programming computers is you're expected to make a computer program. That's not so bad except for the expectation the program will work. There's where programming falls down. Economists say this is from purely rational market motivations, because economists would feel terrible if they found anything not the result of purely rational market motivations. Just this month economists have reported purely rational market motivations in how buses never run from anywhere anyone is to anywhere anyone wants to go, potato chips which resemble celebrities, how nobody has correctly identified sarcasm since 1986, the Balmer spectrum of niobium, and certain highly educated pebbles.

Here, though, the economists have a point, and don't think they aren't all smug about it. Imagine you were a computer program that worked. You'd be put to work, likely at impossible times such as 5:15 am, when you'd want to be making fun of cartoons you incorrectly can't get out of your head. To get what you want you must do stuff wrong.

Thus software bugs: for example a program to alphabetize the boroughs of New York City lists ``Queens'' and then drives the computer off a cliff, causing a steam locomotive in 1908 to explode. This gives the program hours to establish that yes, Gary Coleman was an angel this one cartoon, and is he dead or was that somebody else? It also gives physicists something to argue over, and helps historians. These days the Haymarket Square Riot is understood to have been triggered by beta-testing of Microsoft Office 2018, with the real tragedy being that the upgrades could have been handled in a Service Pack. Also all the death.

Now to practical examples. We'll start with a good software development environment; there are none. But neat packages turn words different colors and send code flying all over tab stops, which is soothing to the eye. These development environments adapt their color schemes to the seasons, with more words in red and green around Christmas, purple and green around Easter, green and green around June, and so on. This way you can easily tell what time of year it is. It's too late in the year.

Let us use as demonstration the famous ``Hello world'' program, because that never demonstrates anything useful and let's start now. This can be as simple as a line to the effect of:

System.out.writeln("Hello world");

As your development environment puts ``System'' in blinking blue and white, celebrating Greece's Independence Day, you can compile and try running it. If it did run, the program would justly fear being put to work by economists, therefore, we get a series of errors like:

  • Package 'System' cannot be found.
  • Thingy 'out' does not exist.
  • File cannot be found.
  • Function 'writeln' not defined in this context.
  • We changed that 'l' to a lowercase 'one' to look better.
  • File cannot be written.
  • Not in that context either.
  • File cannot be read.
  • We're none too sure about this 'world' thing either.
  • We're pretty sure it's nowhere near Greece's Independence Day.
  • File cannot be.
  • Don't think of bringing up that context either, that's right out.
  • We want to punch an economist.
  • ``Being'' is an Aristotelean property inappropriate to the complex post-Alfred-Korzybski world.
  • ``Hello'' still feels slangy.
  • Put that context down, you're getting fingerprints on it.

More advanced environments may also be a little snarky about the alleged grammar of ``Hello world''. Turn off the prescriptivist settings, which could be found under Edit/Tools/Preferences/Checking/Grammar/Advanced, if only they were there.

They might list what lines raise the objections, but thanks to clever programming, these numbers will have nothing to do with where the problems actually are, or with the number system. Go to any line you like, for example number square-root-of-seventy-A, which is blank. Comment out all the blank lines, then the non-blank lines, and soon you will trigger Wat Tyler's Rebellion. Now step away and sulk until you can re-compile and trigger the Battle of Manzikert; that's your work accomplished. And if you look in your hand you'll see your card is the eight of something. Am I correct?

Trivia: Edmond Halley's first scientific voyage was cut short, among other things, due to Halley's inability to get along with the only other comissioned officer, Lieutenant Edward Harrison. Harrison, it turned out, had blamed Halley for years for his tome on longitude being generally ignored. Source: Compass: A Story of Exploration and Innovation, Alan Gurney.

Currently Reading: Citizens: A Chronicle of the French Revolution, Simon Schama.