Month: April 2020

Learn You a COBOL for Great GoodLearn You a COBOL for Great Good

The title is a reference to one of my favorite programming language instruction texts: Learn You a Haskell for Great Good. Funny, well-written and instructive. If you want to learn a functional language, Haskell is a fine choice. I still like writing in Scheme – another functional language that’s almost as old as Cobol.

But today’s topic is Cobol, which has been in the news lately, and which has a few programmers dusting off their old textbooks and manuals.  If you want to learn Cobol or brush up on your old Cobol skills, I might be able to help. I developed an online class a few years ago to use for corporate training. Now I’ve decided to publish it for general use.

You can find it here: IBM Enterprise Cobol and as a link at the top of the home page. It was built with the idea of taking a beginner and turning them into a corporate programmer. If you have some mainframe skills already, you can skip some of the beginning lessons.

The course is divided into 5 units, and if you push hard, it’s possible to get through a unit each day – a week of corporate training.  The course comes with an extensive collection of slides – 299 in all.  There are 15 programming problems that you will need to tackle and complete if you are really wanting to learn something.

You can help me by reporting any problems you have with the site or with the material.

So, … I hope this will help you learn a Cobol for great good!

Introduction to Macros and Conditional AssemblyIntroduction to Macros and Conditional Assembly

In the Video Course for IBM Assembler section, I’ve added an introductory lesson on Conditional Assembly and Macro Processing. If you haven’t written macros or want to learn something about conditional assembly instructions, this guide will get you started. There’s also a link to the Powerpoint that goes along with the video.

What you can learn from the Cobol compiler about Assembly languageWhat you can learn from the Cobol compiler about Assembly language

It can be fun to take a look at the assembly language listing of a Cobol program. Geeky, admittedly, but still fun. If you have never given the listings much thought, take a look at this video. You might be surprised what the Cobol compiler gets up to, and what you can learn about Cobol and assembler. In this video I examine whether to COMPUTE or not to COMPUTE, whether to PERFORM or to PERFORM THRU, and what happens when you tell the optimizer to give it the old college try.

It’s worse than he thoughtIt’s worse than he thought

Cobol has been in the news lately since the NJ governor asked for help with some legacy systems.  Perhaps someone should tell him it’s worse than he thought – he’s going to need some assembler programmers, too. 🙂

Some of the recent discussion of Cobol by people who should know better is amusing if it weren’t also disappointing.  You would think that Cobol died in the 1970s.  The fact is, IBM’s Cobol compiler is quite sophisticated, as is the language.  This isn’t your father’s or mother’s Cobol. It is a truly modern language, even object-oriented if you want it to be. On the other hand, writing business systems in Java, C, Python, Ruby, etc.  represents a challenge I would not like to tackle (even though I love those languages).  In many ways those languages are ill-suited to the task – for example, just doing business arithmetic in Java requires some really ugly code.

But what do I know? I still think assembler is fun to write.

One thing’s for sure: It will be fun to hear the forensics of what happened with the governor’s legacy systems. I’m guessing it has little to do with any shortcomings in Cobol.