Taking computers as the universe, where hardware determines the laws of nature and binary data are the basic substrate, we can understand the world bottom-up.
We know at each level of abstraction, at each size of particle, what rules the components follow. Binary composes to assembler, which follows rules according to the CPU’s construction. Assembler composes to higher level code. Code follows rules which, if we get them just right, begins to have output more complex than the simplicity of the rules suggests.
In the natural world our investigations take us in the opposite direction. From people to cells to proteins to DNA and molecules to atoms to neutrons to quarks… at each level, the components interact with each other according to rules. We are working to learn those rules.
Working up in computing, working down in biology and chemistry and physics, these two studies are complementary. We have 2 goals:
1) define rules for computers that result in behaviour as complex, interesting, meaningful, and productive as life
2) figure out the rules of the basic components of the natural universe, to lower and lower levels
The awesome part is that we can use computers to model the components of the natural universe. Often it takes millions of small components acting on similar rules to achieve complexity that defies the simplicity of the ruleset. To defy entropy and produce organization where there was none.
As in computing our level of abstraction increases, and our abstractions in the natural world grow more precise, they come together. This is an exciting time.