News for hackers. Stuff that matters.
Re:The Problem of Legacy IT Systems by nine_k on Tuesday October 13, 2020 @12:55PM (#24767394)
I'm typing this from a legacy browser (first released 18 years ago) running on a legacy OS (first released 29 years ago, a rehash of a design from 50+ years), and will switch to my legacy editor (first released 44 years ago) to continue work.
Re:The Problem of Legacy IT Systems by coddle-hark on Tuesday October 13, 2020 @01:14PM (#24767563)
Firefox, Linux, and vi aren't "legacy" software by any reasonable definition of the word, so no you're not.
Re:The Problem of Legacy IT Systems by nine_k on Tuesday October 13, 2020 @01:37PM (#24767803)
Emacs; vi is older.

But all of them still contain crucial central parts that have been created decades ago, and famously have not been redone from scratch in their history, unlike, say, Windows or vim.

I don't see what is the principal difference between these pieces of software, and some COBOL-based accounting packages still doing heavy lifting in s bank, while being actively maintained and even receiving new features.

Re:The Problem of Legacy IT Systems by Jtsummers on Tuesday October 13, 2020 @04:27PM (#24769946)
Legacy systems aren't just old. Old systems that are maintained aren't the legacy systems that create problems, and really aren't legacy systems at all (just old).

It's the old systems that "just work" until they don't. Where they run on old hardware, and the compiler is possibly on something even older. You can't port them to a new system because you may not have a compiler or even the source code. Or the source code is heavily dependent on the original physical hardware. Maybe it runs in a VM, if it was on an IBM mainframe it probably does. But that doesn't fix the problem of old code that can't be easily altered at this point in time.

I like Michael Feathers' definition of legacy code being code without tests. But it's not just tests, it's comprehensibility and (to a lesser extent) portability. Tests help to make a system comprehensible and portable. Since architecting for testing requires better modularity which makes things both more portable and more comprehensible in most cases. Portability means proper abstraction over the hardware or other things so that the core logic is separable. Imagine if the IRS's tax system were written in this way, where the hard-to-port part would be the interface with databases and networks, but the core part would be easily portable (or more easily portable) to another OS because it'd be properly separated. We could port that core to another system and change how it gets called more easily. But if you tied your software to a specific DB or a specific storage medium (like it has to be a tape drive, or something that behaves like one) you've reduced portability, and created the start of a legacy system.

Re:The Problem of Legacy IT Systems by ByteJockey on Tuesday October 13, 2020 @10:08PM (#24772456)
Vi and Emacs were both originally released in 1976.
Re:The Problem of Legacy IT Systems by a1369209993 on Tuesday October 13, 2020 @06:43PM (#24771155)
> Firefox, [...] aren't "legacy"

It is if you're on the most recent working version (3.6).

Re:The Problem of Legacy IT Systems by Waterfall on Tuesday October 13, 2020 @01:21PM (#24767634)
My iPhone 12 is legacy because it's based on an iPhone released in 2007 and the software is also legacy because it's based on Unix which is 50+ years old. Glass is thousands of years old so it's legacy technology and the molecules are the same as those from the age of dinosaurs so it's very very legacy.