The World’s Oldest Software Bugs

When it comes to software developing and engineering, bugs are par for the course. Most developers are as comfortable with bugs as Tarzan is with apes and in most cases, the bugs are quickly detected and dealt with by other heroic ‘bug-squashing’ developers and programmers. But what happens to the one’s that aren’t? Let’s take a look at the top three oldest software bugs, one of which still hasn’t been fixed yet:

The head bug – by OpenBSD

In bug-terms, the head bug took a lifetime to be fixed – 37 years and 2 months to be exact. Future Sun Microsystem’s co-founder, Bill Joy, initially wrote the head function for OpenBSD in August 1977. It was only discovered in 1992 that “under certain circumstances, it could raise an error due to the use of a function called freopen to open files and streams for reading, which didn’t play nicely with stdin” writes IT World Editor, Phil Johnson. After various attempts to fix it, finally in October 2014 Brainiac, Ingo Schwarze, figured out that if you merge an existing fix (created some years earlier which was unsuccessful) into OpenBSD, the head bug problem was solved.

The buffer overflow issue – by YACC

When Stephen Johnson developed Yet Another Compiler Compiler (YACC) in 1975 for AT & T Bell Labs, it was intended as a language compiler. First written in B language and then in C, YACC was the default parser-generator for years. “In 2008, Otto Moerbeek, an OpenBSD developer, was trying to track down why some large C++ programs on Sparc64 systems would fail with an internal compiler error. It turned out… that Johnson’s YACC code was to blame” writes Johnson. Moerbeek was able to fix the problem in OpenBSD just over 33 years after it was created by Johnson.

The year 1900 problem – by Microsoft

27 years on, Excel’s year 1900 bug lives on. “When Microsoft first created Excel for Windows in the mid-1980’s, it was taking on… IBM’s Lotus 1-2-3. In order to win over Lotus users, Microsoft wanted to make porting spreadsheets from Lotus as easy as possible. That meant copying over a known Lotus bug into Excel: namely, that it treated the year 1900 as a leap year” writes Johnson. For ease of use, and to win Lotus-user approval quickly, Microsoft set its epoch at January 0, 1900 meaning that “any date from January 1 to February 28 of that year was incorrectly represented,” says Johnson. The brains at Microsoft chose to live with the bug rather than create havoc trying to fix it, hence the year 1900 problem has lived on without ever being fixed since Microsoft’s first release of Excel for Windows in 1987.

Do you find this blog interesting? Keen to write your name in the history books of well-known ‘bug-fixers’? Send your CV to e-Merge today and let us make you famous.