top of page
  • Writer's pictureRobin Alex Panicker

Software bugs - some history

Updated: Jan 13

That computer programs could have errors is a thought as old as computers. In a note dated 1843, Countess Ada Lovelace, world's first computer programmer, explained how Charles Babbage's Analytical engine could generate wrong output not because of any mistake with the device itself, but because it could be given wrong instructions. No wonder one of the most common and important features in programming languages is 'error handling'.

The first ever written reference, as available today, of 'bugs' is in a letter written by Thomas Alva Edison to his colleague in 1878. No, not the living 'bugs'. This is about 'bugs' as in 'failures', 'errors', unexpected results' in the non-living world of atoms and bits.

Edison writes ...

It has been just so in all of my inventions. The first step is an intuition, and comes with a burst, then difficulties arise—this thing gives out and [it is] then that "Bugs"—as such little faults and difficulties are called—show themselves and months of intense watching, study and labor are requisite before commercial success or failure is certainly reached.

Those days it meant mechanical errors and problems. First time the term was used in computer domain was in 1947. This was when Grace Hopper reported the root cause of a problem in the electromechanical computer Harvard Mark II to the presence of a moth trapped in a relay. Soon the word entered the common lexicon of computer engineers. Initially the term was used for hardware problems.

But it was the software engineers who took 'bugs' to its current popularity. Now we even have a whole industry built around software bugs. This includes bug detection, tracking, resolution, testing and so on. The objective is to provide the end users with a clean experience by early detection and fixing of bugs. The interesting fact is, as more bugs get fixed, even more bugs manifest.

Team Finotes is happy and proud to be part of this 'bug' industry.

Blog for Mobile App Developers, Testers and App Owners


This blog is from Finotes Team. Finotes is a lightweight mobile APM and bug detection tool for iOS and Android apps.

In this blog we talk about iOS and Android app development technologies, languages and frameworks like Java, Kotlin, Swift, Objective-C, Dart and Flutter that are used to build mobile apps. Read articles from Finotes team about good programming and software engineering practices, testing and QA practices, performance issues and bugs, concepts and techniques. 

bottom of page