News New Jersey Pleas for COBOL Coders for Mainframes Amid Coronavirus Pandemic

Page 2 - Seeking answers? Join the Tom's Hardware community: where nearly two million members share solutions and discuss the latest tech.

jabliese

Distinguished
Apr 25, 2006
315
2
18,795
Volunteers, bah. You would not spend the money years ago, you get to spend it now.

But here's some free advice, see if you can throw enough hardware at the problem to mitigate things. Knowing government procurement, there is probably room for at least memory upgrades on those mainframes.
 
  • Like
Reactions: alextheblue
I came out of college when the vast majority of jobs were for Y2K. I remediated quite a lot of COBOL and Assembler programs. I recall Y2K remediating IssueComm which was mostly Assembler. We ran that from a modified 1969 code base. I haven't touched any of that in 15+ years as I moved on to more current technologies ie not mainframe.

Honestly we have far few COBOL programmers today and it is dwindling. If you are close to retirement it may not be a bad path but under 50 I wouldn't even think about it. We will still have COBOL for the foreseeable future just less and less of it.
 
$85/hour is nothing if you have experience. When you make that kind of coin you also lose benfits like 401k / ROTH match/phaseout and much higher tax rates. That pay range is where things start to work against you. So it's essentially a break even at that point.

That's what I call the pay scale hole. You can't use retirement accounts to lower your AGI. So you get double whammied. Taxes + no retirement savings benefit. Anything above $150K and you are essentially breaking even till ~$200K

Regular seasoned programmers can make $50/hour easy. Some COBOL programmers make upwards of $250K/year ($125/hr) when working for big banks. All depends on industry, your skill level, and location.
 
Last edited:
  • Like
Reactions: TJ Hooker
C is pretty low-level. How hard is it to transition from C to COBOL?

Not that I'm seriously considering it, but I have had to cleanup some horrendous messes in C, on a few occasions.

It's mostly just archaic, making it harder to program or code for and debug. Just like FORTRAN there are formatting "rules" that can drive you bonkers. And things you think should be simple concepts are reduced to poor representations like numbers to represent devices for output.

Interfacing to more modern databases too becomes a nightmare due to memory alignments and call stacks. It's possible, just a pain in the duckass to hand align everything and set up stack properly.

And while there are concepts of classes and structures, they are poorly implemented add-ons, and using them across multiple files where OOP didn't really exist in any shape before becomes easily confusing and heavy in implementation. It's much easier to hack C into a OOP like program than COBOL or FORTRAN.
 

shorttack

Commendable
Aug 13, 2017
8
6
1,525
  1. Volunteers to do a massive functional upgrade to 40-year old code? Who's gonna manage the project? Who's gonna manage the volunteer programmers? Who gets to commit new code? Code security and auditability? Where is the functional design? Where is the systems analysis of what has to change and where in the code? Sorry, NJ, but "COBOL programmer volunteers" are not going to pay out of work employees their extra $600 a week anytime soon. But you needed it last week.
  2. Read the SAFE Act legal language. The Feds did not come up with an easy algorithm for the extra unemployment pay. This is a tough systems analysis problem.
  3. I sure hope NJ asked IBM professional services to bid on the job. And India Inc. But I strongly suspect the answer came back "$billions".
  4. The sane and politically defensible solution is for NJ to join CT and other states in a common effort. If the result is a common unemployment system, so be it. Having fifty states burn midnight oil to solve this problem is a federalism folly.
(The author has millions of lines of COBOL in production for decades. Fortunately, he long ago took a career path change into technology industry analysis.)
 

voodoobunny

Distinguished
Apr 10, 2009
108
2
18,715
Real question: would it be possible to emulate these mainframe systems on modern hardware? If so ... would it be possible to emulate them faster than the original hardware? Would it be worthwhile to try? Is the problem that the programs need to be updated to run on faster hardware, or are there actual limits to how much data the programs will process before they fall over ("640K limits")?

