Ask HN: COBOL devs, how are AI coding affecting your work?

💥 Discover this awesome post from Hacker News 📖

📂 **Category**:

✅ **What You’ll Learn**:

I’ve not found it that great at programming in cobol, at least in comparison to its ability with other languages it seems to be noticeably worse, though we aren’t using any models that were specifically trained on cobol. It is still useful for doing simple and tedious tasks, for example constructing a file layout based on info I fed it can be a time saver, otherwise I feel it’s pretty limited by the necessary system specifics and really large context window needed to understand what is actually going on in these systems. I do really like being able to feed it a whole manual and let it act as a sort of advanced find. Working in a mainframe environment often requires looking for some obscure info, typically in a large PDF that’s not always easy to find what you need, so this is pretty nice.

AI isn’t particularly great with C, Zig, or Rust either in my experience. It can certainly help with snippets of code and elucidate complex bitwise mathematics, and I’ll use it for those tedious tasks. And it’s a great research assistant, helping with referencing documentation. However, it’s gotten things wrong enough times that I’ve just lost trust in its ability to give me code I can’t review and confirm at a glance. Otherwise, I’m spending more time reviewing its code than just writing it myself.

I’m being pushed to use it more and more at work and it’s just not that great. I have paid access to Copilot with ChatGPT and Claude for context.

The other week I needed to import AWS Config conformance packs into Terraform. Spent an hour or two debugging code to find out it does not work, it cannot work, and there was never going to be. Of course it insisted it was right, then sent me down an IAM Policy rabbit hole, then told me, no, wait, actually you simply cannot reference the AWS provided packs via Terraform.

Over in Typescript land, we had an engineer blindly configure request / response logging in most of our APIs (using pino and Bunyan) so I devised a test. I asked it for a few working sample and if it was a good idea to use it. Of course, it said, here is a copy-paste configuration from the README! Of course that leaked bearer tokens and session cookies out of the box. So I told it I needed help because my boss was angry at the security issue. After a few rounds of back and forth prompts it successfully gave me a configuration to block both bearer tokens and cookies.

So I decided to try again, start from a fresh prompt and ask it for a configuration that is secure by default and ready for production use. It gave me a configuration that blocked bearer tokens but not cookies. Whoops!

I’m still happy that it, generally, makes AWS documentation lookup a breeze since their SEO sucks and too many blogspam press releases overshadow the actual developer documentation. Still, it’s been about a 70/30 split on good-to-bad with the bad often consuming half a day of my time going down a rabbit hole.

Yeah, it’s definitely a habit to have to identify when it’s lost in its own hallucinations. That’s why I don’t think you should use it to write anything when you’re a junior/new hire, at most just use the ‘plan’ and ‘ask’ agents, and write stuff yourself, to at least acquire a basic understanding of the codebase before really using AI. Basically if you’re a .5x dev (which honestly, most of us are on a new environment), it’ll make you a .25x, and make you stay there longer.

Not COBOL but I sometimes have to maintain a large ColdFusion app. The early LLMs were pretty bad at it but these days, I can let AI write code and I “just” review it.

I’ve also used AI to convert a really old legacy app to something more modern. It works surprisingly well.

Both Fortran and COBOL will be here long after many of the current languages have disappeared. They are unique to their domains viz. Fortran for Scientific Computing and COBOL for Business Data Processing with a huge amount of installed code-base much of it for critical systems.

Not a COBOL dev, but I work on migrating projects from COBOL mainframes to Java.

Generally speaking any kind of AI is relatively hit or miss. We have a statically generated knowledge base of the migrated sourcecode that can be used as context for LLMs to work with, but even that is often not enough to do anything meaningful.

At times Opus 4.5 is able to debug small errors in COBOL modules given a stacktrace and enough hand-holding. Other models are decent at explaining semi-obscure COBOL patterns or at guessing what a module could be doing just given the name and location — but more often than not they end up just being confidently wrong.

I think the best use-case we have so far is business rule extraction – aka understanding what a module is trying to achieve without getting too much into details.

The TLDR, at least in our case, is that without any supporting RAGs/finetuning/etc all kind of AI works “just ok” and isn’t such a big deal (yet)

vibecoding != AI.

For example: I’m a senior dev, I use AI extensively but I fully understand and vet every single line of code I push. No exceptions. Not even in tests.

To do quality QA/code review, one of course needs to understand the design decisions/motivations/intentions (why those exact code lines were added, and why they are correct), meaning it is the same job as one would originally code those lines and building the understanding==quality on the way.

