Generally speaking, I think that when most people look at all the shiny flashy electronic thingamabobs that surround us, they assume that the software running on these gadgets and gizmos is as fresh and bushy-tailed as are the devices themselves. Sad to relate, this may not be the case…
As I wrote in an earlier column (see: Startup Cracks MultiCore, Thread Programming Problem ):
If a lay person thinks about the Internet at all, they tend to assume that it's composed of bright, shiny, recently-created software applications that use the latest and greatest programming techniques and that are honed for maximum efficiency. The truth is much grimmer. In the real world, things like bedazzling user interfaces hide the fact that the entire Internet universe is composed of a pyramid of open-source software applications. The part we see is the brightly polished pinnacle at the top. As we plunge down layer-by-layer into the depths, things become darker and dingier.
Believe it or not, at the lowest levels, we find small worker-bee-type applications dating from as far back at the 1970s. Since these were originally created using antiquated programming techniques with single-core 8-bit processor targets in mind, you might not be too surprised to discover that they leave some room for improvement.
Are the “worker-bee-type applications dating from as far back at the 1970s” the oldest pieces of code that are still in regular, real-world use today? Until this morning, if someone had asked me, I might have guessed that they were close. It turns out, however, that they aren’t even in the ballpark.
My chum, Jay Dowling, just pointed me toward this column, which is attributed to Adarsh Verma and which talks about a program called MOCAS. According to the column, MOCAS is currently believed to be the world's oldest computer program that's remains in active use. It seems that MOCAS (Mechanization of Contract Administration Services) is still used by the United States Department of Defense running on an IBM 2098 model E-10 mainframe.
On the one hand, this a rather interesting article. On the other hand, it appears to have some holes. For example, the date the article was posted is January 31, 2017 (yesterday as I pen these words), but it repeatedly says that MOCAS was launched in 1958, and augments this by saying this was “57 years ago.” Hmmm, I may not be a math wiz, but 1958 is 59 years ago according to the spiffy state-of-the-art calculator in my noggin.
Reading the comments associated with Adarsh's column, someone noted that this is actually a reworked version of this 2015 article, which was written by Glenn Fleishman. This would certainly explain the date discrepancy, but not — I fear — the fact that Adarsh apparently couldn’t be bothered to take the time to ponder what he was copying or to provide a link to the original piece.
Adarsh's article also states that MOCAS was written in COBOL, but another commenter noted that: “According to Wikipedia, the COBOL language wasn't developed until 1959 and compilers were not available until 1960.” Well, this would be a bit of a poser, except that Glenn's original piece did note that: “MOCAS is written in COBOL, a language that wasn’t formally approved until a couple of years later, and it was likely initially created in a similar predecessor called FLOW-MATIC…”
At the end of the day, I would suggest that people look at Adarsh's cloned column to see a prime example of how not to re-spin someone else's work, and I would then recommend they look at Glenn's original offering to see how an article of this type should be researched and presented. For example, Glenn notes that “MOCAS was the oldest software we could verify, but it may not be the oldest still in routine use,” and he then goes on to present some other possible contenders (or sources thereof).
What would be really cool would be if members of the Embedded.com community could come up with examples of code that pre-date MOCAS and that are still in regular use today.