Regarding legacy I have some additional comments to make. Legacy is as the word translates some thing inherited.
My opinion is the definition of legacy means in the IT world more the situation in total which has been left to the actual IT world from the early world of COBOL and even late 1401 / 1410.
In the early 1960‘s there was a huge dominance of IBM. Even COBOL was defined clearly in its ANSI limits IBM added a huge number of proprietary elements that made the complete source almost impossible to transform to another platform.
Other hardware makers like Siemens, RCA, Unisys, Bull, ICL etc. joined the marked sooner or later and came as well with proprietary add one’s. These proprietary products are now the Legacy we have to deal with.
Most of these “OLD” products are almost impossible to maintain so no documentation has been left, the people having created these products are long time in retirement or gone meanwhile.
For a fact is that a huge number of these products is pout there in the world wide market and still running. Especially in the actual market there is almost no one who can finance these developments and transformation.
To make this transformation easier we need:
Code analyzers to create some kind of documentation ( some are available on the market )
Transforming tools extracting from documentation into a basic version of Cobol
Optimizing the Basic version with a Source-Code generator to create a new platform neutral modernized solution.