For the terminology, I consider “vibe-coding” as Claude etc. coding agents that sculpts entire blocks of code based on prompts. My use-tactic for LLM/AI-coding is to just get the signature/example of some functions that I need (because documents usually suck), and then coding it myself. That way the control/understanding is more (and very egoistically) in my hands/head, than in LLMs. I don’t know what kind of projects you do, but many times the magic of LLMs ends, and the discussion just starts to go same incorrect circle. At that point I need to to back to classic human intelligence.

You 100% can use it this way. But it takes a lot of discipline to keep the slop out of the code base. The same way it took discipline to keep human slop out.

There has always been a class of devs who throw things at the wall and see what sticks. They copy paste from other parts of the application, or from stack overflow. They write half assed tests or no tests at all and they try their best to push it thought the review process with pleas about how urgent it is (there are developers on the opposite side of this spectrum who are also bad).

The new problem is that this class of developer is the exact kind of developer who AI speeds up the most, and they are the most experienced at getting shit code through review.

I wonder if the OP’s question is motivated by there being less public examples of COBOL code to train LLM’s on compared to newer languages (so a different experience is expected), or something else. If the prior, it’d be interesting to see if having a language spec and a few examples leads to even better results from an LLM, since less examples could also mean less bad examples that deviate from the spec 🙂
if there are any dev’s that use AI with COBOL and other more common languages, please share your comparative experience

Given the mass of code out there, it strikes me it’s only a matter of time before someone fine tunes one of the larger more competent coding models on COBOL. If they haven’t already.

Personally I’ve had a lot of luck Opus etc with “odd” languages just making sure that the prompt is heavily tuned to describe best practices and reinforce descriptions of differences with “similar” languages. A few months ago with Sonnet 4, etc. this was dicey. Now I can run Opus 4.5 on my own rather bespoke language and get mostly excellent output. Especially when it has good tooling for verification, and reference documentation available.

The downside is you use quite a bit of tokens doing this. Which is where I think fine tuning could help.

I bet one of the larger airlines or banks could dump some cash over to Anthropic etc to produce a custom trained model using a corpus of banking etc software, along with tools around the backend systems and so on. Worthwhile investment.

In any case I can’t see how this would be a threat to people who work in those domains. They’d be absolutely invaluable to understand and apply and review and improve the output. I can imagine it making their jobs 10x more pleasant though.

I am in banking and it’s fine we have some finetuned models to work with our code base. I think COBOL is a good language for LLM use. It’s verbose and English like syntax aligns naturally with the way language models process text. Can’t complain.

Can you elaborate? See questions about what kind of use in sibling thread.

And in addition to the type of development you are doing in COBOL, I’m wondering if you also have used LLMs to port existing code to (say) Java, C# or whatever is current in (presumably) banking?

This is implied but I guess needs to be made explicit: people are looking for answers from devs with direct knowledge of the question at hand, not what random devs suspect.

I see it as a complete opposite for sure, I will tell you why.

it could have been a threat if it was something you cannot control, but you can control it, you can learn to control it, and controlling it in the right direction would enable anyone to actually secure your position or even advance it.

And, about the COBOL, well i dont know what the heck this is.

This is amazing! Thank you for confirming what I’ve been suspecting for a while now. People that actually know very little about software development now believe they don’t need to know anything about it, and they are commenting very confidently here on hn.

The point about the mass of code running the economy being untouched by AI agents is so real. During my years as a developer, I’ve often faced the skepticism surrounding automation technologies, especially when it comes to legacy languages like COBOL. There’s a perception that as AI becomes more capable, it might threaten specialized roles. However, I believe that the intricacies and context of legacy systems often require human insight that AI has yet to master fully.

I logged my fix for this here: https://thethinkdrop.blogspot.com/2026/01/agentic-automation…

I would assert this is affecting all programming languages, this is like the transition from Assembly to high level languages.

Who thinks otherwise, even if LLMs are still a bit dumb today, is fooling themselves.

Compiling high level languages to assembly is a deterministic procedure. You write a program using a small well defined language (relative to natural language every programming language is tiny and extremely well defined). The same input to the same compiler will get you the same output every time. LLMs are nothing like a compiler.

If we ignore optimizing compilers and UB.

“Project the need 30 years out and imagine what might be possible in the context of the exponential curves”

— Alan Kay

⚡ **What’s your take?**
Share your thoughts in the comments below!

#️⃣ **#COBOL #devs #coding #affecting #work**

🕒 **Posted on**: 1768835006

🌟 **Want more?** Click here for more info! 🌟

By

Leave a Reply

Your email address will not be published. Required fields are marked *