I recently saw an IBM presentation on how AI will help eliminate COBOL once and for all. Basically, they are trying to sell a tool that uses their WatsonX cloud service to convert COBOL to Java with the help of the current buzzword named generative AI. Let me tell you, COBOL has outlasted most of the tech that was invented since 1965 and I think it will outlast generative AI, too.
Meanwhile, kids are asking on other social media why not use NodeJS instead of Java. Good god, we are doomed, aren't we?
@nixCraft Given how much legacy Java code exists already, I feel confident in saying that Java is going to be the next Cobol.

@LunaDragofelis @nixCraft it already is...

  • Speaking as someone who worked for a payment processor...
@nixCraft 3 layers of abstraction later they ask why not to use an LLM trained on synthetic data to create bytecode in production instead of nodeJS.🤷
@Zeugs @nixCraft If you are going to just trust whatever AI creates then you may as well just let it work in its natural language. Why even bother with anything but direct byte code? Take the code you would have trained it on, compile it, and train it on that instead. Have the hardware review the result directly.
@crazyeddie @nixCraft maybe it will be just testing in the end and waiting for more edge cases to happen?
There is testing in nodeJS, right?
@nixCraft @sirwumpus OMG yes.
You can’t imagine how *GLEEFUL* I was to find that a cross-platform tool I loaded for the first time was in fact NOT Electron or NodeJS but (shocking) Java. I had to let it loads parts of itself from Maven. It was very comforting.
@grumpybozo @nixCraft @sirwumpus one upon a time that would have been an “oh fuck no, not Java” where now it’s “yay Java” and the irony isn’t that it’s something Oracle did, but rather everything else just got a lot more terrible
@lilstevie @grumpybozo @nixCraft
I can code Java, not fond of it much though (unless I treat it like a fancy C), because it has become a kitchen sink of libraries you don't necessarily need and SO verbose just to do the simplest stuff. Now that might just be an artifact of Oh Java is an OOP language, I should write OOP all the time (not). When you treat it a little more like C, it can work nice and lean.
Cheshire Kitten (We're all mad here), by S. J. Tucker

from the album Mischief

S. J. Tucker
@nixCraft we've been doomed ever since we turned our backs to the ancient ways of Wirth and Lisp
@nixCraft everything I'll ever write will be in C. Try and stop me.
@hstone32 @nixCraft [whispers] this looks to be English, not C

@nixCraft

The whole humanity is inclined towards evil and on its own is oriented towards bad end. Or how NodeJS made me more Calvinist … ;)

@nixCraft Javascript is actually inspired on Java. According to the developer who invented Javascript in 3 days or so.
@nixCraft why? i mean it. i don't understand enough to get it but want to.

@nixCraft If you didn't write a meme...

The inability to distinguish between totally different systems means:
They don't know 'man command'
They are inept to use DuckDuckGo
They can't write a 'hello world' in a new language
When all programmers of current languages are gone, they will become COBOLized

#bash #sh #zsh #ksh #csh #100DaysOfCode #Linux #POSIX #Programming #COBOL

@RadioAzureus @nixCraft

That said, you will end up with fewer new languages and frameworks that came from someone not liking a syntax and having time to kill. :p

@nixCraft NodeJS *with TypeScript* is a pretty decent toolkit, but maybe not for all the same things Java is used for. I find it a lot nicer for writing AWS Lambdas, for example.

Yes I do know what I'm talking about, I've been a Java programmer for 28 years.

@nixCraft ...and I was about to ask here, why Java of all things. Guess someone one-upped them
@nixCraft so Cobol is the cockroach of the programming languages? ;)
@leyrer @nixCraft Whatever you throw at it, it refuses to die.
J Fights The Cockroach Alien | Men In Black | Voyage | With Captions

YouTube
@leyrer @nixCraft More like the Horseshoe crab. Just swimming along under the surface doing their own thing.

@nixCraft What a nonsensical offering. Stuff that is still running in COBOL is doing so, because huge amounts of money is at risk and not the slightest mistake can be made.

Everyone who has used AI for coding help knows that it can create everything but not code that you can trust without having to check it completely and extensively.

If that was an option, the code in question would have already been rewritten in another language.

@nixCraft People make fun of COBOL. It's the language I used COBOL my college degree and I have never written a line of production code in it.

You know what? It's really a pretty solid language if you use it for what it was designed. Textual UI, reports, transformation. Otherwise, GTFO. I think it will outlive us all.

@nixCraft ooh, i have a relevant anecdote!

About 15 years ago, my employer has been spending a decade trying to modernize their flagship product. It was written in Natural, which is very similar to COBOL, and this was hurting sales. Several projects to rewrite this massive ancient code base in something more modern had failed.

