Ask HN: Why is there so little info on the web about IBM mainframe programming?

169 points by jamesdhutton ↗ HN
I recently heard on a podcast that IBM is selling more mainframes today than at any other time in its history. This piqued my curiosity. I don't know the first thing about mainframes so I was interested to learn how one goes about coding for a mainframe. But a Google search on this topic brings up very little. Most of the results are on IBM's own website, and even that contains only high-level details. The usual places like Stack Overflow and YouTube have a dearth of info on IBM mainframe programming. So, my question is: why?

The most likely explanation would be that there are hardly any mainframe developers. But IBM's website proclaims that "ninety percent of Fortune 500 companies rely on the IBM Mainframe" and "eighty percent of the worlds corporate data resides or originates on the mainframe." If that's true then surely there must be a reasonable number of mainframe developers out there? And if there are, then why is there so little info for them on the web? Is the knowledge proprietary and secret? Or is it just somewhere other than the usual places?

I would be really interested to hear from anyone with knowledge about this.

137 comments

[ 4.6 ms ] story [ 246 ms ] thread
I know a few mainframe folks. I don't think there's a single answer, but there are definitely a few inhibiting factors.

* The documentation for mainframe stuff is incredibly comprehensive compared to what most people are used to, so there's less need for something like Sewer Overflow.

* The code people are working on is likely to be proprietary, so no GitHub.

* Mainframes are often used in security-conscious environments where "openness" is not a core value and might even be considered negative.

* People working in that area might like being part of a relatively closed community (lower supply = better pay) so they don't advertise.

And then there's just critical mass. Since there aren't already a lot of mainframe programmers Out There, and mainframe programmers' work has few technical "touch points" with the rest of the world (e.g. different languages, libraries), it almost makes more sense to flip the question around.

Why would there be more info on the web about IBM mainframe programming?

I think that hits a lot of it. And while "mainframe" (really IBM z/OS, z/VM, CICS, etc. in this context) is probably the most prominent example, the same applies to a lot of other "legacy" computing like MUMPS, ADA, IBM i, other mainframes and minicomputers still in use, etc. Collectively, there's still a lot of that sort of thing but it's essentially all proprietary and there's not much in the way of community except informally though, in many cases, there are still user groups, etc.
I know a bunch of MUMPS folks too and yes, it's a very similar vibe. Ditto with other "niche" tech communities. Some people just really like those little pockets outside of the mainstream. One of my mainframe friends frequently posts pictures of RL gatherings of that community where he is, and it definitely seems like a good scene to be in. If I ever had to un-retire, it might well be into something like that.
It's not the sort of thing I'd really recommend a young person to get into. I've seen people who were basically world experts on $LEGACY_THING as interest in said thing declined to zero and it wasn't pretty. But there are also some fairly large niches and they're probably a comfortable enough place for a veteran to coast late career.
The mainframe programmers are skilled in the programming, so the questions they'll be asking will often be business logic questions, not "how do I assign a variable".

So even if you do see a mainframe programmer in the wild asking a question, you probably won't recognize it.

1. Google doesn't want you to program for mainframes. Google wants you to program for the cloud.

2. developerworks site on IBM had some info on mainframes and mainframe programming.

3. It is not "cool".

Just do a search at Amazon Books for: IBM Mainframe or z/OS or etc.
Designed their model to resemble retail distributorships and then shocked pickachu when they realize software doesn't need the same logistics.
At companies I've worked at with mainframes the teams running them were typically very well tenured on both the systems and software running on them.

They weren't the types to go looking on StackOverflow or Youtube for answers.

They would also help train new joiners, and IBM offers good training too.

The kinds of systems running on mainframes don't lend themselves to copy/paste from StackOverflow type programming. It's a lot of credit-card and banking transactions where you want experienced people writing and helping on it.

Secondly, even if IBM is selling more than before, that's still an incredibly tiny fraction of the computing scene. Companies don't tend to have more than one (or possibly 2, with one for DR mainframes). So, that 80-90% of the Fortune 500 is really just 1000 mainframes total. Generously, if every Fortune 500 had a pair in each geography (roughly EU, Americas, Asia for big corps), that ends up being 6, so 3000 globally, in production. There are also some spread around academia, government labs, etc. But the numbers are dwarfed by standard x86 machines. eg. at one bank we had "the mainframe" which was actually one hot and one DR, and then 40k windows servers and 40k linux servers. Similarly, there were thousands of engineers in technology, but the mainframe team with single digits.

