I was thinking the other day about how there was a theme in my career and interests of things that all have emergent properties, this the timeline of that theme.
Physics, Where It All Began (For Me)
I first encountered emergent properties in my Master’s project for my degree in Physics. The basic idea was that there would be a few hundred particles that all spin randomly, pointing anywhere on the surface of a sphere, but when there were enough random iterations the particles would start to do things as a whole that was not expected or even predictable based on the behaviour of each individual particle. The unexpected behaviour that happened as a result of running the simulation millions of times would be the “emergent property”. It had relevance to magnetism, as when the spins all aligned, they acted like the quantum magnetic particles in a magnet.
Databases, Where I Currently Live
When I first started coding (I am calling SQL coding here, feel free to tell me I’m not a real coder, I do at parties), I thought that the best way to debug a 3,000 line chunk of code was to read the whole thing, absorb it all into my brain and then use some kind of powerful thinking to figure out what was wrong.
Eventually, I realised my pea-sized brain can’t hold 3,000 lines of code and all the logic and twists and turns that entails. Now, my debugging process is more like having a goal in mind, having the other goals of the code in mind and making changes where it seems like the changes might make sense and seeing what happens. Essentially trial and error with educated guesses (until hour 4 where I lose my mind and no longer make educated guesses and just make any old guess).
I see this as a sort of emergent behaviour as well, because each line of code of SQL performs one logical action, but when there’s thousands of lines of code leading to other thousands of lines, eventually being millions, it merges into this much larger thing that can do so much more than any one line of logic suggests. So, I create hypotheses and run tests to see if the code does what I want it to do, if it does then great, if it doesn’t then I create another test and run it again.
I used to look down on this method as brute forcing it, but there are time constraints on solving problems at work, usually weeks at most, whereas to learn the system end-to-end takes years of working on it and it changes every week anyway, so in the years I took to learn it, it would have changed by several years.
Stafford Beer And Cybernetics
I was recently reading The Unaccountability Machine, by Dan Davies, he talks about systems that have become so complex and driven by algorithms that we, as humans can’t comprehend them in their entirety.
The hero of the book is a man called Stafford Beer, who pioneered a people management system call Cybernetics, where he found ways to work with systems that we don’t understand at the gears level, by just accepting we won’t understand them fully and running tests to see what happens.
This sounds a lot like my approach to debugging code, he is using the emergent properties of systems that we don’t understand (which he calls “black boxes”) in terms of managing large companies to get better management results without understanding every single moving part of the business.
Chaos Theory
A few years ago I read a book on Chaos Theory, I think mainly because the name is so cool. If you aren’t familiar with Chaos Theory, you probably have head of the butterfly effect, potentially the most famous example of emergent properties.
It is commonly misunderstood to mean that the butterfly flaps it’s wings and then creates so much wind a hurricane appears on the other side of the world. It is instead that the tiny changes, such as those of butterfly’s wings can change the starting conditions of the weather, that in an immeasurable chain of events leads to a hurricane on the other side of the world. Which, I still think is cool.
There used to be an idea that the universe worked like a giant clockwork mechanism, so that if we could understand each and every particle and what is was doing, we could predict everything and anything that could possibly happen ever using Newtonian Mechanics. This idea was undone either by Chaos Theory of Quantum Mechanics, whichever came first, because Chaos Theory is the study of systems so complex we can’t predict things exactly, but can instead get the gist of it by accepting it’s too crazy and using statistics to guess where it’s likely to go.
Quantum Mechanics found that at the tiniest level, where particles live, we can’t know where a particle is and how fast it’s moving (technically its momentum) at the same time, also known as Heisenberg’s Uncertainty Principle. But every object you have ever touched is made of quantum particles, so when they interact together on a much large scale you get the sensible world we know, emerging from the bonkers world of Quantum Mechanics.
Quantum Mechanics and Chaos Theory both make the idea of computing a clockwork universe in its entirety impossible, because we can’t be certain of what’s going on due to the chaos or due to the lack of certainty.
Businesses And The Market
Businesses are another idea of a system where we can’t completely predict the results of the what will happen and the market is famously unpredictable, as no one knows which businesses will survive and which stocks will go on to make money.
This is built into the model of venture capital, the general idea is they invest in 100 companies and 99 fail or break even at best, then one goes AirBnB style and makes so much money, it makes the investors enough money to cover all the rest AND make huge profits.
AI
I am sure I don’t have to tell you the many ways AI can act in ways we don’t expect from generating images of people with 20 fingers, to praising Hitler. I have been slowly learning more about AI and how to keep it safe and aligned, which is seeming like an increasingly difficult problem, thanks to it’s unpredictable nature and insanely fast rate of development.