COBOL - What am I going to do with that old COBOL?
This is an interesting topic and pretty much on everyone's radar. I get this question every day and you know what my first response is…. It depends! And by the way, This is my point of view.
IBM has been your best friend and at the same time your worst enemy when it comes to legacy languages. You can still run that 30-year-old application unchanged and that's a good thing. You haven't revisited your application to take advantage of any of the new features that have come out in the past 30 years…. That's a bad thing.
I'll probably devote a series of posts on this topic since it's a big one.
Let's list some options for our COBOL applications:
- Keep my COBOL (leave it alone)
- Update my COBOL to the latest compiler technology
- Extend my COBOL by introducing API technology
- Re-write my COBOL to a more modern Language
- Refactor my COBOL to a Cloud Hosted Environment
The first option "Keep my COBOL" to me means our COBOL applications are in a steady state. We have no plans to update our applications. They will be replaced at some time with a different technology. We will run the application to its end of life in its current state. These applications are often sitting on a back level compiler such as 4.1 or 4.2 and have not been updated in years.
That's all fine and good if things go as planned and you can shut down your application in a reasonable period of time. Many customers I have worked with either fail to shut down the "Legacy" application at all or it takes much longer than anticipated. Still others realize it makes sense to keep a portion of that Legacy application intact and move to a hybrid model making use of API's which will be discussed in a future sub-topic.
You may ask What am I missing by not keeping my applications up to date? It's a good question and you may see benefits from keeping your applications up to date even if they won't be around in 5 years. (You think 5 years?)
Each new version of the COBOL Compiler introduces performance improvements. This can often result in applications running faster and freeing up resources for other things. Each new version of the Z processor is faster than the previous and includes features that the new compilers can take advantage of. It's very common for Z customers to upgrade to new hardware and pay less to run their applications.

You also need to consider the risk of not being on supported versions of both hardware and software. If you did run into an issue and didn't have support, what would you do? Does it make sense to put your business at risk?
Skills…. I didn't forget about skills. I hear this often as an excuse for moving off COBOL. Im curious on your feedback on this one. Certainly, the generation that wrote our heritage applications have retired or are nearing retirement. If your organization has not reacted to this, it's not COBOL's fault. COBOL was designed to be easy to learn. Several universities teach COBOL today as part of their computer engineering curriculum. I have talked with many developers who consider COBOL just another language. More on this I the follow-on sub-topics.
I really wanted to kick off this topic to make you think. I'm not saying you're doing things right or wrong. I don't know what you're doing. I'm looking to start a conversation. I want to know what your plans are. What are you planning to do with your COBOL applications? Please share and you can be anonymous if you want. I'm going to put out additional sub-topics in the coming weeks.
The next topic will be: Extend my COBOL by introducing API technology
This is my point of view…. What's yours?
FYI - latest Compiler info below
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------
Scott Simons
Senior Z Architect – IBM
------------------------------