Tales from Mainframe Modernization

48 todsacerdoti 11 5/22/2025, 12:01:46 AM oppi.li ↗

Comments (11)

neilv · 3h ago
This would be fun to work on.

But, as an over-30 on HN, I'd be afraid that having the word "mainframe" on my resume would alienate a 20-something co-founder or hiring manager. :)

OK, OK, I did once do a little bit of mainframe-related work. It was reverse-engineering a small part of a certain domain-specific mainframe network protocol, with the goal of replacing at least one of the companies' mainframes with... 21st century Linux servers running... Lisp. (IMHO, the HN karma should at least balance out there by using Lisp, like the post did by using Rust.)

dstroot · 1h ago
There are millions and millions of lines of old COBOL code. I’m surprised there isn’t a commercial “pluggable” transpiler product. Read in COBOL, output Java, Rust, Go… Many COBOL systems also have a lot of intelligence in the job stream order, and dependencies - so that needs to be converted too. This seems like a no-brainer to build a consulting practice and tools around. Oh, and the data has to be converted too.
lhoff · 55m ago
That exists. There are multiple vendors that have solutions to automatically transform COBOL code.

Deloitte, for example, has quite a big practice around Mainframe modernization with a toolsuite https://www2.deloitte.com/us/en/pages/consulting/topics/appl...

And AWS bought a company with such a toolsuite and offers it now as a service https://aws.amazon.com/de/mainframe-modernization/capabiliti...

mdaniel · 53m ago
gnu-cobol is likely what you're after (cloudflare even used it to demo their Worker platform) but my experience has been that the language isn't the nonsense it's the environmental that's horrific to port

Consider a hypothetical Python example:

  import os
  os.system("DIRECTORY ./SHELVED_STATE")
if you ported the python to C# it wouldn't suddenly work on Windows or Linux
markus_zhang · 5h ago
Interesting. Looks like everyone on HN is getting interesting jobs left and right.

The most compiler-ish work I ever worked on is a yaml to yaml transpiler. I mean, yeah...at least I got to write some recursions.

almostgotcaught · 3h ago
Writing a transpiler is easily the most boring and tedious job you can have, especially if the target or source language is useless (so you don't learn anything useful as a matter of course).
jasonthorsness · 3h ago
I'm surprised modern languages haven't gone farther with base 10 numbers. C# has decimal (not sure how widely used that is) but what other language has built-in, non-library base 10 numbers?
viraptor · 1h ago
Python has decimals for example as do many other languages. C# decimal is used everywhere currency is used (I really hope). But apart from currency... why would you use base 10? We've got native bigints in lots of languages so you don't even have to care how they're represented internally.
anonzzzies · 4h ago
Nice read but I don't get, and maybe someone here knows;

> 9(3) is shorthand for 999

I did some cobol work in the past and know 9(3) but you can write 999? And how is 4 chars shorthand for 3?

nine_k · 3h ago
I think it's uniformity. You have 9(n) all over the place, and only pay attention to the number in parentheses. It's more error-prone to count repeating characters, and it's easier (to me) to notice a typo in the form 9(4) instead of 9(3) than 9999 instead of 999.