Why do we call software errors as "bugs"?
"Bugs" are errors, flaws, issues or faults in software or hardware. If a bug is not fixed, alone or together with other bugs, it can grow into vulnerability, and, if exploit would be developed, into a real threat. But let's speak today about the etymology of the word "bug". It is exciting:)
At least the word "bug" has been used since 1870th when Thomas Edison used it to describe "little faults and difficulties" that must be resolved before "commercial success is reached". The story gives us a lot of other examples when engineers and entrepreneur called something faulty as a having "bug" or "buggy".
In many sources, the origination of the word is linked to searching for problems in first computers the size of a room and the weight of a tank. Let's stop here for a while and jump back to 1950s. One of the first general-purpose computers was Mark II (after Mark I and before Mark III). It could read instructions from a tape (that is why it is general-purpose) and weighed 23 tons. It was designed for and sponsored by Navy with the primary intent to calculate ballistic projectile trajectories. Its speed was 8 additions per second, what is 8Hz (comparing to current multi-core processors with 3 000 000 000 Hz = 3GHz on every core).
Mark II could handle one job for days by executing programs consisting of continuous simplest mathematical operations formulated on a tape. Because the execution of the job took so long time, someone was looking after the whole process - engineer on duty.
Mark II was more mechanical, then electronic. It used electromagnetic relays to execute switches. Those relays were mechanical things with all the inherent mechanical causes of failure. The usual cause of the error was poor contact, but by occasion, once an insect (bug) stuck in one of the relays stopping it from working correctly. An engineer on duty traced the error back to malfunctioning relay and wrote in the log journal "First actual case of bug being found".
Knowing the meaning of the word bug, it is easy to guess what is debugging. It is a process of hunting for errors in the software or hardware.
Follow me on LinkedIn, www.abocharnikov.com, Twitter, Telegram and Facebook.