[HN Gopher] Learning COBOL: A Journey for the Modern Programmer ... ___________________________________________________________________ Learning COBOL: A Journey for the Modern Programmer (2021) Author : rbanffy Score : 54 points Date : 2023-04-27 11:26 UTC (2 days ago) (HTM) web link (monadical.com) (TXT) w3m dump (monadical.com) | tapland wrote: | Been doing COBOL for the past five years, so it's been my main | thing since leaving school. | | A on of insurance companies, banks, telcos, airlines and old | government systems for anything related to healthcare and taxes | still use it and it's not all IBM Mainframes. I think IKEA just | recently migrated away from it but a lot of companies with old | inventory systems still do use COBOL. | | The language is easy, systems and products gigantic, your mentors | write their code (incl. Java) in a 55x132 char terminal and | sometimes there is even more than absolutely no documentation! | | It's fun but I'll probably want to do something more modern for a | while before maybe returning to the old systems. | | For anyone interested to learn, I've recommended think Jan | Sadek's mainframe playground before ( | https://mainframeplayground.neocities.org/ ). | | Keep an eye on IBM's "Master the Mainframe" and hobbyist licenses | for OpenVMS. I found setting up GnuCOBOL in a nice way was too | much of a hassle to recommend. | sgt wrote: | > Jan Sadek | | Random question. Will that weird looking 'a' render on a | mainframe? EBCDIC? | Hnus wrote: | Whats the salary in comparison to lets say full-stack webdev. | ecshafer wrote: | FWIW when I worked in a Finance company with a lot of Cobol + | JCL + DB2 devs (including in management so I could see more | info) their salaries were on average similar to Full Stack | but possibly lower, especially as we put more AWS emphasis | which those people started getting more premium salaries. | Some banks I hear give cobol premium but it seems to be more | specifically very specific mainframe systems experience + | cobol. | fredsmith219 wrote: | Learning COBOL is easy. If you want a good skill for those rare | low-paying COBOL jobs, learn JCL. That is the secret sauce that | glues together IBM Mainframe databases, COBOL programs, and user | interfaces. Any legacy application will be a chain of JCL jobs | linking input and output from several COBOL programs. This only | applies to IBM mainframes. The State of Michigan uses | Burroughs/Unisys mainframes running COBOL, but I don't know what | those use to control job flow and input/output. | DanHulton wrote: | We learned COBOL, CICS, and JCL in college (in the early | aughts), because we had a lot of industries in our town that | still relied on them, so they were churning out programmers | that could actually apply for those jobs as the older | programmers were retired. | | COBOL was fine, ultimately. Clunky, but functional. CICS was | less fine, but still something you could adapt to. JCL was | _miserable._ I honestly cannot remember why, I've blocked as | much of it from my mind as I could, I suppose, but I remember | every part of JCL being awful and no fun to work with. | fredsmith219 wrote: | Your memories are correct lol! JCL is absolutely miserable. | But essential if you are going to be working on IBM | mainframes. | mikece wrote: | Is there an estimate on how many COBOL jobs are out there still? | And are there still apprenticeship/training programs for learning | COBOL? | fatneckbeard wrote: | i know a system that runs cobol. | | but there are like 4 or 5 other systems on top of it, some of | them use XML, some html, some asp, some java, some vba, some | c#. | | i dont really understand the concept of a "x language job". | like jobs tend to need people to learn systems and domain | language, and be problem solvers, and communicators, | coordinators, testers, the actual computer language is kind of | irrelevant. like i cannot fathom there is a job out there where | someone just hacks cobol all day and thats all they do. | NikolaNovak wrote: | That's my experience. I've actually been around systems that | use Cobol amongst other things for 20 years (only did tiniest | bit myself) but the developers tend to be experts in business | as well - like, this set of Cobol programs are for payroll, | and the developers understand payroll processing. They can | discuss legislative nuances and taxation and benefits and | deductions with functional analysts. | | Basically, all Cobol I've ever seen is firmly performing a | business / functional task. I guess it's in the name :-) | kjs3 wrote: | No idea how many jobs. Places that use it extensively usually | have apprenticeships and/or training. $DAYJOB does (big | financial firm). There are even some mainframe/COBOL college | programs. | rbanffy wrote: | I always find it amusing that the least sexy of languages | runs on the sexiest systems. | | A modern mainframe is a thing to behold. | pagnol wrote: | Do you mind expanding a bit? | tapland wrote: | https://www.thegreengrid.org/ja/newsroom/blog/making-ibm- | mag... | | https://www.ibm.com/z | | https://en.wikipedia.org/wiki/Mainframe_computer | rbanffy wrote: | They lost a bit of their glam when moved from 24" racks | to 19" ones so that the datacenter people could hide | these beauties in warehouse sized facilities instead of | being proudly displayed at corporate headquarters ;-) | kragen wrote: | tianhe-1, cerebras, the ga144, and the ambiq apollo4 do not | generally run cobol | rbanffy wrote: | Meh. None of those has the weird multi-gigabyte L4 caches | of a Telum. And none of them will continue working during | an earthquake. | kragen wrote: | > _Very few resources explain this, but having the code in strict | positions was what allowed old computers to read the instructions | on punched cards. On punched cards, a certain COBOL statement, | let's say an IF statement, is mapped to a pattern of holes. If | you know that a statement starts at a certain column (12-72 in | COBOL), it is easier for the hardware to read (this was done by | passing a light through the card)._ | | i think it would be more accurate to say that dividing punched | cards into predefined fields was a pre-existing practice (dating | back to the census of 01890) which was unthinkingly copied when | punched cards were adapted to applications for which it is a | stupid idea, such as programming | | it's true that iterating over the leading blanks on a free-form | card to find the first nonblank character takes more cpu time | than just looking at column 8, but those cpu savings are so minor | as to be lost the first time a compiler run has to be aborted | because someone accidentally punched their statement starting in | column 7 | | cobol, being a dod initiative, didn't care much about whether | ideas were stupid as long as they could be made to work, and hci | (and even ergonomics) was still in its infancy | | (what would i know about unthinking copying? well, just last | night i formatted my code to fit within 80 columns, ultimately | because that was the width of ibm cards, and therefore of many | printers, terminals, and character generators, and is still the | default width of many terminal emulators) | santoshalper wrote: | When I was new to engineering management, I took over a project | where one of the large components, a claims processing rules | engine, was written entirely in SQL. Apparently, the previous | manager had assigned that component to a DBA to build and by the | time they found out, it was too late in the project to re-write. | | Anyway... years later my scope had increased to include some | mainframe teams working in COBOL. I have always been a big | believer that you can't effectively lead a team if you can't do | the job, so I dove in and learned COBOL. Now, I am not saying | that COBOL and SQL are syntactically similar, but the experience | of building in COBOL was very similar to building application | logic in SQL. None of the abstractions we are used to, and no | real concept of separation of concerns. It was fairly easy to | build in, but an absolute nightmare to maintain. ___________________________________________________________________ (page generated 2023-04-29 23:00 UTC)