Being a COBOL Developer Can Be Very Fun
By: Luca Piccinelli
Tags: Programming, Career Advice, Motivational, Legacy Code, Cobol

Do you want numbers on COBOL?

All of us are already aware of how much COBOL is in use currently. Due to the pandemic, we had an example in the U.S. of how this old language still has a huge impact on our society.

Anyway, this is irrelevant to what I want to tell you. I don’t want to convince anyone that COBOL is a cool language, because it isn’t. It is probably the worst language that I have worked with (technically speaking).

Which are the traits that make it so ugly? Why don’t software developers like to work with it?

The Problems

Let’s try to guess which are the problems that one may fear to face. I will list some situation that I had to deal with, during my experience:

source code files long about 70000 lines. Many of those.

Cryptic (sometimes funny 😂) names of variables and procedures.

Cluttered and obsolete UIs.

No data structure libraries (e.g. no dynamic arrays).

Obsolete IDE

No testing frameworks.

Procedural programming.

Atypical data types (e.g. no int, float, double, string, char etc…).

No support for defining new data types (i.e. struct in C).

No functions with local allocation scope.

Proprietary and obsolete persistence.

Should I continue? I think you got the idea 😅

The typical developer reaction (Image from Giphy)

Change your perspective

Before asking yourself “where did I end up?”, stop, breathe and look at that list from another perspective.

Those are problems only if they come together with the following sentence:

Here, we have always done in this way

This sentence is the only thing that you have to keep out of your working life. It is the symptom of the fear of change.

But if you work with people that embrace change, the points of that list are not problems. Those are all opportunities! And are so many!

The green field

Photo by Simon Waelti on Unsplash

The image above represents how I see a legacy project, owned by people with a good mindset. An old house, in a good environment, where your contribution will be appreciated. And you have so many ways to contribute.

No dynamic arrays libraries? You can build one! How many of you had the chance to put in production a dynamic array library? I did and it is referenced 23954 times in 1918 source files (and it is open source).

Obsolete IDE? A colleague of mine created a VS Code extension. Since then, the whole team adopted VS Code and it is way better than the official old IDE.

A list of some relevant topics that we had the chance to challenge:

a library for dynamic memory scoped allocation (garbage collection)

a new high-performance storage

error handling design

local API provider

design of common functionalities for grids

the adoption of versioning tools and then the transition to git

the transition to agile methodologies

We always have to keep in mind that the limits are of the instruments. Not ours.

COBOL has low support from the community. Then, instead of asking “which framework/library/tool am I going to use?”, the question is “which framework/library/tool am I going to build, and how?”. In a certain way, it is more relaxing than diving in the framework jungle of modern days.