20 December 2009

what is a legacy system?

from various web sites: "old computer system", "used generically to distinguish the existing or old system from the new or planned system", "existing or inherited system", "based on mainframe computer or older programming languages", "has a considerable investment in", "old or outdated", "original designers and implementors are no longer available to perform the system's maintenance"...

some years ago, i read a definition along the lines of, "no suite of tests that confirm its functionality." That was an interesting definition to me, though out of the mainstream. It also means that any just-deployed system could qualify.

I think the last one up there captures it best, though it's incomplete. imho, a legacy system is one where either 1) some component of the system limits changes, 2) the failure of a hardware component would be critical, or 3) the system cannot be extended in a reasonable manner.

in #1, I'm including in that list a lack of understanding of the system, such as when the original designers are long gone. in #2, I'm thinking of, say, an outdated compiler would be unusable should an outdated hardware piece fail (and cannot be replaced by a new piece, only another used piece).

i do not accept that a system is legacy just because of its age, or someone's desire to replace it. If an APL system written in 1978, still in production, can be compiled, extended, and deployed, and if the tools needed to maintain it still install and run on a new Dell workstation under, say, Windows 7, then what's legacy about it?

sadly, my dual g5 powermac PPC, which i bought in 2004 and is my main music machine -- and which I just upgraded to 8 gig RAM -- is about to become legacy. I just read that Digidesign, with their release of ProTools 8.0.3, is now supporting only Intel machines. Further, Apple themselves have abandoned it by requiring Intel for Snow Leopard. Though I can still run Tiger and the PT 7.3 I currently have installed, I am locked out of future changes.

it's too bad -- it's still a very capable machine.


pyker said...

Well, as commonly used in investment banking technology, "legacy" is pretty much any system that is being replaced, or even people are thinking about replacing, or even want to replace. Basically if you'd rather be writing the replacement instead of extending the current system, the current system is legacy. Usually claims of non-extensibility are false.

zim said...

yeah, i think that definition is a little absurd.

"Legacy code" often differs from its suggested alternative by actually working and scaling. -- Bjarne Stroustrup

JustJoeP said...

Back in the 1990s, I was playing ALOT of Mechwarrior on my old 486 Pentium. I got a "Sidewinder" MS Joystick, so I could easily run in one direction, and fire in a different one. The MS Sidewinder had Win95 software, on a 3-1/2 inch floppy, and hardware configured in a 10 pin, RS232 connector.

Although it's a nice piece of gaming hardware, the MS Sidewinder joystick is now part of a legacy system. RS232 to USB converter did not work, my ancient 3-1/2 inch USB connected drive didn't work, and after searching an entire Saturday afternoon last January, I was unable to find even a Russian patch to run it on an XP or Vista box. Sigh.

One good thing about such obsolescence, from a myopic view point, is that I rarely play video games anymore.

Bjarne's quote above brings a smile to my face. =)