Given the wealth of information out there, even if there was "a lot" of information for some value of lots, it's dwarfed by the incredible amount of standard tech info.

Having worked in BigCo land for 20 years, your estimates are way off.

There are F500s that have 1k mainframes each, today, in 2022.

Thank you for setting that straight. The more I read through the answer, the more ludicrous it became.
There should be a way to flag and remove comments that don't violate any guidelines, but are just objectively wrong, in a way that doesn't penalize the author. Like "you tried, but nothing about this is correct, so it goes to the bottom of the comment section above all the dead/shadowbanned comments."
I prefer the back-and-forth the way it is now. I perversely enjoy reading a comment and "buying into it" only to realize from a reply that I was naive or too trusting. Or, at least, that there are more angles to the story.

This helps you build up an immune system that is skeptical. If most wrong answers were removed/flagged/hidden then the remaining wrong but unflagged would be even more a problem.

Exactly. This helps train the "don't believe everything you read" muscle.
Sure for the percentage of people who do read all the way through and then rethink things. This is <1% in most communities
Assuming everyone is an idiot, and designing around that basis, seems like a great way to foster a community of idiots.

And unlike stackoverflow, there’s not really any good reason for anyone to think a top-level comment is somehow authoritative, especially because the best comments on HN tend to be replies

> I perversely enjoy reading a comment and "buying into it" only to realize from a reply that I was naive or too trusting.

Good for debate and free speech in general, but bad for your grasp of the facts in the case every time there don't happen to be any corrective replies.

Hard to weighs pros vs cons.

(ObSillyPun: Naah, just put them on the scales! But remember that a lighter pro will often beat a heavier con anyway!)

Is reply and downvote not enough?
I want to avoid the downvotes, though. Downvoting is for things that are off topic or don't add to the conversation, or comments made in bad faith. Someone who just happens to be wrong may very well be commenting earnestly in good faith.
Your bullshit detector should be trained continuously, not put to sleep by others labeling a post true or not. A dangerous path.
So you DO search for answers to mainframe questions on s**overflow?
there are many medium size banks that have a mainframe or two at the heart of their system.
Even small banks. Basically every bank that was around 20 or 30 years ago started with mainframes (or very large minis) and still uses them. I'm not in that business, but I've seen the server rooms, and I haven't heard of a bank switching over to a rack of PCs, yet. There might be, but that would still hundreds, perhaps a thousand banks in Europe alone running on large-ish iron.

There might be less mainframes in total, though. The bank where my parents worked had 4 at different sites, but now runs on a single one, AFAIK.

Unisys ClearPath Dorado is just a fancy Xeon machine running an emulator.
But the OS, database, network definition and workflow languages are still proprietary. Which goes back to the original question: where is that knowledge store/discussed?
Inside the company. Not gonna be a youtube tutorial lmao
"Sup nerds, today we're going to be writing some COBOL, but first don't forget to hit the bell and smash that subscribe button..."
Not even kidding, I'd probably watch some live-streaming of that kind of thing.
Twitch for mainframes... COBitch!
> I haven't heard of a bank switching over to a rack of PCs, yet.

Right. The main limitation is the core software platform. This is an extraordinarily complex system that requires expensive regulatory sign-off/audit/etc.

There are some vendors in the space who are trying to do a new bank + new core. Even if someone had an awesome x86 clustered core system with 100% regulatory approval, any existing mid-tier bank converting to it would be an ~8 figure ordeal.

It seems like their point still stands. If there were 100 million mainframes, x86 would still have more, and the standards for skills and experience would still be different due to the nature of deployment.
> So, that 80-90% of the Fortune 500 is really just 1000 mainframes total. Generously, if every Fortune 500 had a pair in each geography (roughly EU, Americas, Asia for big corps), that ends up being 6, so 3000 globally, in production.

As others have posted, your estimates are WILDLY off.

First, fortune 500 companies dont own "two" mainframes, but a LOT more.

Next, many non-F500 companies own a lot of them as well.

