Three Chord Programming
2004-11-22
I have performed on stage at the Sydney Opera House several times.
It was a long time ago, like, in the seventies, with various combined school choirs, recorder ensembles and such. The best thing I was involved in, I got to play the milk bottles (half a dozen one pint bottles in one of those little wire baskets). I rattled them, as a key part of the 'Sounds of Sydney' an epic piece that took you through a whole day from birds calling and the milko clanking to what we ten year olds imagined a night club might sound like, with the help of our teacher, Miss Lilienthal.
Read on to see how this relates to programming.
In that ensemble there were also people playing modded xylophones. Miss Lilienthal took out the F and the B leaving us with a pentatonic scale: C D E G A C.
With the pentatonic xylophone you can bash away and play anything you like and it will sound OK; it's also pretty easy for a group of ten-year-olds to work out a few different parts that work together.
I think this is what Adam Bosworth is talking about here:
Consider programming itself. There is an unacknowledged war that goes on every day in the world of programming. It is a war between the humans and the computer scientists. It is a war between those who want simple, sloppy, flexible, human ways to write code and those who want clean, crisp, clear, correct ways to write code. It is the war between PHP and C++/Java. It used to be the war between C and dBase. Programmers at the level of those who attend Columbia University, programmers at the level of those who have made it through the gauntlet that is Google recruiting, programmers at the level of this audience are all people who love precise tools, abstraction, serried ranks of orderly propositions, and deduction. But most people writing code are more like my son. Code is just a hammer they use to do the job. PHP is an ideal language for them. It is easy. It is productive. It is flexible. Associative arrays are the backbone of this language and, like XML, is therefore flexible and self describing. They can easily write code which dynamically adapts to the information passed in and easily produces XML or HTML. For them, the important issue is the content and the community, not the technology. How do they find the right RSS feeds? How do they enable a community to collaborate, appoint moderators, and dynamically decide whose posts can go through and whose should be reviewed? How do they filter information by reputation? These are the issues that they worry about, not the language.
PHP is apparently the Xylophone with some of the bits missing so you can bash away and make a tune. I'm no computer scientist, not that you would call me a human, but PHP's origins in web pages with code embedded have always bothered me; I don't want to work like that on the web, but I do want to get on with dynamically adapting to information passed in, and so on. I specifically do not want to have to write half a page of code to parse an XML document, make a few changes and spit it back out like we apparently have to do in Java.
Last week my family and I visited Mr John Reeves and family and we had a bash on an assortment of musical instruments and wool-spinning devices. The best bit, apart form the gorgeous Fender resophonic bass was the ukulele collection. John and son Rueben taught me 4 chords in as many minutes and I was away. Four strings, cheap to buy a nice sounding instrument, portable, fun, and easy to get going. Almost as easy as playing the milk bottles if not quite as cool. Where can I get an XML aware programming language like that?
$LastChangedDate: 2004-11-22 05:26:23 -0600 (Mon, 22 Nov 2004) $ $Rev: 64 $