Legacy code
"...Of the past, let us wipe the slate clean..." *
“Legacy code” is a term often used derogatorily to characterize code
that is written in a language or style that—
the speaker/writer considers outdated, or—
is competing with something sold/promoted by the speaker/writer.
“Legacy code” often differs from its suggested alternative
by actually working and scaling1.
It has always been the same: Developers abhor code maintenance, be it repairing their own or—oh, dear—a piece of worthless #%^$*&@! someone else had created2…
Over time, hype and FOMO had taken over [even] management heads, who find it a good idea to rush into new domains or replace their products—not because theirs do not work, are incompatible, not scalable, or otherwise broken, malfunctioning, or failing to meet customers’ requirements or corporation’s goals3.
This tendency to discard or replace existing, working software in favor of a “contemporary,” “more interesting,” “modern” [or other adjectives] piece is well-captured in this old one:
These engineers were going on a vacation in this car,
when suddenly—the car stopped.The mechanical engineer said:
“I’ll hop out, roll my sleeves, lift the hood, and fix this in a jiffy.”The electrical engineer said:
“Wait a minute…we have here the car manual;
let’s check first how to do this by the book…”.The logistics engineer said:
“Step out and sit down; I’ll open the map and find a nearby car garage…”.The software engineer said:
“Naaahhh, turn the car off, turn it back on, all will be fine…”.The Microsoft engineer leaned back and sighed:
“Before you do anything—close all windows, get out and back in.”The industrial engineer stepped out, straightened his tie,
looked down the road and said:
”Hey, what do you know…
There’s a new car just coming…!4”
* Any allusion to The Internationale or related ideological references are reader’s responsibility…
Bjarne Stroustrup, the Danish computer scientist, is known for the development of the C++ programming language.
“…no documentation, either in code or outside, meaningless names, who the **** let this **** ***** ***** person touch a keyboard…. and why…???”
Sometimes, “legacy” software does become FUBAR.
Or it’s so outdated it’s no longer worth keeping.
Sure.
Example #1:
I worked in an organization where they had a module originally written in APL.
Turned out, that the developer “saved time” by fixing the binary source instead of “wasting time” on compilations.
One such ‘fix’ was done a day before he left the organization.
Something didn’t look quite fine to someone, so they recompiled the code.
The program died.
[Not sure it was ever rewritten, I must say…]
Example #2:
I had a nice application I created using MS Access.
It was quite an elaborated mechanism, with a separate data source, and forms, and reports, and charts…
Then, Microsoft released a new version; they had decided that some components I used were no longer necessary.
My application died.
[I recreated such multiple times, but will keep this post and environment decent.]
There are many (many!) versions of this, of course.
the important thing is always the punchline…




