Is software the last craft of mankind?
As we enter 2015, the world is vibrating with activity in all fields enabled by software. Basically no activity happens without software-controlled, software-designed or software-assembled components.
Once upon a time in Greece, around the year 2000, I had a memorable discussion with a friend. He argued that the future was diverse, and that the big questions of the future could lie in energy. I proclaimed that the future belonged to software. There was no way it wouldn’t be huge, I maintained.
The divine craft
There is a fundamental difference between software development and all other crafts or engineering disciplines invented by mankind. Software is about instructions. You could say it’s a meta craft. Software development is the craft of making instructions. Every other craft is about making something tangible or concrete, like carpenting a chair or writing a book. The crafting of instructions is different.
What makes life so special? DNA. The instructions to successfully and reliably build and run an extremely complex multi-trillion cell organism.
It’s truly mind-blowing. And it’s all about instructions, just like software.
Regardless of religious beliefs, I think it makes sense to call software development the divine craft, as it infuses the programmer with abilities normally associated with deities. Examples include creating complex behaviour, making mechanical devices seem filled with life, and the arrangement of matter in unprecedented scale bounded only by time and energy.
The great misunderstanding
While there is a lot of impressive work being done in technology these days, the true revolution is not about robotics, drones, space vehicles or self-driving cars. Workers are not being replaced by robots. They are being replaced by increasingly advanced software; robots are just tools or devices used by software.
The unbounded enabler
As we enter 2015, the world is vibrating with activity in all fields enabled by software. Basically no activity happens without software-controlled, software-designed or software-assembled components. Devices interpreting unambiguous instructions are everywhere, and they are limited, so far, in form and behaviour primarily by human imagination.
“Note that fictional resimulation is strictly forbidden. If you have reason to believe that you may be a fictional character, you must contact the city immediately.” — Accelerando by Charles Stross
What about research? Science? Original ideas? These activities are already highly augmented by software, and human learning, thinking and communication methods will be vastly surpassed by computing devices with the right kind of software. Billions of experimental simulations per second, on subatomic level, will yield breakthroughs unimaginable. Humans will at best be semi-relevant directors, coordinating an orchestra of superior thinkers. Fusion power, or whatever energy source replaces oil, will undoubtedly in many aspects be enabled by software.
On the practical value of softare
Just like freely shared knowledge, freely shared software should be at least proportionally valuable to the number of individuals benefiting from it, and potentially valuable, at least, proportionally to the size mankind. And as the number of humans and programs creating software increases, the total value of our collective piles of instructions probably grows super-linearly.
The true value of software is hidden in many, if not all industries. Or the world economy if you like. Endless efficiency gains, tax automation, billing systems, algorithm-assisted design and previously unthinkable products are all fruits of software development — the crafting of instructions. The internet, a huge catalyst and enabler for humanity, is largely enabled by software — from the lowest level of bits reliably traversing optical fibers, to the higher levels of general data exchange and social media applications.
What else is there?
“Everything that can be invented has been invented.” — Charles Holland Duell, 1899 (misquote)
A couple of years ago I voiced this very idea—that software is some sort of final endeavour for mankind—to fellow programmers. Much to my surprise several of them were sceptical and rejected the idea that we are uncovering the ultimate enabler.
“In my opinion, all previous advances in the various lines of invention will appear totally insignificant when compared with those which the present century will witness. I almost wish that I might live my life over again to see the wonders which are at the threshold.” — Charles Holland Duell, 1902
Perhaps I’m blinded or overwhelmed by the explosive growth of, supposedly, just another engineering field. However, due to the higher-order nature of instructions, and the absence of anything like it, I remain convinced that software development in retrospect will be viewed as the most significant, and possibly the last significant event in human history.
Regardless of the details and how we might look at current events in the far future, now must be the most exciting time, so far, to be alive.