This is a real legitimate question because: updating old applications correctly is really, really difficult at the best of times. If it's easier to emulate an old machine at 10X-speed on a brand new one, then now is a good time to throw money at that. And then afterwards, you just ... try to bring the cost down.
 

King_V

Illustrious
Ambassador
Real question: would it be possible to emulate these mainframe systems on modern hardware? If so ... would it be possible to emulate them faster than the original hardware? Would it be worthwhile to try? Is the problem that the programs need to be updated to run on faster hardware, or are there actual limits to how much data the programs will process before they fall over ("640K limits")?

This is a real legitimate question because: updating old applications correctly is really, really difficult at the best of times. If it's easier to emulate an old machine at 10X-speed on a brand new one, then now is a good time to throw money at that. And then afterwards, you just ... try to bring the cost down.

I would think so - but you literally have to recreate the software. Piece by piece, I would imagine. With extensive, EXHAUSTIVE testing. EVERY bit of behavior must be guaranteed to remain unchanged.


(side rant: and some team leads when working on a "replace this component with an improved version, but make sure the outside world does NOT see any differences" type of project sort of decide "yeah, but I think this should've behaved differently, so I'll change it" and then wonder why people start screaming when everything touching it breaks)
 
  • Like
Reactions: bit_user

USAFRet

Titan
Moderator
Real question: would it be possible to emulate these mainframe systems on modern hardware? If so ... would it be possible to emulate them faster than the original hardware? Would it be worthwhile to try? Is the problem that the programs need to be updated to run on faster hardware, or are there actual limits to how much data the programs will process before they fall over ("640K limits")?

This is a real legitimate question because: updating old applications correctly is really, really difficult at the best of times. If it's easier to emulate an old machine at 10X-speed on a brand new one, then now is a good time to throw money at that. And then afterwards, you just ... try to bring the cost down.
Its not just the speed of the backend.

Multiple other things might need to be changed.
User interface, for instance.
If a particular UI and workflow lets a human make 100 new entries per day. Working all day, non stop.
Entries timestamped to the granularity of 1 minute.

Now..lets see that same human try to make 1500 entries per day.
He quickly falls behind.
Easy...just hire 14 more humans. Now the system has issues, trying to accept those 1500 entries per day.
That 1 minute granularity chokes.
So that whole entry routine needs to be rewritten.

Enter Project Manager Bob:
"Oh, and we need to add these other 8 functions."
 
  • Like
Reactions: bit_user

Takasis007

Honorable
Feb 3, 2015
79
2
10,640
C is pretty low-level. How hard is it to transition from C to COBOL?

