A short history of computation, in our universe and another

| No Comments | 1 TrackBack
Below, the introduction to a game I'm working on. I need to shorten it up quite a bit (by about a thousand words), but this is the basic shape. It briefly explains the history of computation in our world, and then extends into the fictional world of the game.

Way back, in the mists of computation history, more than a hundred years ago, there used to be rooms full of ladies called computers. They were called computers because they did just that: they computed. A little later, machines got the job. Because they, like the ladies before them, computed, we called them computers. And when we started doing that, they were mostly hard-wired for specific tasks. They had physical switches and vacuum tubes giving out instructions. Around the same time, we started using punch cards. Then, it was reel-to-reel tapes. Over time, we found many different ways of telling computers what to do. 
 
Eventually, these instructions came to be called programs. Around the middle of the twentieth century, we started using software to program our computers. Except it wasn't really a ware. Lots of companies sold computers. Mostly, those computers were bought by large institutions, universities and research centres. People who needed to do very serious calculations bought computers. The programs weren't thought of as something worth selling. They were specific things that the people who owned computers came up with for themselves. They might have someone on staff to write programs for the computer, or they might hire someone in to do it. The point, though, was that the great big computers were expensive and the little programs were not. So the programs didn't matter much. But they were useful, in their way. So people traded them.
 
Because they were so specialized and because they were largely written by researchers, for a really long time, no one thought to sell them, they just traded. The best bit, of course, was that if I taught my computer how to do something and you wanted your computer to do something similar but not quite the same, you could change my program. Because you could see how I'd told my computer to do it. 
 
Eventually, computers got a little cheaper. And when computers got cheaper, more people started buying them. It wasn't just big institutions with buildings full of researchers. It was people more like you and me, with a little less money on our hands. These computers came with some programs. But if I wanted another program for my computer, how could I get one? One person doesn't have the money to hire a programmer or researcher to come up with programs. I could write one myself, which is what a lot of people did, but then again, I wouldn't necessarily have a lot of time on my hands to do that. A new option sprang up. Someone would invest some time into writing a program that they thought would be useful to lots of people. Then, they'd sell that program to as many people as they could. So software, something which had previously not been for selling, became something you could buy. 
 
This, of course, didn't stop people from wanting to keep on doing what they had been doing, which was copying and sharing. Lots of computer hobbyists still wanted to be able to trade programs, even if they were programs that they had originally bought from someone else. So they kept on doing that. They'd get together and trade, your program for mine. Needless to say, the people who were only selling programs (instead of packaging programs, as a service, with their hardware) didn't like this very much. There was one young man who was particularly bothered by it. He'd written a program that had turned out to be quite popular. He was bothered that lots of people, instead of buying it from him, got it the way they always had before, by trading with their friends. He didn't like this one bit. So what could he do but write an angry letter to a computer hobbyist magazine, making his case to the people trading copies.
 
A couple years after that one young man wrote his letter, another man was having a problem. This problem revolved around an important distinction. Programs are made of code. There are two types of code. There's source code, which is the stuff that humans can read, and there's object code, which can mostly only be read by computers. This man having the problem was an academic type, working at a university, very much used to the idea of sharing and modifying. But he had this printer. And it wasn't working properly. What he wanted was to be able to look at the program controlling the printer, to look at its code, so that he could fix the problem and make it work the way he wanted. But that wasn't possible, because the people who had sold him the printer had decided that they shouldn't let their customers see the source code, the human readable stuff. Instead, they only sent the printer along with its object code. This made the man very grumpy. He knew, because he was a good programmer, that if he could read the code, he'd be able to solve his problem. But he couldn't! This, for him, was a tipping point. He didn't want to have to deal with programs that he wasn't able to change. He wanted to be self sufficient and to solve any problems that might arise with the software. 
 
So, fed up, he wrote something, too. He wrote a manifesto, explaining why it was important to have the freedom to see and modify code. With his manifesto, he eventually started a movement. Lots of other people felt the same way. They thought that the freedom to modify and examine was fundamental to software. The man who wrote the manifesto started working on an operating system of his own. When you think of an operating system, you may think of Windows or Mac OS or even Linux. The man with the printer trouble and the manifesto started his work before any of those others really existed. The problem, though, was that he never managed to finish it. He lost the race. And other operating systems, ones that didn't show off their source code, became dominant. That's just in our world, though.
 
