Mainframe on the Macbook
medium.com
medium.com
This is curious statement, what is cheating about it? I suppose this person equates Cobol with mainframes, and wants the Real Experience. Hopefully the author doesn't go down the rat hole of setting up Hercules with a 1970's era version of MVS operating system, and tries to learn enough JCL to execute the compiler. That's truly a waste of time.
Besides, not all machines that ran Cobol were EBCDIC, there were (are) a lot of ASCII machines, including anything running GnuCobol. The key thing you're learning about with Cobol is fixed length files, and storage formats like Display, Zoned Decimal, Packed, and Binary.
Otherwise the article has some good links and solid history.
I personally think Cobol and the mainframe model of resource sandboxing has some things to teach us today, but few are interested.
Why? Cobol, JCL, RPG, ..., run on modern IBM MVS (OS/390, z/OS), unmodified. If someone seeks to learn IBM mainframe systems internals and don't have access to modern software, Hercules-390 and MVS 3.8 it's a viable option to get started as an application or systems programmer.
IBM has its own turnkey system called z/PDT so you can run a mainframe on your laptop, something that Hercules-390 can do too.
The mainframe style is being reinvented in half-arsed way as “microservices”, they are super fashionable right now.
I shudder to think what monstrosity the full stack crowd will come up with when they try to reinvent CICS too...
With that in mind, the XML files that came later was a huge improvement.
In the mainframe environment where I started my career, OS JCL was sort of viewed as a black art by most of the programmers (plus an annoyance, as production JCL had to be initially submitted on cards).
I came from the system side, so I was happy to take over all the JCL issues for my group. I'd set it up how I wanted in a flat file on TSO, spool it to the JES2-connected card punch, and bingo! That also let me comment the non-intuitive elements for the computing center folks, minimizing 3AM call-ins when feeding-system issues made us improvise input checks. Literally nobody had thought of doing production JCL that way before I did.
I wager you didn't see it abused. I actually hold ignoble honor of reverse engineering and implementing a complete JCL parser, validated on a million line batch system. The most egregious thing I saw there was; there were a set of jobs that essentially processed tree data structures as flatfiles, by building flat files of sub trees and resubmitting themselves. I really lol'd when I saw that.
Speaking of ugly JCL, it was typical of my environment for production jobs to not bother with cosmetics and comments since changing anything was a manual process requiring either sitting at the keypunch or writing it out in character grid boxes for keypunch operators. This made meaningful comments rare and (when present) hard to find or read. When I redid all our jobs' JCL via ISPF, I could not only easily reformat it all for readability and clarity, but I described all the passable parameter switch options right in the JCL right in context.
Usually this lasts a few hours before I get frustrated and stop.
The problem I have is that the system is not really lending itself to exploration. I might download a tape image containing some software I want to try, but there is zero information aimed at beginners explaining how to actually get this software running.
Even figuring out how to exit the text editor in TSO took a long time, and I remember resorting to rebooting the system just to get out of it.
I assemble an assembly program once. I did it by feeding a deck directly to the reader, and seeing the result was pretty cool. Unfortunately I haven't been able to repeat that since I don't know where I found the example code that I used.
I'd love to see a tutorial that goes a bit deeper than just how to list datasets in TSO. However, the number of people like me that would appreciate it is likely in the single digits, so it's understandable that it doesn't exist.
Is this true? I mean, I know coding boot camp programs aren't emphasizing in COBOL, but I graduated from University of Wisconsin-Platteville in 2010 and was required to take a COBOL class. I asked our intern this year (also from UWP) and he confirmed that it's still a required course.
I did my first internship building an operations management system for auto dealerships using AcuCOBOL. Using COBOL, particularly when binding to a GUI, was painful.
edit: missed "aren't" in my second sentence.
India might have more COBOL courses since they specialized in it during the 90s (paid off during Y2K), but 20 years on even there I’m doubtful.
Companies involved in keeping COBOL-based systems working say that 95 percent of ATM transactions pass through COBOL programs, 80 percent of in-person transactions rely on them, and over 40 percent of banks still use COBOL as the foundation of their systems. “Our COBOL business is bigger than it has ever been,” said Chris Livesey, senior vice president and general manager at Micro Focus, a company that offers modern COBOL coding and development frameworks.
Source: https://increment.com/programming-languages/cobol-all-the-wa...
This is true, as well, of FORTRAN programmers, by the by, and has been for the last two decades.
Personally, I think the supply isn't there for reasons both a bit like the lack of supply of sewage engineers, and like the lack of supply of IT workers for the porn "vertical": like sewage, COBOL-using employers are a job environment nobody wants (e.g. stodgy old banks that don't like change); and like porn, COBOL-using employers don't look good on a CV.
COBOL is also available at University of Southern California[0], Iowa State[1], and California State University[4].
And those are just a bunch of universities I picked off the top of my head.
Anyone who thinks COBOL is dead is misinformed. There's obviously a need for it, or it wouldn't be offered.
According to this article[5] from last month, COBOL is still widely used in the financial industry.
[0]:https://cse.sc.edu/class [1]:http://catalog.iastate.edu/previouscatalogs/2014-15/azcourse... [2]:http://catalogs.rutgers.edu/generated/nwk-ug_0608/pg23255.ht... [3]:http://undergraduate.bulletins.psu.edu/university-course-des... [4]:https://catalog.csustan.edu/preview_course_nopop.php?catoid=... [5]https://increment.com/programming-languages/cobol-all-the-wa...
For example, you'd expect there to be a simple way to open a network connection. I mean, doing REST calls is one of the fundamental ways you communicate with other services these days. Well, GNU COBOL has no such libraries.
Another thing COBOL is famous for is good SQL integration. As far as I understand you have language-level integration with DB2 on the mainframes. Doing the same on Linux with Postgres would be nice, but there is no database integration at all. You're limited to flat files, whose names are hardcoded in the source code.
They touted how everyone would be able to get a job fixing Y2K bugs. All I could imagine was a job like Peter Gibbons. I wanted to work in future technologies, not those of yesteryear. Thank goodness the internet was taking off by the mid 90s, so it was easy to see where things were going.