Not that I'm seriously considering it, but I have had to cleanup some horrendous messes in C, on a few occasions.
COBOL is an archaic BASIC'ish language that is sensitive to spacing. Get one line of your code with one space to many and let the error codes fly. It won't compile properly. You have to assign memory manual, designate it and format it. All up front in the declaration portion of your code. Making all the black boxes for your code isn't all that hard, it is the linking it all together that can be a monster. You will run into a whole lot of GOTO statements /cringe as a good portion of COBOL was created long before there were industry standards for code (ie: meaningful variable names) in place. Governments would sometimes contract out the programming and it was usually a rats nest to try and decipher as the more difficult your coding to change the more likely they would just hire you back to maintain it. Variable names that unless you had your spy decoder ring were just meaningless. This is all based off what I was using in 96 and it may have changed since then. Object oriented programming was just starting to come out and you had a couple flavors of C. I think there was Borland C+ and just C+ or C++, I can't remember. You may have FORTRAN in there (with a couple different versions) It would depend on your compiler, think there was version 90 (buggy, but 95 wasn't available in school yet to be taught) Basically, COBOL, FORTRAN, CICS, are all used for batch processing and large databases. I hope this is all correct, it has been awhile. You may remember seeing the monochrome data terminals in government offices and hospitals. All in all updating all those machines and code would be astronomically expensive.
 
  • Like
Reactions: digitalgriffin

Takasis007

Honorable
Feb 3, 2015
79
2
10,640
Volunteers, bah. You would not spend the money years ago, you get to spend it now.

But here's some free advice, see if you can throw enough hardware at the problem to mitigate things. Knowing government procurement, there is probably room for at least memory upgrades on those mainframes.
Mess with the memory, you mess with the code. Memory allocations were hard coded for efficiency. The amount of memory available at the time was just not conceivable compared to today. Everything would have to be reworked to take advantage of the horsepower available today.
 
  • Like
Reactions: bit_user

Takasis007

Honorable
Feb 3, 2015
79
2
10,640
Those people are now almost 50 years old.
Maybe not quite "retired", but up there as far as pay requirements.

And current "grads" would have to learn a whole different way of doing things.
Have to agree, current programmers would have to take their heads off, turn them upside down, turn three times and tap their heals to go back to COBOL. But it is not just COBOL they would have to understand, the JCL is of equal importance. The COBOL is the brain, JCL the plumbing and wiring between the brain and the hardware. Then throw in some FORTRAN, CICS and a few other just for giggles. It is not the same as today at all. Oh and hope to god they kept the source code.
AND that someone bothered to check the backups that are stored away. Just ask Motorola and Microsoft what happens when you don't check your backups. Sidekick crash and burn. If you guys remember the mess that happened there. It went something like this, to the best of my knowledge. Microsoft takes over data storage of Sidekicks cloud data, the backups are corrupt as the people maintaining them pressed the button every day to back up the cloud. Microsoft gets the new system up and running (a new cloud) goes to load the previous clouds data into the new structure. beep boop beep boing doing crash. It fails hard. OMFG! Panic mode, load previous backups............. All garbage. Everyone's, pics, appointments, audio, everything is a muddled mess. And Sidekicks disappear.
 

pug_s

Distinguished
Mar 26, 2003
444
53
18,940
Those people are now almost 50 years old.
Maybe not quite "retired", but up there as far as pay requirements.

And current "grads" would have to learn a whole different way of doing things.

The bank at the time hired anybody with a STEM degree and will spend a few month to train them how to program COBOL to change the bank code. I didn't want the job thinking that after y2k, you pretty much have an obsolete skill.
 

JBHapgood

Reputable
Jul 15, 2019
84
23
4,545
They are unhackable not because of COBOL hackers shortage, but because they were designed from ground up as such since IBM S/370 CPU and OS/VS2, VM/370 and DOS/VS were launched. COBOL is a business language and has no direct interface to any IBM Operating System part.

Not just COBOL, but any "high-level language" (i.e., anything other than Assembler). Back in the last century I was working with FORTRAN on an IBM 4341 mainframe. I needed to open files dynamically within the program, which even then would have been a trivial matter on a non-IBM system. But IBM operating systems are designed to open all files in JCL before starting a program. The only way a program could open files is with an Assembler macro. I had to get a "System Programmer" to write a special Assembler program that called the appropriate macro, which I could call from FORTRAN.

Hacking was not a consideration when IBM mainframe operating systems were designed. What was apparently an important consideration was enforcing the strict hierarchical separation between "System Programmers" who were experts in Assembler and JCL, and "Application Programmers" who used high-level languages to write programs.
 
  • Like
Reactions: bit_user

JBHapgood

Reputable
Jul 15, 2019
84
23
4,545
COBOL is an archaic BASIC'ish language that is sensitive to spacing. Get one line of your code with one space to many and let the error codes fly. It won't compile properly. You have to assign memory manual, designate it and format it. All up front in the declaration portion of your code. Making all the black boxes for your code isn't all that hard, it is the linking it all together that can be a monster. You will run into a whole lot of GOTO statements /cringe as a good portion of COBOL was created long before there were industry standards for code (ie: meaningful variable names) in place. Governments would sometimes contract out the programming and it was usually a rats nest to try and decipher as the more difficult your coding to change the more likely they would just hire you back to maintain it. Variable names that unless you had your spy decoder ring were just meaningless. This is all based off what I

I will always have a soft spot in my heart for COBOL. It was the first programming language I learned (I was in high school in 1976, on an IBM 360/30 mainframe that was obsolete even then). I also paid for college by programming in COBOL, never mind that the snobbish computer science faculty took every possible opportunity to disparage it.

It turns out to be very easy to apply the "structured programming" paradigm then in fashion to COBOL, and to write very readable and easily maintained code. It's was possible to write interactive applications with it, and even to write what amounted to a compiler in it, which I did as a way to extend COBOL itself for interactive use before the language added those features.

The reason COBOL got such a bad reputation is that so much awful, un-maintainable, unreadable spaghetti code was written in it. Programmers back in the 1960s often were recruited from other disciplines and didn't understand how to write good code. They also had slow machines with very limited memory to work with, making memory optimization a higher priority than maintainability.

It probably wouldn't be difficult for a recent CS grad (the most desirable programmer because they're young, cheap, and obedient) to learn COBOL. The likely problem any programmer would face in dealing a system like they have in NJ is that the code is poorly documented (if it's documented at all) and difficult to decipher. A recent grad would probably have more difficulty figuring out the function of all that spaghetti than a superannuated programmer who has specific experience with payroll or similar applications as well as with horrible spaghetti code.

The JCL, on which the system heavily depends, would be another challenge, as that was an opaque and esoteric "language" even when it was in common use. COBOL at least has some commonality with other programming languages, but JCL is in a class by itself and has no direct counterpart in any modern system.

Deciphering the code and JCL would surely be the biggest challenge any programmer would face, and it would take a lot of intensive effort under great pressure. Such heroic effort deserves appropriate compensation, no matter how much officials try to deny it. The failure to maintain and update the software was just another case of "penny wise, dollar foolish." Anyone who volunteers to undertake it would be insane.
 
Last edited:
  • Like
Reactions: bit_user

JBHapgood

Reputable
Jul 15, 2019
84
23
4,545
Honestly we have far few COBOL programmers today and it is dwindling. If you are close to retirement it may not be a bad path but under 50 I wouldn't even think about it. We will still have COBOL for the foreseeable future just less and less of it.

With the extreme specialization in today's tech job market, I don't think COBOL would be a useful addition to any young developer's résumé. Unless they wanted to make a career of maintaining and/or updating ancient spaghetti code for governments and banks. That might actually be lucrative, but probably not very satisfying.
 
  • Like
Reactions: bit_user

King_V

Illustrious
Ambassador
For the record, while not the same thing, I wrote plenty of spaghetti code back as a kid in BASIC (when it had line numbers). Comments? HA! That takes up precious RAM.

I have encountered spaghetti-ish code in modern, object-oriented languages, and have been horrified by it, unable to follow. I can only imagine how I'd react if presented with some of the stuff back in the day. I probably would just throw my hands in the air...
 
Apr 6, 2020
1
0
10
100 $ / hour and I can help with Poland. I work in bank whit COBLO language.
I can even start rewriting, for example, JAVA.
[email address removed]
 
Last edited:

James Lee72

Commendable
May 30, 2017
2
0
1,510
I designed the FIRST system in COBOL to actually have the mainframe write the code in COBOL for programmers so that a programmer could get done in two hours what would normally take two months. The programs generated would be more efficient that what a "human" coder could write and would be bug free. To be honest, if either NJ or Mass needed, they can call me. Currently, I run a private data center that mostly does cancer research and have switched over a week ago to help find a vaccine for COVID-19. My data center is the 7th most powerful "volunteer" data center in the country. If they call me, I would answer that phone call.

James
 

alextheblue

Distinguished
Sadly, the decline of newspapers is really hurting the quality of state and local governance.
The decline of independent news sources, in general. A critical mass of them are shills or worse.
Oh, I agree on the waste, fraud, etc. - but it's not all politicians, and not all the programs. And there's most definitely a certain group of politicians that engage in this, and, through years of training, have convinced their constituents that it's the public school teachers, the poor, minorities, immigrants, and so forth. Usually with undertones of racism. "If those lazy (fill in the blank) would just get off their butts and get a job/real job, then my taxes would be lower."

They've been convinced to believe that the one drop in the bucket they've been told to focus on is actually the entire bucketful. It was easy to convince them because they already wanted to believe it, and now someone in "authority" is confirming it.
You've been convinced it's just a drop, and only some politicians. It's many, if not most, and there's a staggering amount of poorly spent funds, and even downright waste and fraud. At all levels of government, no less. Vague claims of racism and "anti-poor" sentiment are cheap ways for one side to deflect from the gross inefficiencies and worse, when the reality is it is both sides. Our spending is out of control, and there's so many special interest groups that want to ramp it up even more.

It's why at this point I'd prefer a scaling "partial" UBI option, which if you sign up for, disallows you from taking advantage of competing programs.

"There is no distinctly American criminal class - except Congress."
 

dcorley

Commendable
Jul 7, 2018
5
1
1,515
New Jersey issued a plea for COBOL programmers to revamp the aging mainframes behind its unemployment system.

New Jersey Pleas for COBOL Coders for Mainframes Amid Coronavirus Pandemic : Read more

Amazing request. COBOL is the programming language to access a data base. In the old days, IMS or CICS, later DB2 and another that I forgot the name of.
So you had to build your data base, with attendant fields and backup and recover protocols. Use the defined fields, generally using some sort of Macro, in your COBOL. Crash recovery, program fail data recovery.
Probably install the storage (hardware) equipment, Update the system I/O. Write JCL (Job Control Language).
Tape library backup data base.
I did something like this 20 years ago. All of the steps had to be done by: Me!
 

bit_user

Polypheme
Ambassador
things you think should be simple concepts are reduced to poor representations like numbers to represent devices for output.
Ha ha, you mean like UNIX's fds?

Code:
0 -> stdin
1 -> stdout
2 -> stderr

I remember being horrified when someone first showed me how to redirect stdout to a file...

It's much easier to hack C into a OOP like program than COBOL or FORTRAN.
You make a good point with FORTRAN. Even though it's an older language than C, I wouldn't really call it lower-level. You can't really call a language low-level if it lacks pointers. Sometimes, working around that gets really painful.
 
  • Like
Reactions: digitalgriffin

bit_user

Polypheme
Ambassador
The decline of independent news sources, in general. A critical mass of them are shills or worse.
No, I meant what I said. There's a good amount of evidence that newspapers make the difference. Except for really big stories, most reporting would typically happen at the local level. The other news outlets tend to just report what's in the papers. As big as they are, the big networks don't have feet on the ground in all of the cities and states. These "beat" reporters are the ones who really know what's going on.

So, if you want good governance in your city and state, you'd better have some daily papers still alive and kicking.

"There is no distinctly American criminal class - except Congress."
Blaming Congress is too easy. Congress is as much the symptom as the cause. Remember, every one of those House members and Senators was elected by voters. So, when you have a problem with one of those politicians, you're also taking issue with many of their supporters.
 
Apr 7, 2020
2
0
10
Younger coders have no idea how much COBOL is in use out there. Older developers that are in late stage careers don't show up on community sites much because they are focused and know their stuff. Pro tip: If you are looking for steady, high-paying employment with more regular hours and the need for little mobility, learn COBOL. It's not the sexy thing, but it always, always pays the bills. Like New Jersey needing to hire COBOL developers while everyone is getting furloughed/laid off.
Happy to help, please have them contact me, have over 10 yr experience in COBOL on Mainframes...
 

alextheblue

Distinguished
As big as they are, the big networks don't have feet on the ground in all of the cities and states. These "beat" reporters are the ones who really know what's going on.

So, if you want good governance in your city and state, you'd better have some daily papers still alive and kicking.
Fair enough... except even the local papers are increasingly infested with borderline political operatives. The articles in my local paper were as tilted as any of the big dogs.... both in what they cover, and what they REFUSE to cover. I could get about as much local news from the NYT and they're hundreds of miles away.

I will say I did briefly consider resubscribing when the toilet paper shortages first hit.
 
  • Like
Reactions: bit_user