How Easy Things Became Hard and Hard Things Became Easy
Hard computing problems have become either trivially easy or so impossibly difficult it’s not even worth trying anymore.
The Moderna team that first created the COVID-19 vaccine designed it in two days. It was a weekend project in January. On Friday evening we had no vaccine, just a series of TGIF memes and an upcoming weekend to look forward to. On Monday morning we had the vaccine. I’ve spent longer than that trying to vertically center text on a webpage.
I say this as a joke, but it’s also kind of true (vertically centering is annoyingly difficult. If I’m lucky, I can wrangle it with flexbox when the wind is blowing in the right direction). A wonder of the modern world is that we can do incredible things, but get stuck on basic problems. Websites boast sophisticated authentication systems, machine learning, complex algorithms and then don’t render properly in Firefox. We have nailed the difficult problems but tripped over the easy ones.
Part of this, perhaps, is that things slip through the net. We are human and we err. The reason a site might not work in Firefox is not that the developer couldn’t get it to work; it’s because they forgot to check. There are so many different browsers and orientations: Firefox, Safari, Edge, Chrome, the iPhone, the iPad (both orientations), Android devices, Opera, the browser in a Samsung Smart Fridge. Edge cases are like impossible Pokémon: you can’t catch ’em all. Once a developer is alerted to a simple rendering bug, they can usually fix it pretty easily. But trying to cover every situation in advance might not even be possible. The challenge is not one of intellect, but of thoroughness. Failure by a thousand unexpected edge cases.
We often think of coding as maths. But if it is, it’s the maths we do at primary school. Pages and pages of simple sums that you must do quickly, without a calculator. The biggest challenge is avoiding silly mistakes. We need conscientiousness more than intelligence. This applies all the way from a simple website to core security infrastructure. In 2014, Apple released a fix for a critical security bug in SSL/TLS, the fundamental security of the internet. The bug happened not because someone made a mistake…