In another world, things went a little differently. In another world, no one paid much attention to the young man who wrote in to the computer hobbyist magazine. Instead, they kept on copying and sharing, the way they always had. He kept on shouting, but no one listened much. A couple years later, when the man with the printer came along, he got a lot more attention than he did in our world. In another world, people were so sick and tired of hearing that first young man's complaints that they jumped on board when the quest for software freedom came around. Which means that there were a lot more people there to lend a hand when the man with the broken printer started writing his own operating system. With all those extra helping hands, he finished it. And it began to dominate. Because people could look at the source code, it was adapted for all kinds of different computers. It worked on everything. And because it was what people were using, and because they were enthusiastic about it, they worked on it. So it improved, quite quickly. And because other programmers could see the code, change the code and redistribute the code, people made their own versions. If one person didn't like the way the operating system worked, he (or she) was allowed, without even asking, to take the existing code and make the necessary changes. Then the programmer would give it a different name and release it into the wild for other people to use and work on. All of this meant that lots of different operating systems proliferated. Anyone who had the time, interest and skill could make a personal version of the operating system. Any company or institution with special requirements could hire a programmer to make the changes for them. And because of that license, which allowed people to copy and change, but also required them to release their derivative work under a similar license, all those changes wound up out in circulation. Any big company making changes to the software had to release those changes, for the benefit of the rest of the community. 
 
In this other world, then, maybe your computer and my computer never had the same software. But that's okay, because they could still talk to each other just fine. They'd talk to each other on common protocols. With protocols, there's a written set of rules, explaining the technical specifications needed to make the protocol work. The neat bit is that anyone who follows those instructions properly can implement the protocol. If we both have a copy of those rules, we can both write conforming programs. By following the common set of rules, we ensure that our computers can communicate. Essentially, a protocol is an open standard. Anyone can see it and implement it. So, in another world, regardless of what software your computer used, it could still talk successfully to my computer.

Now, that didn't happen so much in our world. Sure, it happened for things like email, but not for a lot of other things like files and programs. Because one operating system dominated for so long, people writing programs only wrote their programs for that one operating system. Those programmers followed the rules set out by the owners of the operating system. There's no need for open standards and agreements if all the computers are exactly the same. But in another world, with variety and loads of different operating systems, open standards and protocols dominated. 
 
In this other world that we're talking about, where software freedom was hugely important, where open standards and protocols were the grease that made things work smoothly, where visible code meant infinite possibilities for modification and innovation, the alternate you may know a little more than you do about programming. Not because it's necessary to know how to program in order to use the software (it isn't), but because, believe it or not, it's fun. Because, like the man with the broken printer who started it all, you've maybe realized that by knowing how to program a little, you gain a huge amount of power. By knowing how to program a little, you get to be the one telling your computer what to do and you get to understand why it does what it does when it runs the programs that other people have written. 
 
Unfortunately, in that other world, there are some rumblings going on. A large company called The Dacre Group, a private equity firm dominant in retail financing, is starting to hire up programmers. And no one is saying why, not even the people they're contacting. One day, you get the fateful email. They want to hire you for a special project. It pays very well. And you'd do well to accept. When you push them on what the project is, they explain that they can't tell you anything unless you sign a non-disclosure agreement. If you don't do that, they say, we can't tell you. Well, we could tell you, but we'd have to kill you, hah hah. Scared by this, you decline their offer. But you start looking around, trying to find hints about what's going on. Why would a private equity firm want to hire so many programmers, and on such a secretive basis?

1 TrackBack

TrackBack URL: http://www.adaptstudio.ca/cgi-bin/mt/mt-tb.cgi/635

Way, way back again from ginger coons learns to blog on October 21, 2010 12:40 PM

If you can see the image, you're looking at 30 seconds of lovingly hand coded SVG animation. It's the Way, way back from yesterday and a little bit of my short history of computation. Soon (once I hack another... Read More

Leave a comment