3 ms·
When people say "bring this cobol code to a new language to improve maintainability", they don't just mean the syntax. Any C developer can learn cobol syntax in
by SonOfLilit 2y ago
When people say "bring this cobol code to a new language to improve maintainability", they don't just mean the syntax. Any C developer can learn cobol syntax in 10 minutes. They mean things like use functions instead of gotos, don't use just global variables, don't depend on lots of weird tooling from the parallel world of IBM mainframes, with most of your logic hidden in weird batch scripts with names like ABC@@DEF.
I could write a cobol to c translator in a weekend. Nobody would buy it. Source: I've spent the last year and a half consulting on a huge project to rewrite a cobol codebase.
- pmarreck 2y agoSo basically the real work is not syntax translation (which a machine could do, albeit probably poorly) but semantics translation (which requires a deep understanding of both languages as well as what the code's intent is), so that you can do things like replace goto's with function calls without breaking expected behavior given inputs. A similar problem to translating procedural code in a language with mutable variables to functional code in a language with immutable variables. A lot of old functions in C etc. were expected to modify their passed-in arguments, for example, which would be a no-no today (note: not in the C space, I'm currently an Elixir dev, but I'm hoping that's now frowned upon!) I've noticed that LLM's are still not very good at this, too. I'm unfamiliar with COBOL but I'm currently looking for work; not sure if you'd be up for a conversation just to discuss your work since (for some odd reason) I enjoy refactoring (as well as software preservation and validation); at the very least I'd probably be a decent rubber-duck if you got stuck on something lol
- SonOfLilit 2y agoReading COBOL and translating its behavior 1:1 is maybe 1% of my job. There is so much more to modernising a bank. Technologically and culturally. I can discuss my work, but unless you have a work permit in Israel, I won't be able to hire you.
- pmarreck 2y agoHa, now I get the username! Without getting into specifics, is it rewarding work? I can probably not do terrible at the 99% part
- SonOfLilit 2y agoTo get the username you'd need to be familiar with at least the old Hebrew translation of Lord of the Rings and my mother :) I'm enjoying tech-leading this project very much. I get to spend the time needed to write unusually high quality code, and there's a wide funnel that collects interesting debugging challenges and gets the best ones to my desk. Working with a bank is... not for everyone. Not for me ten years ago, for example.
- Muromec 2y agoIs there any approach other than extensively documenting both the intent and inner workings of the system and then doing ground up rewrite?
- SonOfLilit 2y agoThere are a hundred approaches for as many big banks with mainframe cores. The problem of modernizing a bank is much, much bigger than what language its core logic is written in. We're talking about a custom software stack grown from a first version written fifty years ago, before the word "coupling" meant anything to programmers.
- le-mark 2y agoIs the project you’re on a rewrite or a rehosting? Do you think an open source cobol jcl cics rehosting platform could gain traction?
- SonOfLilit 2y agoRewrite. I don't think I know anyone that would buy one, paying IBM is not the main issue with mainframes, and having support with big pockets is nice. But I only work in one corner of the industry.