The Mess We're In
It’s safe to say that today the computing landscape is a mess.
We’ve built our everyday lives around devices that are composed of layers upon layers of abstractions. Each layer depending on — trusting — that nothing underneath has fucked up too badly.
[ Layer 2381: "I hope they didn't fuck up down there" ] [ Layer 2380: "I hope they didn't fuck up down there" ] [ Layer 2379: "I hope they didn't fuck up down there" ] . . . [ Layer 1: "Boy, I hope I didn't fuck up" ]
This obviously can rapidly go wrong: it only takes one fuck-up until the whole thing is totally unreliable.
The weakest link.
And we trust these systems with our cars, planes and health and nukes.
The reason we’ve designed systems this way is actually pretty logical.
Because it’s more efficient.
Instead of reinventing the wheel 2381 times we just build on top of existing solutions and make things more functional.
When Toyota starts designing their new car, they don’t design the motor, gearbox and the steel alloy from scratch.
They build upon the previous years model.
And that makes sense.
But they’re adding another layer. And hoping no one before them has fucked up too badly.
It’s the same with computing. Layer after layer that trust the ones before them.
I’m not the first person to point this out and many smart people proposed solutions to this fundamental flaw in our systems.
I leave you with this talk from Joe Armstrong, on how we can fix some of the mess we’ve found our selves in.