←back to thread

127 points Anon84 | 1 comments | | HN request time: 0.201s | source
Show context
ufmace ◴[] No.38509082[source]
The article title is clickbaity, but the actual point is the proposal of using LLMs to translate large amounts of legacy COBOL systems to more modern languages like Java. Doesn't seem terribly useful to me. I expect you could get a 90% solution faster, but the whole challenge with these projects is how to get that last bit of correctness, and how to be confident enough in the correctness of it to actually use it in Production.

But then all of this has been known for decades. There are plenty of well-known techniques for how to do all that. If they haven't actually done it by now, it's a management problem, and no AI tech is going to fix that.

replies(11): >>38509198 #>>38509418 #>>38509802 #>>38509995 #>>38510231 #>>38510273 #>>38510431 #>>38511157 #>>38511186 #>>38512486 #>>38512716 #
matthewdgreen ◴[] No.38509198[source]
How hard is it to actually learn COBOL? It seems like a fairly simple language to pick up, but maybe the idiomatic COBOL used in these legacy systems is particularly nasty for some reason.
replies(5): >>38509221 #>>38509476 #>>38509483 #>>38510105 #>>38510187 #
setr ◴[] No.38510105[source]
I don’t think cobol is that difficult; the problem is that it runs on the mainframe, and that’s a whole different beast. Everything in the mainframe world is both expensive and vendor-supplied, so it’s difficult to learn outside the company, and sufficiently proprietary that you’re probably not going to transfer it well elsewhere.

The language itself also encourages troublesome patterns, like all variables essentially being globally defined and untyped, procedure line numbers matter because of things like PERFORM A THROUGH B (which will execute all logic found between paragraph A and paragraph B)

replies(1): >>38510213 #
1. jacquesm ◴[] No.38510213[source]
PERFORM PERFORM UNTIL ...

The reason for that is that originally the 'WITH TEST BEFORE' bit wasn't there so what looked like the test was done afterwards actually would just exit the loop immediately without executing the loop body at all.

So the syntax totally wrong-footed you into believing that your loop body would always be executed at least once but never did...