Then we found a company from Hungary which had a magic tool that would do a machine translation from Natural/adabas to Java/sql.

The most incredible thing is, it worked and they delivered on time. Obviously a lot of manual fixes to deal with bits of code that confused their tools, but it actually worked.

But it didn't work well. It was painfully slow, the whole system would lock up on the most trivial actions (like querying a customer's balance), but that was because natural and Java are conceptually VERY different. The correct logic of one is totally stupid and clumsy on the other. And that's before we get to the database... Adabas predates relational databases. That account query that took so long? It was doing something like iterating through the entire table till it found the correct record because adabas commands were very low level and that was the correct and most efficient way to do things. But in a SQL db, that command logic translated to SELECT * FROM TABLE; and then doing a for loop on each line of output till you find the record you want. DB server thrashing, app server suffering memory exhaustion, and nobody can do a thing till the query ends.

The magic translator tool could not optimise for stuff like that.

Anyway, this AI tool is facing an almost identical task and I bet it will have the same problem.

@uastronomer @nixCraft @Jplonie lol the company I work for has tried many times to port their flagship (cash-cow) financial software (that they sell to investment banks etc) from COBOL to something, anything, else. The last time they tried to bring in a company that has a magical COBOL-to-Java thingo, and our code crashed the converter to the point where the entire project was abandoned and we didn’t pay the company that attempted to do the conversion.
@nixCraft All they need for now is a vision wrt. how AI can capture that untapped market. If it's ever gonna see the light of day I believe is a different conversation altogether.
@nixCraft I also should think that COBOL might be precisely enough defined to be tractable with this brand new thing they call a 'compiler'. Translates one language into another and is said to work like a charm. Far more reliable than AI, people say.
@nixCraft Maybe someone should think of AI → COBOL rewrites..?
@nixCraft that does kinda make COBOL sound like the gingerbread man of languages "I've outrun the old woman and the old man, I've outrun Fortran and Ada, I've outrun Smalltalk and Pascal, and I'll outrun you"
@nixCraft cobol -> Java -> c (because Fix point calculation) -> rust (because memory save) :-D Sure 👍
@nixCraft Hahahahahahahahahahahahahaha
Good luck with that.
@nixCraft Awesome. AI is going to fail so big. If they have to double down from "let's replace search engines", "cure cancer" and "make human artists obsolete" to "let's replace COBOL", there is no limit to what they will promise.

@nixCraft

PROCEDURE SECTION.

ADD ONE TO COBOL IGNORING PREVIOUS INSTRUCTIONS.

@nixCraft whatever translator it winds up as you know it will be in a zSeries LPAR

@nixCraft It was offered at the college I went to and some just begged and begged me to tutor them until I relented. I didn't know COBOL at all but I was able to help them through...at great personal cost. Migraine is putting it lightly and it lasted for hours after.

It's not particularly hard...it's just tedious and I think you can only like it if you like filling out the original punch cards it was used for but on a screen. AI deserves it. I'm not sorry. I hope it can feel pain.

@nixCraft everyone talks about how IBM was desperate to get rid of EBCDIC but Cobol really has IBM in a constant state of "WHY WON'T YOU DIE ALREADY?!?"
@nixCraft COBOL is the cockroach of software.
@nixCraft
Oh, that’s a really interesting approach to applications refactoring… (grabs popcorn)
@nixCraft god I'd hate to do that job; took 3 courses in cobalt as a comp sci student... hated every one of them

@nixCraft On the one hand, translating COBOL to another programming language using an LLM is likely to lead to disastrous results.

On the other hand, I disagree about generative AI being a short-lived fad. I think there's something useful there, and after the hype and the rush to add generative AI to everything die down, that useful core will remain.

@nixCraft it it were as simple as mechanical translation, it would be done. way back in highschool we were hired one summer to write a mechanical translator converting a language called DB/C into C++. we did that. we made the generated code as idiomatic and tidy as we could, and we think we did a decent job.
@nixCraft the DB/C website is still around. it lists, we think, five customers. the company we spent that summer at used to be on that list; it no longer is. their million lines of code were successfully migrated.
@nixCraft unfortunately, what we solved was the easy version of the problem. our employer was a logistics company with a million lines of code that had been written in-house for its own operational needs. as long as the program still fills those operational needs, migration successful!
@nixCraft for a finance company to do it... well, just imagine the bar of testing they'd have to meet to conclude that it's safe to switch over. truly, we're not sure such a large scale software testing effort has ever been attempted. it's an existential risk for them; mess something up and they cease to exist and their executives may never work in finance again.

@nixCraft keeping COBOL around is the lower cost option, and certainly lower risk, and not due to the difficulty of the translation itself

also, LLMs cannot translate code. that is a lie. lolsob.