Tue, 10 May 2005

Software and assumptions

When you write a piece of software, you always have in mind a certain set of assumptions. You are thinking about a certain speed of CPU, a certain amount of memory, and a certain amount of storage. Those assumptions condition the structure of the program. For example, I wrote (with Patrick Naughton) Painter's Apprentice back in 1983. The program was written to be a clone of MacPaint. In order to make it work as well as MacPaint, I assumed monochrome graphics from the beginning. That assumption worked its way into every bit of the code of that program. The algorithms chosen, the amount of memory consumed, and the file formats for storing the images, were all a part and parcel of the program. It would not have been possible to write the program to the same effect without making those assumptions. In fact, assuming that I didn't have to make those assumptions is itself an assumption. No magic wand.

Similarly, our public schooling system has an assumption built into it: that every child will go through the school system. I've written about the failure of this system of compulsion one, two, and three times before. Vouchers will not work to improve the school system as long as school is compulsory. There is no magic wand.

Posted [09:20] [Filed in: ] [permalink] [Google for the title] [digg this]