There is a meme that began in the web cartoon XKCD, called Up Goer Five in which one attempts to describe a complex concept using only the one thousand most common words in English. Tho Sanderson developed an up-goer five editor, and so I thought I’d try my hand at defining software.
Thanks go to Jan and to Len Shustek for their suggestions!
What is software?
This is the stuff that you can’t see that makes a computer do work. When it’s outside the computer, it looks just like words. We turn those words into numbers that a computer can understand, and then we hide them away inside the computer to make it do the work. Different words can make the same computer do totally different things. For the really interesting things that we can make a computer do, it takes many of those words that we then turn into an even larger set of numbers for the computer to use. It is really hard to make a computer do what you want using these words. If any single word is not exactly right, the computer will do the wrong thing. Sometimes this is just a bother, but at other times it can even hurt people, and that is bad. It is also quite hard to write any large number of words. You have to think very hard in order to make sure you get them all exactly right, which is actually the most fun part of doing it. If there aren’t too many words, they can be written by just one person. If there are more, several people can do it together. If there are a huge number of words to write, it takes lots of people, sometimes even people from many different parts of the world. It can take many months or even years to finish it. Actually, the really interesting stuff is never finished: people just keep adding to it and changing it over time, until it is no longer of use or if it just gets too hard to change. There are a few things that we know we can not make any computer do this way, but for the most part we can make a computer do almost anything we can imagine, if only we write the right words. And that is cool.