4 Coder struggles in Transitioning from COBOL to Java Programming

Background from Canva, Edited in Canva to add text

Being an older programmer in the Information Technology field, I can definitely relate to dealing with the introduction of new technology. During my over 25-year career, there were times when I had to decide whether the time and energy that I would have to invest in learning new technology was worth it. This is basically what I went through when I switched from my warm and fuzzy job in Mainframe/COBOL programming to a job in–something new for me—Personal Computer (PC)/Java programming.

If You Can’t Beat Them, Join Them

COBOL (Common Business-Oriented Language) is an over 60-year-old programming language. The programs are typically compiled and run on a Mainframe computer, which has the ability to process large amounts of data. An example of an Integrated Development Environment (IDE) for Mainframe/COBOL development is the Interactive System Productivity Facility (ISPF). The code repository for Mainframe programming, that I’m familiar with, is Endevor. From my experience over the last 25 years, there have been few significant changes in COBOL development and the associated tools.

By contrast, Java, initiated in 1991, is a much newer programming language. The code is built and run on a Personal Computer. Eclipse is a typical IDE for Java coding, and the code repository is GIT. In this type of environment, the tools and code could change multiple times in a short period of time, something a mature workforce may not be prepared for.

Some Issues for Older Workers

Keeping Up

As more and more tech savvy Generation X and Millennial people enter the workforce, it’s harder and harder for Baby Boomers to keep pace with these younger generations. In an Information Technology (IT) environment, it’s particularly difficult since students starting out on a development team have recently learned the latest technology.  This was one of the biggest challenges I found when I switched from COBOL to Java coding.

Learning Curve

Moreover, relearning basically another computer language was an underestimated part of this job switch. It’s sometimes a misconception that if you know programming in one language, you know programming in every computer language. From my perspective, that’s not a reasonable assumption, any more than it’s logical to assume that someone that knows the English language will automatically know the French language. In the end, I did learn how to code in Java and work in the development environment, but it wasn’t easy.

Environmental Stability

It wasn’t just learning the new code syntax; it was also a matter of understanding all the associated tools to build and run Java programs. The IDE, debugger, and code repository are all different tools for Mainframe and Java coding. Also, having been in use for a lot longer, the Mainframe development products are naturally more stable when a new version is introduced.  Ultimately, it’s much easier to code in a stable environment, which I learned very quickly.

Comfort Zone

Finally, the transition was also harder, because I missed programming in COBOL. In the beginning, I was so anxious to try out Java programming with all its bells and whistles and graphical development environment. It was an example of “be careful what you wish for”. The more I worked with Java, the more attractive COBOL became. It was like missing an old friend.

Like Steve Jobs suggested…Eventually a decision has to be made as to whether or not the new technology is worth the investment. After quite a few years of Java programming, I decided that my issues with it, as mentioned above, outweighed my reasons for continuing, so I went back to Mainframe/COBOL programming. No loss for me, because I had both jobs available to me, I just preferred my stable, comfort zone. In the end, I’m glad I tried it, and it’s part of my history.

 

Have you ever taken a job that you thought would be perfect for you but realized that it wasn’t? How did you handle the situation? Did you stay with it, or look for something else?