Abstraction is the most important idea in computer science. Computer science is the American empire’s one great intellectual contribution, and I use its inception to mark the time between High Noon and the Age of Intellect in Glubb’s generation cycle. So if you love AMERICA—and everybody does—then you should understand how abstraction works.
I’ll be using a quote from a Curry-American book because that’s the one I know. I’ll quote at length because it’s an excellent book.
1.3 Two Recurring Themes
Two themes permeate this book that we have previously taken for granted, assuming that everyone recognized their value and regularly emphasized them to students of engineering and computer science. Lately, it has become clear to us that from the git-go, we need to make these points explicit. So, we state them here up front. The two themes are (a) the notion of abstraction and (b) the importance of not separating in your mind the notions of hardware and software. Their value to your development as an effective engineer or computer scientist goes well beyond your understanding of how a computer works and how to program it.
1.3.1 The Notion of Abstraction
The use of abstraction is all around us. When we get in a taxi and tell the driver, “Take me to the airport,” we are using abstraction. If we had to, we could probably direct the driver each step of the way: “Go down this street ten blocks, and make a left turn.” And, when he got there, “Now take this street five blocks and make a right turn.” And on and on. You know the details, but it is a lot quicker to just tell the driver to take you to the airport.
Even the statement “Go down this street ten blocks…” can be broken down further with instructions on using the accelerator, the steering wheel, watching out for other vehicles, pedestrians, etc.
Our ability to abstract is very much a productivity enhancer. It allows us to deal with a situation at a higher level, focusing on the essential aspects, while keeping the component ideas in the background. It allows us to be more efficient in our use of time and brain activity.
Yale N. Patt and Sanjay J. Patel
Introduction to Computing Systems
I’m going to interject for a moment here and note that many of us take for granted the ability to switch between motif and background. But as Paul Cooijmans points out, this is just one bullet point on the list of subtraits in associative horizon, and associative horizon exists on an extremely positive-skewed bell curve. I’ll return to this, but keep in mind the lack of this trait (the capability to work at the correct abstraction level) is a HUGE impediment to solving problems for most of humanity. This is because, when resources are abundant and social competition is fierce, there’s a huge opportunity cost to knowing how to build and maintain your own car. It’s a more efficient use of energy to pay or enslave someone to understand how your car works (or sharpen your spears to autistic perfection, I might add).
See Pseudorandom Bypasser’s comment below for a more detailed description.
…It allows us to not get bogged down in the detail when everything about the detail is working just fine.
There is an underlying assumption to this, however: “when everything about the detail is just fine.” What if everything about the detail is not just fine? Then, to be successful, our ability to abstract must be combined with our ability to un-abstract. Some people use the word deconstruct—the ability to go from the abstraction back to its component parts.
Some have vomit-inducing associations with the term deconstruction. Still, it’s a good word and we should take it.
Two stories come to mind.
The first involves a trip through Arizona the first author made a long time ago in the hottest part of the summer. At the time I was living in Palo Alto, California, where the temperature tends to be mild almost always. I knew enough to take the car to a mechanic before making the trip, and I told him to check the cooling system. That was the abstraction: cooling system. What I had not mastered was that the capability of a cooling system for Palo Alto, California is not the same as the capability of a cooling system for the summer deserts of Arizona. The result: two days in Deer Lodge, Arizona (population 3), waiting for a head gasket to be shipped in.
The second story (perhaps apocryphal) is supposed to have happened during the infancy of electric power generation. General Electric Co. was having trouble with one of its huge electric power generators and did not know what to do. On the front of the generator were lots of dials containing lots of information, and lots of screws that could be rotated clockwise or counterclockwise as the operator wished. Something on the other side of the wall of dials and screws was malfunctioning and no one knew what to do. So, as the story goes, they called in one of the early giants in the electric power industry. He looked at the dials and listened to the noises for a minute, then took a small pocket screwdriver out of his geek pack and rotated one screw 35 degrees counterclockwise. The problem immediately went away. He submitted a bill for $1,000 (a lot of money in those days) without any elaboration. The controller found the bill for two minutes’ work a little unsettling, and asked for further clarification. Back came the new bill:
Turning a screw 35 degrees counterclockwise: $0.75
Knowing which screw to turn and by how much: $999.25
In both stories the message is the same. It is more efficient to think of entities as abstractions. One does not want to get bogged down in details unecessarily. And as long as nothing untoward happens, we are OK. If I had never tried to make the trip to Arizona, the abstraction “cooling system” would have been sufficient. If the electric power generator never malfunctioned, there would have been no need for the power engineering guru’s deeper understanding.
If you can understand the principle of abstraction and the black pill, then you will understand why America’s healthcare and infrastructure is in such bad shape. If you can understand the Pyrrhic cycle, you will understand that this is the inevitable fate of empires.