
The real voyage of discovery consists not in seeking new landscapes, but in having new eyes.
Marcel Proust
Humans create mental models to make sense of the world. The thing is that different people experience the world differently. When you shift your perspective, you begin to see the world in a whole new way. This is why philosophers have tried for centuries to search for the truth. They had the hope of not being troubled by a whole new different perspective — a stable objective and absolute truth instead of a subjective and relative one.
This can be rather unsettling. Human progress, however, has depended in major paradigm shifts. Yet, some fundamental ideas still endure — such as Platonic forms. Since we are in the business of creating software, this notion of enduring fundamentals is an integral part of the craft. It is quite useful for a programmer to also be a philosopher.
In this exploration, we take the fundamental element of a system as a node of intelligence. This is a higher-level abstraction of an active component that is alive. Active means that it will initiate action — it has agency. Alive means that its internal state can change without provocation.
This is quite a bit different from an object-oriented view which — for our purposes — is essentially an encapsulation mechanism. It is worth remebering that we view objects as passive. Someone needs to send a message to an object for it to do something.
Here, we take a higher view than thinking of computation as a combination of data and functions. In practical terms it is, but in terms of what we want to model it is not. We are looking for a bigger picture bird’s eye view that helps us design and understand languages and systems.
We take the analogous situation of our conception of the atom. While we know that electrons, protons, neutrons and other constituents exist, we take the fundamental unit to be an atom. Yes, data and functions are fundamental in computing. But, we choose to operate at the level of a node of intelligence as the fundamental unit. We will explore the ramifications.