It is always interesting to see an extreme opinion on legacy languages, such as The mainframe is not evil, but COBOL is… by James McGovern . Especially when they are dead wrong, or at the very least, misguided.
Most of the reasons listed on why COBOL really is evil (like ‘everything is a MOVE’, ‘Data layer is too tightly coupled’, etc.) can just as easily be applied to any modern programming platform. Ruby on Rails is all about coupling the data layer and has anyone ever figured out how many lines it takes in an EJB to write a Hello World? Without spoiling the surprise: a lot.
The problem with COBOL is not the code, nor the language and not even the mainframe. The problem is the people programming it. Nearly all COBOL programs out there follow programming paradigms which were very relevant about 20 years ago:
Computer! Take this crazy fixed width file filled with customers and produce another file with the same data and an added column to mark the customers that have overdue payments.
Now that we are up to our ears with computing power and network bandwidth, we much rather like to have realtime conversations:
Computer! Is ‘John Doe’ overdue? Hmm… And what about ‘Jane Doe’? Sweet.
The inherent batch processing embedded in legacy system does not exist by virtue of the programming platform, it is there because people coded it that way. And the reason they coded it that way is because it was the reigning paradigm. Which is why I should really blame an abstract entity such as the ‘batch processing paradigm’ for being evil, but that would be not as catchy as a title.
At MAKE, we modernize legacy system usually to the JEE platform. But we would love to modernize one to from batch-COBOL to realtime-COBOL one of these days. You know, just for the heck of it.
- Mik Lernout
PS: Some of my friends are COBOL programmers and they are really nice people, but this blogosphere-conversation-thing does not work without some controversy


5 responses so far ↓
Are programmers the problem? » Smart (Enough) Systems, the blog // June 24, 2008 at 12:46 am |
[...] was more discussion in the blogosphere about the James McGovern COBOL is Evil post – COBOL is not evil, but COBOL programmers are. Now I already posted a response to James’ post (Why don’t you replace COBOL with [...]
James Taylor // June 24, 2008 at 12:47 am |
An interesting post. I had already responded to James’ post (http://smartenoughsystems.com/wp/2008/06/13/why-dont-you-replace-cobol-with-something-useful-not-java/) but yours made me write some more – this time about programmers (http://smartenoughsystems.com/wp/2008/06/23/are-programmers-the-problem/)
Enjoy
JT
James Taylor
Author, with Neil Raden, of Smart (enough) Systems
shortbaldman // June 24, 2008 at 8:21 am |
We are not evil or strange! Well, maybe not. Once I was telling someone that I had written an 8080 disassembler in COBOL. He didn’t believe me. Worse than that was the fact that I still had the source code sitting in a quiet subdirectory on my hard drive, 10 years after I had written it.
miklernout // June 24, 2008 at 11:46 pm |
Funny!
Writing disassemblers in COBOL is pretty evil in my book
Jean-Guy Faubert // July 24, 2008 at 10:32 pm |
I’m one of those evil cobol engineers that you refer to as nice people. May I remind the “Latest” cup of joe developers, that our evil bent systems, were constructed 20 – 30 years ago! Need I say more. OK, I shall — and yes, continue to run most of the fortune 500 company back office systems today. May the F1F0 bits and bytes continue to live on the hearts of those that will never need to understand them, because, those named evil one’s cracked that code a long time ago, knowing that those of today, just couldn’t for the life of them, write a disassembler for cobol.
Your truly
Evil Can-Evil