Years ago I worked for a local cable company in Canada.

Not a "F500" company, owned at least two mainframes for the "head office" and each different 'subdivision' owned their own mainframe.

> Really just 1000 mainframes total.

I'd be willing to bet that any major city has more within its borders.

I don't know if iSeries (AS/400) counts as Mainframe... But the software stack is similar and I know that hundreds (if not thousands) of casinos run old Main Frame era software.
You can add just about every auto parts retail store to that list.
Lots of community banks & credit unions run on top of iSeries right now too.
AS/400 was retired in 2013

And they're minicomputers, not mainframes :)

The software stack is very similar...
Even if OP's estimates are "WILDLY off", there still aren't many out there

Multiply his estimate to 1000 per F500 company ... that's only half a million

Put a pair in every major geography ... that's only 5,000,000

And, for kicks and giggles, multiply by another 10 for funzies

That 50,000,000

Yes, it's "a lot" ... but it's nothing compared to commodity hardware

According to a quick web search, Google alone had in excess of 1,000,000 x86 servers about a decade ago

That's one (large) company

I've worked with myriad companies who're running 10s or 100s of 1000s of x86 servers (let alone x86 desktops/workstations/laptops) - with nary a mainframe in sight (or maybe a couple ... which is on the order of "none" next to 100s of 1000s or millions of x86 boxes)

