With so much talk about why software sucks and bugs are the norm, it’s refreshing to finally hear what I feel is a core issue being mentioned. Nicholas Petreley nails it in the a great ComputerWorld article A Costly Affair.
That brings us to the one remaining obstacle to stable client software, the unpleasant problem nobody likes to address. I’ll give you a tip on how to track it down. Sit down at a Nintendo GameCube or a Sony PlayStation 2 and play some games from start to finish. Then do the same on a PC. Chances are, you finished the console games without encountering any quirks, bugs or game crashes. At most, you might have been able to exploit a programming bug to cheat at the games.
In sharp contrast, you probably encountered your first problem with the PC games when the installer complained that your version of DirectX was out of date. (DirectX is the Microsoft graphics API designed mostly for PC games.)
Assuming you had enough CPU horsepower and memory to make the game enjoyable once it was installed, the game probably crashed at least once, if not several times, before you were done.
Console games are more stable because a game console is a highly predictable platform with a stable API. If you can find any differences between the hardware or software in two PlayStations or GameCubes, the differences will be subtle and unlikely to affect the way a program behaves.
Pick any two PCs, however, and they are likely to have radically different display cards and drivers, different DirectX APIs or different versions of the operating system. They probably won’t even have the same chip sets on the motherboard!
The video game console is the holy grail of application development – a stable environment in which to develop and deploy software. I’m not sure I agree with Petreley on how to get there in the PC realm. Network computers again? I don’t know. You would think that Java itself would get you there….
Java won’t get you there because different hardware requires different virtual machines. All Java gets you is the ability to point the blame at the VM instead of the hardware.
Good article, those of us who have spawned from Commodore, Tandy, etc, into the world’s of Pong, Atari, NES or SNES,(screw sega) or PSX, understand the hardware history. I can appreciate the fact that once and awhile people pop up and explain this stuff for the one’s who have a rough go of it.