It should be a no-brainer that, because the heart of the computer is called the CPU — Central Processing Unit — the computer is therefore fundamentally a machine for processing data, and that Process is the soul of the computer. This is what makes the computer so revolutionary, for no previous medium of expression had anything like Process. Every single previous medium of expression is fundamentally based on Objects — data. Much to my surprise, quite a few people have difficulty getting this obvious truth down their craws, so I’ll now explain what that means. If this all seems patent to you, skip ahead to the next section.
All other media are Object-centered
All prior media of expression are Object-centered. Literature, the theater, music, poetry, cinema, painting — everything before the computer was necessarily about Objects, not Processes. The computer can present many forms of media: novels, poetry, cinema, music, and visual arts. But it only presents those media. They can just as readily be presented without the computer. The unique capacity of the computer is its ability to process.
Interactivity is the hallmark of the ability to process. Only the computer can interact with its users. No other medium can do that. Here again is my definition of interaction:
Interaction is a cyclic process in which two agents alternately listen, think, and speak to each other.
Movies don’t listen; they don’t think. Novels neither listen nor think. Same thing with poetry. Beethoven’s Ninth Symphony speaks to you, but it doesn’t hear you and it certainly doesn’t cogitate. The Mona Lisa hasn’t ever listened to a single word from its millions of admirers, nor considered anything. The Statue of David in Florence is breathtaking, but its ears are of stone, and there’s nothing inside to think. None of these forms can interact.
Some people confuse intense reaction with interaction. They might argue that a powerful movie is interactive because the viewer can experience so much during such a movie. But reaction is not the same thing as interaction, and making a reaction more intense does not make it somehow transcend into interactivity. Interaction is not reaction with the volume turned all the way up.
Here’s a simple example of my meaning. Imagine yourself watching a movie. The innocent young woman is driving alone on a dark and stormy night. The rain pelts her windshield. She is lost. Her car mysteriously dies. Her cell phone has no reception. Looking around her, she sees a single isolated house nearby. It’s two stories high and obviously quite old. Large red eyes peer out from the windows. “I’ll just go to that house and ask to use their phone!” our heroine chirps. She runs to the front door, but on knocking, the door creakily opens all by itself. Inside it is pitch black.
“Don’t go inside that creepy house!”, you plead. “It’s full of monsters!”
Now, if this movie were interactive, then the young woman would pause and say, “You know, on second thought, I think I’ll just wait out this storm in the car.” But the movie is not interactive — she goes inside that house. You can beg, you can plead, you can jump up and down shouting at her not to enter that scary house, but she goes in anyway. You can play the movie as many times as you want, desperately screeching at her not to go inside, but she still goes inside every single time.
That’s why movies are not interactive.
Data-driven software
The computer’s unique trait as a medium of expression is that it is a Process-intensive medium. Sure, it can handle Object, too, in the form of data, but what makes the computer special is its ability to process, not it’s ability to store huge quantities of data.
Yet if you examine the software that we are creating, you can see a huge emphasis on data, not process. A few years ago I dug into the innards of some of the games on my computer, measuring the amount of data used by each game as well as the size of the program code in the game. These are the six games I measured:
For each game, I present the amount of data it requires as a black square, and the amount of space for the program code as a white square. As you can see, these games are overwhelmingly data-driven. Here’s the summation:
The program code constitutes less than 1% of the total content of the games! Talk about a lopsided emphasis on data! Recall my earlier graphical representation of reality as a kind of yin-yang of Object and Process:
Now consider the analogous structure of programs as a yin-yang of data and algorithm:
That’s the ideal relationship between data and algorithm. But the software we actually build looks completely different:
All data and almost no algorithm. If our programs were hamburgers, they’d be all bun and no meat:
Remember, the computer is fundamentally a Process-machine, so when we load it up with data and cut corners on the algorithms, we’re failing to take advantage of its true power.
Counting bytes is actually a bit misleading; perhaps it would be more accurate to count the amount of time we spending creating data with the amount of time we spend creating algorithms when we create software. Even here, though, it’s pretty clear that we still spend a lot more time and effort creating data than creating algorithms. We could also look at the budgets of games to see that far more money is spent on the data (graphics, animation, and music) than on the processes (algorithms for the game).
Conclusion
The computer as a medium of expression is radically different from all previous media. It is a Process-medium, not an Object-medium. Yet everything we know about expression is Object-driven. We need to put ourselves through a radical shift in our thinking, a shift that few people will have the mental discipline and agility to make. The goal of this course is to help you make that shift. I am asking you to make a huge change in your thinking. I will help you as best I can, but if you cannot muster the mental grit and determination to make the change, this course will be a waste of your time.