Per Microsoft [0], there are 1.4 billion Windows 10 and 11 devices (yes, I know that's not a server count, but it speaks to the orders of magnitude difference between x86 devices and mainframes ...even with my generous estimates posted above)

-----------

[0] https://news.microsoft.com/bythenumbers/en/windowsdevices

The flip side of that is that commodity hardware runs commodity software. It’s entirely possible to run a very large company without having any bespoke software.

Mainframes on the other hand or more likely than not to have software that only runs on a handful of machines at most.

So number of machines is not a good proxy for amount of software written.

On the other hand I’ve never touched a mainframe so it’s all speculation…

>It’s entirely possible to run a very large company without having any bespoke software.

I find that claim remarkably improbable - the overwhelming majority of all code written is for in-house business tasks

>So number of machines is not a good proxy for amount of software written.

It is a good proxy for the relative need of developers, however - with billions of x86 devices out there vs max a couple-few million mainframes...the scale of need is just wildly different

(comment deleted)
I can confirm after working with the IBM mainframe people a bit. The internal training of these systems make SO/ random other information sources on the subject pointless.
See if your local library card gives you access to /learning-oreilly-com

There is lots of content there.

There is an emulator for running mainframe code called Hercules. It comes with no software, so you'll need to acquire compilers & database apps separately.

The equivalent from IBM is called "IBM Z Development and Test Environment" and the license for that costs $5,540 per user per year. There was (maybe still is?) a "learners edition" that you have to contact them to "see if you qualify" and it is a far more reasonable $120/year (there are no links on IBM Marketplace to even try to order it). This includes several compilers and 3 databases: CICS, DB2 & IMS.

IBM has a very different model for supporting developers than Microsoft does with MSDN.

Links:

https://en.wikipedia.org/wiki/Hercules_(emulator)

http://www.hercules-390.org/

https://www.ibm.com/products/z-development-test-environment/...

https://ibm.github.io/zdt-learners-edition-about/

https://old.reddit.com/r/mainframe/

Ballmer being excited: https://www.youtube.com/watch?v=wNy2zBG79zU

It always struck me as odd that one the one hand, finding people with experience in this field seem to be very hard to find, but on the other hand, IBM makes it so hard for people to learn this stuff. I wonder if it didn't pay off for them in the long run to just put up one beefy machine on the Internet, offer free accounts to people or just a free hobbyist license like you can get for VMS. Are they paranoid about customers cheating to hitch a free ride?
Because it's relatively easy to hire someone with relevant experience in other fields and give them the internal tooling and training from IBM.

After all, IBM wants you to pay IBM to do this stuff for you.

It's not like Bob from IT is going to play around with mainframe coding for a year or so and convince the boss to buy one.

This. The mainframe model seems bizarre to people experienced in modern programming, because they can't imagine all the things that were different.

So imagine you're a company selling low volumes (by modern standards) of exquisite computing hardware to highly demanding customers, in a world where... (1) there is no Internet, (2) there are no personal computers, (3) most people don't know how to use a computer, much less program one.

You'd probably come up with a model that looked a lot like "We'll sell you the machine + train you how to program and use it!" as a package.

And then after the world changed, but your offering was very polished, you probably just wouldn't overhaul it. Because it's been working fine for 50 years.

> It's not like Bob from IT is going to play around with mainframe coding for a year or so and convince the boss to buy one.

not currently, IBM pretty much actively prevents this with their current pricing.

it could happen, and would, if people were allowed to learn this on their own.

Mainframes are very good at some things. Far better than commodity hardware is today.

It wouldn’t directly generate any sales commissions.
> offer free accounts to people

AFAIR, they offer the possibility for a one year free access to a node (Linux/IFL?). I do not remember if it is part of IBM Z Xplore and I didn't find it again with a quick search, but if you contact them they for sure will tell you more.

Edit: I just found https://www.openmainframeproject.org/

See also:

"Hello World on z/OS" (2018) https://medium.com/the-technical-archaeologist/hello-world-o...

Hn discussion:

https://news.ycombinator.com/item?id=17642846

I seem to recall IBM launched z/os in the cloud as partly a production service, and partly an education/hobby resource a while back - but I'm not sure if that's what's now:

https://www.ibm.com/cloud/pricing

I think it came with access to db2 as well?

Ed: I was probably thinking of IBM LinuxOne:

https://developer.ibm.com/articles/get-started-with-ibm-linu...

> IBM has a very different model for supporting developers than Microsoft does with MSDN.

Interesting comparison, because when I was teaching myself to code in the early 00s, that's how I perceived Microsoft.

MSDN was a paid subscription, and the tools you needed to write MS software were also paid.

Hence me ending up forming a career on open source software, and a generation of programmers who still turn their nose up at Microsoft languages.

Except .. they're using VSCode, GitHub and Typescript, probably still on a Windows laptop.
None of those things were around in the early 00s.
Well, Windows was, but that's not the point.

The parent comment noted that there was a generation who shunned Microsoft because of their corporate misbehavior. More recent generations of programmers have forgotten why that was, and Microsoft has, once again, successfully established a dominant position in the development ecosystem.

I fully expect that position to be leveraged for profit, and that would see a new generation, 25 years later, who will never trust Microsoft again.

Most things are cyclical.

I worked somewhere where almost everything was run on some kind of mainframe, but it was abstracted from 90% or more of the developers, who wrote more or less normal code in normal languages. The “mainframe programming” was basically a systems level or infra type role providing this platform to everyone else. I imagine this is equivalent to a k8s team in other companies. However I’m sure there are plenty of banks and other places that are actually writing business logic with the mainframes’ toolset.
(comment deleted)
A shop I worked in ages ago had a mainframe on site supporting lots of batched transactions over the course of a 24 hour period, along with the daily operations for a 35 facility logistics company, spread throughout the southeastern United States. They had a staff of 8 mainframers that ran the entire operation. All of the PCs onsite (my area of responsibility) were basically 3270 terminal clients for z/OS.

Sometime later, a connection on LinkedIn pointed out the following resources:

https://www.openmainframeproject.org/

https://github.com/openmainframeproject

https://github.com/openmainframeproject/cobol-programming-co...

Also, mainframes are really good at high throughput transactional jobs. That's why you see them in banks, transportation, insurance, etc. Big Tech™ doesn't see it as "cool" and are too focused on the Next Big Thing™, so there's not a lot of attention there. Sometimes, boring just gets the job done.

I suspect a lot of mainframe development today is Java EE centered, for which there is an abundance of stuff on the web.

During my vocational training, I did a bit of work with mainframes and found a forum back then I liked, but my work (and the forum) was mostly about sysadmin-stuff, and the little coding I did was in Perl.

There is a sizable library of RedBooks on IBM's web site somewhere, but again, the stuff I was interested in was about system administration.

A lot of the culture in the mainframe world developed a long time ago, and in relative isolation from the rest of the IT world, so I suspect by the time Stack Overflow became popular, their communities had already found other ways and places to mingle and pass knowledge on and around.

With hardware, software, and support contract being so expensive, and corporate culture being what it is, I also suspect the threshold to call up the the vendor for support instead of Stack Overflow is much lower than in most other areas.

(Most of this is speculation on my part, I only spend a few months in this fascinating corner of IT. If I'm wrong, I'd love to hear to from someone with actual experience.)

I suspect a lot of mainframe development today is Java EE centered, for which there is an abundance of stuff on the web.

Indeed, and not just Java. zLinux runs a great many workloads on M/Fs these days, which looks a lot like a normal Linux env.

Then ofc K8S/docker/etc can run on mainframes, presenting another layer of abstraction.

Modern mainfame programming is just a question of getting to know a slightly different set of tools.

> Then ofc K8S/docker/etc can run on mainframes, presenting another layer of abstraction.

wtf why even plow $$$ into hardware at that point?

Mainframes are more energy efficient for a given level of performance than an equivalent farm of servers. Additionally, the redundancy, hot-swapping, and resource utilisation is generally better.

A corporation might well calculate that, for its typical workloads, mainframes make a better K8s platform in the long run than server farms.

There was a funny ad years back where an exec walks into the data center and finds it nearly empty after the young newbie has consolidated all of their servers into VMs running on a single z990. (In retrospect I notice there are no disk drives or tape drives to be seen, though.)
I find that claim pretty hard to believe tbh. Any actual benches published? It’s like Oracle claiming they are the shit but then actually not allowing any performance benching whatsoever. The 14nm process that they use to build those kinda leads me to believe it’s all marketing
Why should it be so hard to believe? A mainframe box is about the size of a rack of servers, and all the components are much more tightly integrated. Plus the utilisation on m/fs is much higher than on normal servers.

I don't have benchmarks, but googling "mainframe energy efficiency" brings up a load of results, eg:

https://www.bmc.com/blogs/mainframe-sustainability-green-it/

https://www.serverwatch.com/guides/for-energy-savings-consid...

https://www.suse.com/c/mainframe-versus-server-farm-comparis...

These all seems like pure marketing. I would love to see actual technical benchmark (this would also make prime HN material even today). Usually companies that actually think they have a performance edge publish those ;)
The hardware is badass. It only becomes cost-efficient when you need to scale far up, but then it is very good. The have been building and improving these machines for nearly 70 years now.
Ford has been in business for longer still makes dogshit cars
StackOverflow, I feel, inherently ties into the "Release early. Release often." philosophy: if you ship broken code , oh well , there'll be a release soon enough to fix it. This can not be borne in a mainframe environment. This is not to say there aren't bugs because of course there are but the expectation is completely different. This kind of "by your bootstraps" education is no bueno. You will get lots of training and excellent documentation. We used to measure the amount of documentation IBM ships with the mainframe not in pages but in yards it takes on the shelves.

