Why is COBOL a ‘legacy’ language?

I am of the Structured Programming Era. The first languages I coded in were COBOL, FORTRAN (not Fortran, it was still an all-capital-letters language back then), PL/1, RPG, APL, Smalltalk and VM/SP Assembler. That was long, long before Bjarne Stroustrup created C++.

Ahh. Those were the days. Kids today, they don’t do much programming in those languages, preferring new-fangled innovations like C#, Java, Ruby, Perl, PHP, Python. Oh, and something called “Visual Basic.”

Frankly, the choice of languages is like the choice of tools in my big Sears toolchest: Have lots of them, know how to use them, and use the right one for the job. If you’re developing rich Internet applications, maybe you want some JavaScript or Ruby. If you’re programming an application server, maybe you want Java or C#. If you’re developing reports, why not use RPG or COBOL? Applications written in those older languages haven’t magically stopped working just because newer languages have appeared.

That’s why I’m delighted to read stories like “Company ports COBOL to Windows Azure cloud,” written by SD Times’ David Worthington. It’s great that Micro Focus continues to bring the venerable language into new run-time environments.

Venerable language. Not legacy language, a label I so often see applied to COBOL and its peers. Legacy is a pejorative term. It implies something that has lived out its usefulness, but which we’re still required to support until we can finally rip it out with a backhoe. Legacy platforms. Legacy applications, Legacy languages. Bah!

There’s nothing legacy about COBOL, just like there’s nothing legacy about mainframes (the other context where the word is casually bandied about). COBOL is a great language which has not outlived its usefulness.

Now that we’ve got that straight, who wants to talk about Smalltalk?

Z Trek Copyright (c) Alan Zeichick
1 reply
  1. Chris
    Chris says:

    While I agree in part with your thoughts on this subject, let me ask another simple question.
    Can you take unmodified (aside from any need to include certain files) COBOL code from a mainframe, and put it into Micro-Focus COBOL on a PC, and it will run exactly as it did before?

    Admittedly I’ve never written a line of COBOL, but I have converted some COBOL over into C/C++.

    I guess you’re also a proponent of using nested borderless tables for HTML page layouts as well?

    FWIW, everything I stated was more tongue-in-cheek than anything. I don’t consider COBOL itself to be “legacy”. Rather I view “legacy” applications as applications that have been around for a while with little to no modifications.

Comments are closed.