Digital “things” are not built to last
Will we lose our minds in the Cloud?
The future is digital, no doubt about it. Artificial intelligence and machine learning in all its flavors, quantum computing, cryptocurrencies, robots and automation, IoT, the list goes on, all are firmly rooted in digital. It sure looks like an interesting future!
Not without risks though. Data security, privacy, hackable toys, AGIs going rouge are some of the worries. But there is a more fundamental risk that isn’t often mentioned.
Digital is inherently fragile. Digital things break if they are not constantly maintained.
But first, let’s talk about jeans!
Jeans was originally designed for cowboys and miners who needed sturdy clothing that could withstand heavy wear and tear. They were supposed to last if not a lifetime so close enough.
The number of cowboys and miners in my social sphere is exactly zero but I assume that jeans is no longer their garment of choice. What I know for certain is that jeans today don’t last even close to a lifetime, it’s more like a year or two.
“Planned obsolescence” or “It’s in the design!”
So what happened? Well, fashion happened, “distressed looks” are not good for durability. That set aside, the fabric in most jeans today is crap, they are not designed to last, we are supposed to buy new ones. It is in the design.
It is not only jeans that are designed to have a predetermined lifespan, everything is. That was not always the case. I inherited my grandmother’s Electrolux Ankarsrum Assistant from the 40s and after 70 years of service it decided that it was time to give up. The plastic around the electrical cables just fell apart as dust. There are still spare parts, so a transplantation would keep it going.
Nothing is made to last 70 years today, that is a thing of the past. Things are made to last long enough for fashion to have moved to a new point where a new “thing” seems like a good idea anyway, ot just beyond the point where you have forgotten when you bought it and cannot question the quality.
Planned obsolescence. It’s in the design.
“The digital revolution is far more significant than the invention of writing or even of printing.”
The words are from Douglas Engelbart, internet pioneer. Pretty bold statement one might think. but we spend more than 50% of our time interacting with something digital, reality is already in minority.
Digital has become such a big part of our lives that we don’t even think about it, like air. But if you stop for a second and let it sink in, almost everything is digital! Here is a completely incomplete list as a reminder:
Digital things — hybrids and pure ❤️
Every device that has some “intelligence” is a digital thing. It contains some component that has to be programmed for the thing to work as intended. It is a physical digital thing, a hybrid.
In one end of the spectrum are coffee machines and GPS enabled dog collars, in the other quantum computers and particle accelerators, passing mobiles, self driving cars and almost everything on the way. They are physical things with a digital heart.
Then there are the pure digital things, the programs that run inside the hybrid digital things. An app on your mobile, the logic in my smoke detector that always interprets my cooking as “fire” and “danger”, the shut down sequence in a nuclear reactor. So why make this difference between hybrid and pure digital things?
The physical world change very slowly, the digital can change in an instant.
Playstation 4, a hybrid digital thing, is what it is and will feel like it sucks more and more over time although it is exactly the same as when you got it. However, the operating system that runs the hardware and the games you play are pure digital things and can be updated whenever, making the deal suck less bad.
Planned obsolescence in hybrid stuff
Allowing updates to the operating system seems like a no brainer. Getting new functionality without having to buy new hardware cannot be bad, can it? Not in itself but it creates an unintended side effect that makes uploading of our brain a risky business, we’ll come to that.
Hybrid digital things are no different than physical things, they are designed to die. They should hold together until the next shiny model is released, or at least long enough for us to have forgotten when we bought them.
It is in the design.
“Involuntary obsolescence” or “It’s not my fault!”
Digital things have another version of this, the “involuntary obsolescence”. Back to why I separated the digital things into hybrid and pure.
A hardware (iPhone) runs an operating system (iOS11) in which we run an app (Hold The Button) that loads some data (the top score). A change in any of these layers can break something in any and all of the other layers which then needs to be updated.
So here is the ugly truth:
Digital is inherently fragile. Digital things break if they are not constantly maintained. It is just a matter of time.
In other words:
Digital “things” are not built to last
Let’s face it, digital things are as far as you can get from my grandmother’s food assistant. There are challenges on so many levels, here is a breakdown.
Digital things need code to run
Duh! So there has to be a program that makes the thing work as that thing is supposed to work, there is no way around it. And where there is code there are bugs. And every update is a chance to add some more.
Different languages are more error prone than others, some design patterns and “best practices” should be sent sleeping with the fishes, there are junior and senior developers, but in the end we can all make mistakes.
Developers use Frameworks (really?)
Frameworks simplify development by taking care of some part of a digital thing so that the developer doesn’t have to. Saves a lot of time!
But it also means that your code depends on yet another thing that can change and break your digital thing. And if the developers of the framework disappears you will have to rewrite the code, since each framework is unique.
The thing runs in an operating system
Operating systems are updated quite often with new functionality. Each change on this level will probably require changes on other levels for the code to stay functional. OS updates are one more dependency to think about and that can break your thing.
Or two or even more environments
A web app depends on the browser you use. In addition to that there is almost always functionality that lives on a server, which in turn can depend on e.g. database servers and other services. Dependencies everywhere you look.
And the hardware
This is the slowest moving animal of the bunch. But still, a new iPhone means an update to iOS and there we go again.
The disappearing embedded advantage
Embedded systems, e.g. for smart home appliances, have historically had an advantage since they don’t change over its lifetime. That means that if it works from the beginning it will work in the end. No external dependencies.
That is soon a thing of the past. Embedded systems are also updated, because who doesn’t want “improvements”?. But the more things in the mix the more likely it is that they will break. How about getting a “BSOD” in a Jaguar?
Jaguar XJ Super Sport goes all Blue Screen of Death on us - Roadshow
Modern cars are no longer mere mechanical devices -- they're littered with onboard computers. We recently found this…
Hilarious, especially during a high speed car chase!
Digital things break if they are not constantly maintained. It is just a matter of time.
Making digital as robust as the physical
To generalize: digital is temporary, physical is permanent. If we want to create a future where digital things can have the same value as physical things over time then we need to make digital as robust as the physical.
Does the Cloud run Windows?
The last couple of years more and more value has been delivered as a service instead of a one time cost. That way you subscribe to have access to whatever has the value, if you stop paying then you also lose access, it isn’t yours.
That makes sense for digital services, but how about digital things? Like your mind?
Ray Kurzweil thinks that we’ll be uploading our entire minds to computers by 2045. Would you do that to a computer running Windows XP SP2?
“I lost my mind in the Cloud”
could have been the title if someone was still there to tell the story.
Forgot to pay the subscription?
Let’s say that you have digitized your mind á la Kurzweil and uploaded it to the “cloud”. Your mind is now a digital thing. Should you have to pay for that to still be yours? That doesn’t seem fair. You could pay for the service to digitize your mind but then it should be yours, independent of anyone else.
But with the current state of digital it isn’t, you can disappear by a power failure. Or an operating system update. Involuntary ego dissolution.
We don’t have to be that futuristic, let’s take crypto currency, a hard disk crash and the money is gone (keeping a backup is cheating!)
Making the code bug free
Yeah, I know how it sounds. Still, who want bugs in our brains?
There are several trends in building larger and more complex system in a more robust and maintainable way. Micro services, component and event based architectures, functional programming are all addressing specific challenges and moving in the right direction. But we are only human, we can only get that far.
The big breakthrough will be when we can use AI/machine learning to build any type of application and system. In the early days processors were programmed with binary code, then we invented low level assembly languages, and today we use a number of more abstract languages to build digital things. Under the hood it is still converted to binary code that the processor can understand.
The next level requires a new way to define functionality without code, a new language. I am not talking about AI generating human readable code or using machine learning to steal code from others (bug free, yeah right!). We need to get rid of code as we know it today and generate the binary code directly. It will do what higher level languages did for assembler. Kill, kill, kill!
Code that doesn’t change works forever
With everything else constant code will always perform the same. If it is bug free then it will be bug free forever. The main challenge here is the environment in which it runs, e.g. the operating system and hardware.
Hardware changes now and then, operating systems changes quite often which can break even bug free code. Compare that to the physical world. Sneakers you bought will not suddenly stop working because of an update of reality. The robustness of reality is unparalleled.
Digital hybrid is the future
The only way to make digital things as robust as physical things is to make them … physical.
Cryptocurrency is supposed to be a digital store of value. On your hard drive it is exposed to all kinds of risks that can wipe out the value. By storing the currency on a physical cryptocurrency wallet, a digital hybrid, these risks disappears and the digital thing inherits the pros (and cons) of a physical thing.
Back to uploading our mind, which could be seen as the most valuable we have. No upload to the cloud, but transfer to a hybrid digital thing. The hardware will not change, the software will not change, immortality here we come!
Or at least until we have to update the hardware, in would be a simple mind transfer to the new hardware. Piece of cake!
There is no hurry, 2045 is quite far away. But it is good to have a direction, a compass. Me, myself, I will focus the nearest future on developing bug free code through a combination of process, principles, architecture and AI.
What’s your plan?