AUTHOR: <lngnmn2@yahoo.com>
First of all, abstraction barriers are very real (not merely abstract notions) and they are liteterally everywhere (at all levels, from molecular to social).
The “most real” abstraction barrier is how what we call “atoms” are “used” by molecular (cell) biology. For cells atoms are is how ancient people used to conceptualize them - an atom is indivisible, indestructive, eternal, “just is”.
More precisely, cell biology “is not concerned” with what atoms “really are” and use them as an abstraction, provided that there is no one to “see this”, aside from an “higher level” intelligent observer.
The behaviors which each atom exhibit (in the observer’s terminology – the “interfaces” that “atoms provide”) are “stable enough” to build upon.
So, a “physical” abstraction and an abstraction of the mind are similar (in principles), being this much distant from one another, and this is not a random coincidence. The mind of an intelligent observer captures and generalizes emergent common patterns, and abstraction barriers are one of the most common patterns out there.
An abstraction barrier, as a metaphor, is a “partition” which has two sides. Conceptually (in principle) it has an “observable behaviors” (an “interface”) at one side, and hidden actual “implementation” at the other. The abstraction must be non-leaking to be a proper one. We tend to call them a “black box abstraction”.
The oldest and most prominent “proper abstraction” is how people interact and even “communicate” with the world of the dead since beginning of time.
Again, this is a perfect “impenetrable” completely “black box” abstraction made out of words of a language and shared immaterial concepts, which no implementation whatsoever – a pure abstract interface (set of observable behaviors), that every human culture produced.
I have a Tibetan friend who used to interact with the spirits of the dead on burrial grounds (Tibetans have no cemeteries, but they “know” the locations where spirits are) using some special items (utensils) and “words” of power, which somehow “reach” the other world.
He, literally, uses a public “abstract interface”, and never concerned himself about the implementation details.
So, in general, at a much higher (social) level, we have language-based “abstract interfaces”, (made out of words associated with make-believe concepts) while very few see and understand them as such.
Again, as long as an abstraction is non-leaking it can be used. The barrier is penetrable (by the interface being used), but the implementation is completely hidden and can even be non-existent.
Another example of abstraction is traditional Chinese “medicine”. It is based on a set of grossly oversimplified, (even bordering naive) abstract notions superimposed on the actual vastly complex reality of batteries, viruses and pathogens.
They use the notions of an imbalance (the right in principle but too abstract) and of the opposites “hot/cold”, “sweet/sour”, etc, and an associated set of rules (oh look, we have an abstract interpreter here).
Now, how and why this “works” to any extent? Because while the abstract interface being used is naive, the way it being superimposed and used “maps to” something real, namely attempts to restore the broken homeostasis by taking appropriate actions, which are usually to change what one intakes along with required behavioral changes.
This is an actual example of how abstract interfaces actually work, without concerns of what is actually going on at the “implementation side”.
Freudian “psychology” and Marxism are examples of whole abstract theories (that does not care about actual implementations), which are the root of all evil and the literal plague of the last century. Almost everyone is an abstract theorist nowadays, including these race and gender theories. Fucking imbeciles.
Another canonical example is how the actual wiring of a CPU is completely separated by a few layers of abstraction barriers (both physical and informational) from the level of the code it executes. There is no way in principle to penetrate through these barriers ever.
More generally, every generalized abstract interpreter implies (establishes and is based upon) such kind of a necessary abstraction barrier, which separates and hides the implementation.
As the popular meme goes “Abstraction is the essence of programming”. Well, not just of programming, but of almost everything that is out there.
Programming inevitable has to be based on this universal notion because it is everywhere in the actual reality.
A hierarchy of layers upon layers as a universal “architecture of complexity” is built using “penetrable partitions of barriers”, which corresponds to cell membranes, organ’s outer layers, etc, etc. In short, interfaces, interfaces everywhere.
The word “abstraction” itself is grossly overloaded (with liberal arts and humanities bullshit) and causes a lot of confusion, but once we are able to trace the concepts back to What Is, everything becomes clear and “clicks”.
One more time, “abstraction barriers” (non-leaking abstract interfaces and corresponding modules – ADTs) is the essence of programming is because they are the essence of everything What Is at all level, from molecular to social.
Think about it next time you open a code editor.