StackOverflow in itself is the answer to the question "who you gonna call" -- because you might be alone, or you might be working on a small team where no one has better expertise, and usually you are working with open source and so no one is obligated to pick up the phone at the software "manufacturer". This scenario does not play in a mainframe environment: you are going to be part of a larger team, full of literal graybeards and when push comes to shove then you do have a contact number: your employer is paying absolutely ridiculous amounts of money to the software company and they will have a contact person who will pick up the phone.

Yeah, mainframe coding is much closer to "code NASA runs on spacecraft" than what most people consider coding to be today. And the level of hardware support (mainframes are basically redundant on everything) and software support is unheard of. Consider that these things are so integrated into major banks, etc, that even minutes of downtime would cost millions upon millions, and think of all the things you can spend millions on to reduce the chance of it happening.
> mainframes are basically redundant on everything

Not only that but that redundancy is hidden from everything. Already decades ago the Hungarian electricity distributor had a "RAID" storage unit where one bunch of disks were at the capitol, the other bunch connected with fiber at another city -- and you talked to this thing as if it were an ordinary disk. Short of an invading army nothing could cause data loss on that thing -- simple aerial bombing wouldn't because the unit in the capitol was tens of meters underground... that's not concerns you have on your average web app.

Yeah, one thing that I've been really disappointed with is how UNRELIABLE the "cloud" is - unless you engineer all the reliability in the software itself.

We have the technology and the capability to do things like run a VM and have it move between hardware when that hardware fails or needs replacement.

