Friday, May 18, 2007

Computers, Language And The Goblin Universe

Monday morning, I hesitated to begin a week posting about computer languages because I understood a connection between computers, programming and the Goblin Universe was not immediately obvious. And I was pretty sure I wouldn’t make the connection in just five days. But I wanted to get started. At some point in the future I will return to this topic and get a little further along toward actually making one or two points...

I think there are, in fact, two aspects of computers and language which touch on the realm of the magical, areas of the cosmos that defy logic.

The first has to do with the kinds of things a person can accomplish with even a very old computer that is equipped with a good computer language.

The second point is about the way the contemporary computer world has so consistently moved away from good languages which empower programmers and which empower users. A dedicated follower of Ayn Rand would see deep philosophical issues at work. A dedicated Marxist would see the evils of the corporate marketplace at work. A dedicated conspiracy theorist would see all manner of interconnections between the business world, the education world and the shadowy agendas of the movers and shakers making decisions about computer hardware and software. The reality, however, is simply so strange that I strongly suspect any one dimensional explanation (or possibly even any three dimensional explanation) will fall short of the mark.

As a conclusion to this week’s sort of introduction to the topic, I will finish up with two teasers, two examples of the kinds of things computers and programming can do which are so absent from the mainstream of the computer world today.

Consider this excerpt from a traditional, very old nursery rhyme:

This is the farmer who sowed the corn
That kept the cock that crowed in the morn
That waked the priest all shaven and shorn
That married the man all tattered and torn
That kissed the maiden all forlorn
That milked the cow with the crumpled horn
That tossed the dog
That worried the cat
That killed the rat
That ate the malt
That lay in the house
That Jack built

It is relatively easy using list processing tools to write functions which take as input text like that and play with it by outputting amusing and sometimes thought-provoking text like this:

This is the house
That worried the man all tattered and torn
That tossed the malt
That lay in the cow with the crumpled horn
That Jack kissed
This is the maiden all forlorn
That milked the cat
That married the dog
That lay in the malt
That waked the cow with the crumpled horn
That worried the cock that crowed in the morn
That the priest all shaven and shorn ate

It’s hard not to smile reading output like that, and even when you write the functions which transform the input to the output, you often see results that are wildly unexpected. This sample was taken from the book, “Exploring Language With Logo.”

Consider this image:

This image was created and executed entirely by a computer. An artist named Harold Cohen programmed a computer using the Lisp language to generate images based on various rules and conditionals. He also designed and built computer-operated equipment to actually form the images in the ‘real’ world. (Incidentally, Harold Cohen was first taught to program by Jef Raskin.)

Although the ‘thinking’ behind this image is quite sophisticated, it is relatively easy to use turtle graphics to generate images that approximate the look and feel of the amazing images Harold Cohen creates.

I don’t have a schedule for when I will resume posting about computers, language and the Goblin Universe, but there is a great deal left to say, and I’m looking forward to taking one of today’s ugly, mind-numbing tools—possibly JavaScript—and twisting its arm and forcing it to do some cool stuff.