Note: this post is part of series about the foundations for Code Inspector
We, as humans, believe we are smart and intelligent. Granted, we can be amazing creatures capable of the best and the worst. We can strap ourselves to a giant ass rocket and go to the moon. The same human machine can inadvertently kill itself while taking a selfie.
We are inconsistent in our level of achievement.
When it comes to programming, engineers believe they know better than anyone else (even more than the machine) how to produce efficient code. Years ago, developers were writing assembly code, claiming that the C compiler was producing less efficient code. Unfortunately, even if they achieved to be faster sometimes, it lead to having code that is harder to maintain and is quickly being outdated (in terms of performance and maintenance) by compiler optimizations. That led to some questions from programmers wondering how C or C++ code can be faster than their own assembly code (example).
Some may believe humans may outperform machines on small and repetitive tasks but the reality is different.
We have proof every day about how we fail at doing repetitive tasks that we know well. We know the road around our home but we will have 77% of accidents less than 15 miles around our home (source). Each year, more than 30,000 persons die on the road each year because of human failure (source). Even when we have rigorous training like in the aviation industry, the vast majority of failure comes from humans factors: 88% of plane crashes are attributed to pilot errors (source).
Humans are fallible by design.
We started to automate the boring tasks. Machines are producing goods with an amazing quality. Planes are flying themselves with little to no guidance. Cars are now equipped with autopilot which keeps your vehicle in the lane better than any human could do. The major blocker to speed up the acceleration of these technologies is our acceptance. Keep in mind that no so long ago, lift were operated by specialized workers (source) and they were also making mistakes (an interesting podcast about it). Who has any concern about safety when entering an elevator these days?
Machines are better than humans at small, boring and repetitive tasks.
The human machine is fallible by design. And this is what makes it so wonderful. We do stupid things, either by omission (we forget to do something) or commission (we do something we did not intend to do). This is why you sometimes love or hate people. As humans, we need to focus on complex problems and delegate to machines repetitive and automatable tasks.
Next article: The machine is better than you