but that would cost money.

VMs can often be configured to do "live migration" but that doesn't protect a running instance if the hardware it is running on fails completely. There is such a thing as fault tolerant hardware/software stacks but, yes, most modern architectures shift application resiliency higher up the stack.
> the capability to do things like run a VM and have it move between hardware when that hardware fails

This is one of my favorite features of Google Cloud:

https://cloud.google.com/compute/docs/instances/live-migrati...

Unfortunately, Google continues to be the third-string provider in the US, so I don't often get the opportunity to work with Google Cloud.

I want to be able to justify using Google Cloud for projects, but the fact that it’s a Google product is the main obstacle to that. If history is anything to go by, relying on Google products and services seems like a great way to set yourself up for major problems down the line. Either the product you’re using is shut down on short notice or some automation flags a false-positive and you’re left screaming into the void trying to get yourself unbanned.
It’s not a live migration. It’s running an a VM in a sysplex which is in lockstep with its peer. There’s not a failover in the tradition sense..the I/O just goes from one side to the other.
> This can not be borne in a mainframe environment.

I mean, maybe not in an old-school 1970s batch-SIMD mainframe environment with limited storage memory.

But in a modern mainframe environment, where

1. every tenant being processed is hitting their own virtualized environment locked into their own legacy versions of everything (think: separately-SCMed "Enterprise" deployments of SaaS software — just all living together on one machine cluster rather than on-prem per customer); and

2. you've got the spare storage capacity to do everything via async-queued CQRS/ES + writing secondary representations and cubes to a local data lake, rather than ever updating anything in place...

...then why not do "agile" blue-green deploys of your ACH reconciliation logic, starting with the smallest tenants first?

If you ever produce a bug in such an environment, you can always just: stop the job; emit tombstone records for all the CQRS Commands it produced so they'll be ignored on "outbox processing" rather than pushed to consumers; fix the bug; up the version number for OLAP report generation, invalidating + requiring recomputation for any reports produced from the data in the reporting period; and then start the job up again. No external system will ever have to know, because your own system should be set up such that no other external system is synchronously dependent on its outputs. (This is half the reason things like ACH are designed with the async "flex" they have.)

And, in fact, assuming you've got the spare CPU power (which you do), you can even run entire reporting / integration cycles twice — once under the old logic, once under the new logic — and examine the resulting queued commands + reports to see that they all come out the same, before allowing anything to go through. You can do this not just in production, but experimentally, against a corpus of all old input data for each tenant (which you've almost certainly kept around.) And, as such, you don't even have to stick with those virtualized legacy environments that mainframe architectures like z/OS were designed to enable — you can actively migrate clients away from them (even automatically, with CI/CD-triggered graduated rollouts et al) as soon as you can prove that their workloads (both present and historical!) won't be affected by the change. Each tenant can be re-pinned over time to the newest release that can be proven to be equivalent to the original release provided to them on all known data.

One of the key insights about mainframe programming, is that the software architectures of the kinds of systems deployed on mainframes, are designed to be resilient against individual bugs; or, one might say, against individual programmers who don't know what they're doing. Systems engineering in e.g. finance, is to bad individual-component / individual-release logic, as NASA's Mars-rover systems engineering is to bad hardware: designed under the assumption of the potential for failure, and designed with built-in remediation strategies for that failure.

Thanks for sharing. TBH I envy those good trainings if they are that good. The trainings we get (e.g. GCP) are OK but definitely not exceptionally good. I actually wonder what training IBM gives.
IBM historically was the most proprietary of the most proprietary. Like, if there were ANY information sharing out there in public about mainframe programming the way there is about Java/JavaScript/Node/Go/Rust or even Windows programming today, that would get you visited by an army of men in suits. Not government agents, but just about as scary: IBM lawyers.

So that cultural value of keep everything close to the vest and only learn through official channels, still persists in IBM mainframe culture today. Especially since there is little to no "hacker culture" surrounding mainframes since it's not like you can download z/OS and run it on your PC (things like Hercules notwithstanding).

This might have become true mostly after 1987 to 1990, when the IBM managers began to regret the former openness of IBM, (wrongly) believing that it might have contributed to their diminishing share in the computer market, and they have made various, mostly failed, attempts to replace more open products with proprietary products, like the IBM PS/2.

