Why Software Sucks

Computers and their accompanying software have dramatically changed our society. It’s hard not to be impressed with the huge leaps forward made by this technology. While I am impressed with many of the wonderful innovations we have seen, I am also disgusted with the lack of progress in so many fields. Software lags far behind where it could be. Certainly our software falls far behind the potential of the hardware. 

Software Progress versus Hardware Progress
Let’s compare two computers: the Mac IIx that I purchased in 1988, and the iMac that I purchased in 2013

25 years separate these two computers. In computer years, that’s several centuries. Let’s compare their power by comparing each of the components critical to their performance:

CPU Transistors
Transistors in the CPU are the parts that make decisions. The more transistors in the CPU, the more calculations it can make. The Mac IIx had 190,000 transistors in its CPU. The CPU in my iMac has 1 billion transistors. That’s a performance advantage of 5,000 times.

Clock Speed
The faster the CPU runs, the faster it delivers its results. My Mac IIx had a clock speed of 30 MHz; the iMac runs at 2.6 GHz. That’s 87 times faster.

RAM
Obviously, the more RAM a computer has, the faster it can do its work. My Mac IIx had 4 MB of RAM. My iMac has 8 GB of RAM. That’s 2,000 times more.

Screen Pixel-bits
A computer must be able to present its results quickly and easily; to do this, it needs a lot of pixels that can be presented in lots of colors. The Mac IIx had screen dimensions of 640h x 480v, with only 8 bits of color depth. That adds up to 2.6 million pixel-bits. The iMac checks in at 2560h x 1400v x 24 bits of depth; that amounts to 86 million pixel-bits: 350 times more than the Mac IIx. 

Result
We combine the advantages of the iMac over the Mac IIx by simply multiplying together each of the advantage values:

CPU Transistors        5,000x
Clock Speed                   87x
RAM                           2,000x
Screen pixel-bits           350x
                                   _______

                  = 30,000,000,000x

My iMac is 30 billion times more powerful than my Mac IIx! That’s how much progress the hardware people have made with hardware in the 25 years between the two computers.

Software
How does software stack up against this? Let’s take three examples: games, word processors, and educational software.

Games
Here’s a screen shot from a popular game from 1988: Ultima V:

Ultima Va

Note the primitive graphics and clumsy user interface. 

Here’s a popular game from 2013: BioShock Infinite:

That looks a LOT better than the stupid 1988 game, doesn’t it? And of course the entire user interface is handled directly with the mouse, making for a cleaner and easier user interface. 

Clearly, the games of 2013 were much superior to the games of 1988. But here’s the question: are they 30 billion times better? If the amount of fun you derive from a game is somehow proportional to the quality of the game, and games really are 30 billion times better today, then playing a modern game should be so much fun that it would kill you!

The fact that we don’t see bodies slumped over computers shows that games are not really 30 billion times better than they were in 1988. Of course, my comparison is unfair in that there are a great many other factors at work here. But the key point to grasp is that the software has not kept up with the hardware: games aren’t anywhere near as much better as the hardware is. Why? I’ll get to that a little later.

Word Processors
Now let’s use the same logic on word processors. Here’s a screenshot from MacWrite, the first commercial WYSIWYG word processor:

macwrite

And here’s a screen shot from Pages, the current Macintosh word processor. It’s scaled down a little to fit on this page.

You can see how much superior the Pages program is. But again: is it 30 billion times better? I think not. If it really were 30 billion times better than MacWrite, I would have been able to simply dictate the document to the iMac, and it should have already known the best way to format it, but I would have been able to reformat the document with just a few instructions — all presented verbally. I shouldn’t have had to use the keyboard at all. THAT would be maybe a million times better. We’re still far from that point.

Educational Software
Now we come to the truly devastating indictment of the software community: educational software. I don’t want to single out any particular title or company, because they ALL suck! It’s been 50 years since people began fantasizing about the wonderful educational potential of computers. There was even a magazine devoted to the topic: Creative Computing. Founded by David H. Ahl, its first issue was published in 1974, and in its early years, the magazine concentrated on educational software. As I write this, it has been 43 years since the first issue of Creative Computing. What progress has been made in 43 years? 

Damn little. Yes, the educational software of today is much, much prettier than the educational software of 1974. There’s a lot of it. But back in the 1980s everybody was expecting that educational software would revolutionize education. We were imagining the day when students would spend most of their time working with computers, and teachers would act as individual guides. There are a few experimental programs attempting this right now, but as yet they are limited in scope and used only with younger children. High school educational programs these days aren’t much different from what I went through 50 years ago. 

Educational software sucks. It is an atrocious failure. Despite the diligent efforts of thousands of bright people, the dream of using computers in education remains a dream, not a reality. 

But its failure sheds light on the underlying problems. It’s not that the hardware isn’t good enough — computers these days are powerful beyond the wildest fantasies of 1970s geeks. The fault, dear reader, is not in our computers, but in ourselves. Put simply, we don’t really grasp what computers are, or how to use them properly. Sure, we can program up a storm with them, but we don’t grasp their true nature. We laugh and wonder at a three-year old who pokes at an iPad and makes it do things — but are we really any better than the three-year old? Are we not stupidly poking at our computers? Do we truly understand their meaning?

Next: What is the Essence of Computing?