The computer is a controlled environment. None of its parts is sparingly built. For every device attached to it, there is a team that tirelessly worked to bring to life. The programmers spend the better part of their day building software that, to the best of their knowledge, will never fail. But just in case they fail or don't go as planned, the same programmers throw errors to know exactly what went wrong.
I wish my car worked like this. When one part fails, I want the dashboard to display
Error: 02434. It doesn't matter how cryptic the message is, as long as it is a quantitative message that is referenced somewhere. It could be in the car manual, on the internet, or only known by a few experts that refuse to share the information.
If there is a message displayed, to me it is not an error. It is the car telling me that there is a specific thing that went wrong when it tried to run. It is the car giving me feedback.
The thud you heard a few minutes ago was the engine falling off the car
Not all devices have this sort of feedback, but I don't complain. I work as a software developer and it is the most wonderful thing in the world. As a programmer, I can't do anything wrong before an error is thrown to my face. I used to get frustrated by this but now I joyfully embrace it. I complained that my code didn't work or that the compiler was broken. It took me a while to understand what the machine was trying to tell me.
Hey dude, that thing that you just tried to do, it was totally weird. Check out line 320, around the 15th character.
That's not an error, that's feedback. Usually it's a syntax error, or undefined variable, or worst case a segmentation fault. What matters is that my program is giving me feedback on what part needs attention.
Peer programming became hard for me at some point because I was having a hard time working next to someone debugging the application in his head instead of running the code and letting the dear compiler tell us what is going right and what is going wrong.
There is no shame in running code that fails, at least not during the development process. The big red text you see is there to get your attention so you can fix the parts of your application that need tuning. In the How to build a website from scratch series, I build a whole web framework based on that idea. I write code the way I want it to look, and I let the PHP processor tell me which part is not complete yet. It goes a very long way building your own error system.
It's because of errors that I was able to find an old hack that was stealing traffic on a website that I worked on.
If I turned on my TV and it said
Error 540 I'd know that my HDMI cable is unplugged. I plug it in and watch whatever that I want to watch. There is no time spent weeping.
Errors are a great way of getting feedback. Embrace them and be glad that when things go wrong, there is someone that was thoughtful enough to let you know.
The worse alternative is to have silent errors, which applies to the majority of products out there. Next time you see an error, remember that it is just constructive feedback.