At least before 1980, during the IBM System/360 and IBM System/370 generations, abundant documentation about any aspect of any IBM product was available, much more detailed than any modern documentation.

Moreover, for many of the programs provided by IBM with the hardware, the source code was available, even if they were not open-source in the modern sense, because the users were not encouraged to modify and redistribute them, even if such activities happened sometimes, e.g. within the IBM SHARE user group.

When the IBM PC was introduced in 1981, this policy of providing exhaustive documentation was still active, which is why the IBM PCs were delivered with a ton of manuals, including descriptions of the hardware interfaces and the complete listing of the source code for the BIOS firmware.

Obligatory mention of ‘Master the Mainframe’
Look for IBM Redbooks, also the "Mainframe" has 5 different operating systems, zVM, OS2, zOS, Linux (s390x architecture), and somehow I forgot the other.

There is Code in a multitude of languages even when it is not Linux, from C++ to Java, but nowadays also nodejs and whatever you want to run in that architcture.

Edit:

Basically, you should look for "System Z" which is the actual name of the machine, and "redbooks" the name of the documentation manuals.

Example: https://www.redbooks.ibm.com/domains/zsystems

Companies have been trying to bury the mainframe for 40+ years in search of "cheaper" alternatives. Software companies, with few exceptions, have followed suit. The early implementations of "Open Systems" software on the mainframe were generally unmitigated performance disasters. It's a bit better now, but not something you'd want to bet the bank on.
A few years back I did something called 'master the mainframe' where they provided a TSO login for you on an instance running in one of their labs. They also provided you with a bunch of fun exercises to learn more about the system.

I think this is the equivalent - https://ibmzxplore.influitive.com/users/sign_in

"The IBM Z Xplore Learning Platform (formerly called Master the Mainframe) is a fun way to get hands-on experience across a variety of technologies, to develop valuable skills, and to earn digital badges – with no prior knowledge required!"

I've had this bookmarked for years, never gotten around to starting it, though. Web development continues to entertain, challenge, and sustain me.

I haven't touched a mainframe in over a decade(and i was only ever doing user administration on one) but from my experience with hpux and other legacy platforms a big part of the reason is that the actual information about the core platform lives in old hardcopy textbooks and paywalled vendor documentation, and because a lot of those platforms are "feature frozen" the old textbooks are still valid enough.

And on the application side you are typically dealing with databases and Runtimes(Java mostly) that also exist on Linux and have an large Linux centric community where any legacy programmers and admins kind of drown in the masses.

There is a whole bunch of companies out there with large COBOL and ALGOL code-bases but but as the problem here is less about generic mainframe skills and more about knowing how to work large COBOL or ALGOL projects.

There's stuff out there, it's just not always easy to find. A lot of the IBM mainframe stuff, for example, is buried in their catalog of "Red Books" found at www.redbooks.ibm.com.

Check out:

https://www.ibm.com/z/trials

https://www.redbooks.ibm.com/search?query=%22system%20progra...

https://developer.ibm.com/?q=z%2Fos

Also search ibm.com for terms like "PL/I", "COBOL", "CICS", "RPG" and so on and you'll likely turn up more of the mainframe stuff. You can, of course, program mainframes in other languages, especially Java. But from an IBM perspective, references to the former batch of terms will generally turn up stuff about their mainframes, or their minicomputer series (mostly what's called iSeries these days, as far as I know. Formerly the AS/400, S/38, etc).

There are also various print books from 3rd party sources that can be found on Amazon. Ex:

https://www.amazon.com/IBM-COBOL-Complete-Guide-2020/dp/0655...

https://www.amazon.com/Quick-Start-Training-Application-Deve...

etc.

The reasons for this are, so far as I can tell, largely what other commenters have already posted. It's just a different culture and way of doing things, and the mainframe world just works a bit differently. And I think a lot of that is because that world is so insular now with IBM being more or less the only mainframe vendor left. I suppose Unisys or Hitachi or Fujitsu or somebody may still make a mainframe here and there, but the market is almost completely dominated by IBM. So the "mainframe way of doing things" is more or less "the IBM way of doing things" and in particular it's a very old skool version of "The IBM way" at that.