The PC is Dead, Long Live the PC

Pete, as usual, has generated a lot of comment traffic with his recent rantings about whether or not it is the fault of the developer when a game on a PC is a crashy piece of crap. For the most part, the battle lines are drawn along the question of whether the PC as a platform is just too complicated and intractable to make an enjoyable and reliable vehicle for interactive entertainment.

The problem is that the PC is by its nature not a single platform. Every single PC is essentially its own unique platform with its own unique set of problems. This means that everything that you run on the average PC has the potential to become a crashy piece of shit, arguably through no fault of its own. What this means is that whenever one buys a game to play on a PC, it is implicit in the contract that one will also be beta-testing the driver and other system level interfaces between the game and the rest of the PC. As a result, even in products that are relatively bug free, a lot of people get crashes and other annoyances.

This may be a fact of life, and I can understand the engineering reasons that might make it a fact of life. But, one shouldn’t be deluded into thinking that it is OK. It isn’t OK. For example, I know multiple people who have had a game or the system crash while playing a certain game because of cooling problems in the PC. Why should I have to worry about the cooling architecture of the machine in order to play a game on it? I suppose some people want to engage in the meta-game of whack-a-mole to find the workable configuration on which many games do not crash. They can be my guest. I lost interest in that kind of thing around the time I graduated from high school.

Stuff should just work. If PC gaming wants to climb out of the grave that it is slowly digging for itself, it must come to terms with this issue.

But, I am not here to bury PC gaming. That’s been done in other places by other people who are probably better at it than me. I am here to bury the general purpose PC as a computing platform. I used to be skeptical of the notion that the world would be populated not by the general purpose computers of my youth, but by special purpose machines that could only do one thing and could not be upgraded or reprogrammed. What a waste, thinks the brain of the engineer when confronted by this vision. All of that hardware and I can’t even use it to write code? Why would anyone want that? Flexibility and programmability, it seemed to me, were the major leverage points that set my beloved machines apart from everything that had come before. Here was a machine that could do anything as long as you could find the right representation.

Of course, as we have all found out, flexibility is both the shining glory of the computing machine and the instrument of its downfall. We can hook the machines up on the network for instantaneous communication with others thousands of miles away. We can do the same thing and spread email worms and other pain at the same lightning speed. You can program the machine to be any kind of environment that you want, but what this means is that like PC games, what you end up with is a machine that not only never works, but will not tell you why it doesn’t work.

The Axiom of Choice states that to fight complexity, you limit flexibility. But for computers, this has never really worked. Many organizations have a vested interest in keeping the general purpose PC alive. Also, many people who buy computers are not after simple machines that work. They are after toys to tinker with, things to fix. These and other factors play into the entrenched position that the general purpose PC has in the world. I don’t think that most people who buy a computer to surf the web and look at pictures really want or need what we are selling them. But it’s all that is there.

However, this does not mean that we do not have more and more single purpose computing machines in our lives. Even though the systems used for computing have not been evolving towards a simpler future, something has happened that my past skeptical self did not notice. More and more single purpose devices in the world are really just simple computers, designed to do a single thing well and not crash all the time. Off the top of my head, here are the obvious and not so obvious ones:

1. Xbox, PS2, Gamecube 2. DVD player 3. iPod 4. My car (although my car crashes more than my iPod). 5. Tivo 6. My oven (horrible user interface) 7. My TV. Probably more raw image processing power here than in the game consoles or a high end PC. Does not crash as much. 8. My cell phone. 9. GPS 10. The cash register at the Giant Eagle. Well, OK, these actually run Windows, but I bet you can’t install software on them.

I also find that while my general purpose computers are as complex as ever, one way that I try to tame that complexity is by limiting what I do with them to a variety of narrowly targeted tasks. So, the iMac does nothing but run iTunes. My office machine is only used to write code, send email, and edit specifications. My laptop is mostly for photo processing, writing, and web surfing. And so on. This limits what I install on the machines and thus limits the complexity of the configurations.

It seems obvious to me that the next natural step should be to continue to simplify the general purpose computer to make them easier to use and easier to set up. An obvious place to be doing this is in extending the Tivo idea to the “living room computer” or “media center PC”. Of course, since engineers and PC manufacturers are building these machines, this is not what happens. Instead what we end up with is machines that are very flexible, but hard to set up and hard to run. In the long term, if PC gaming is any indication, this is the wrong tradeoff. Hopefully in a few years, I’ll be writing my blog rant on a special writing machine, and then reading it back on my web surfing tablet while playing Halo 6 on my Xbox 9. Dare to dream.