r/technology • u/chrisdh79 • 1d ago
Project shows you can run a Minecraft server on the 60-year-old COBOL language | The number of COBOL programmers is dwindling, but new developers can still learn it Software
https://www.techspot.com/news/106121-project-shows-you-can-run-minecraft-server-60.html121
u/TemptingSquirrel 1d ago
Why would you not? I know it sounds "impossible" but any modern language is not more powerful than for example Cobol when it comes to computational capability. In other words: you could implement Minecraft in basically any language (Cobol, C, Assembler, C#, Java, Rust, Javascript, Brainfuck) because any of those languages is computationally not more powerful than the other, they are all turing complete.
The reason modern languages are preferred is because they are more secure and/or enable developers to be way more productive. That being said, older languages still have their places in legacy code where it makes no sense or is simply too expensive to reinvent the wheel in a more modern language.
38
u/Kitchen-Tap-8564 1d ago
It has next to zero to do with the technical merits of the languages at all unfortunately.
The only reason anything is too expensive is because they kicked the can down the road on purpose until we have the mess we do now.
4
u/Hardass_McBadCop 14h ago
This. Everything runs on old spaghetti code from the 70s - 90s. In the mid '10s I worked for a nationwide cable company. One that sells and handles home security, Internet, phone, TV, and even mobile. The whole 9 yards.
Their system was still original. Like, they put lipstick on a pig, but when it, often, failed you had to go into the mainframe to change services manually. It was all product codes and command lines. Think Fallout, puke-green screens.
It was the same when I later worked at a call center for a credit card company.
2
u/vom-IT-coffin 12h ago
....everything runs on spaghetti code.
Modern companies aren't any better.
2
u/Hardass_McBadCop 12h ago
My testimony was literally from a modern company just a decade ago. Of course they're not better! Fuck off AI Sam!
1
u/Throwawayingaccount 7h ago
To be fair, a lot of things can change in 10 years.
In this case, noting that they did not change is relevant to discourse.
1
u/homonculus_prime 11h ago
This sounds like the distributed application they wrote to front-end the mainframe was buggy and failed a lot. Sounds to me like the mainframe worked fine since you were able to log in directly and do what you should have been able to do from the buggy "modern" UI.
8
u/perfectshade 22h ago
…those “nice to haves” are largely what stand in the way of people taking the time to do this kind of thing. Why would I want to handle my own memory management, or try to find replacement libraries, or compile for different architectures…for a toy project?
1
u/markth_wi 11h ago
I'd have to wonder if you found a Linux implementation if it wouldn't substantially compile all the way forward from the Cobol-95 standard, but fuck if we aren't going to all find out in just 12 years.
9
u/Alili1996 23h ago
While theoretically true, there are certain things you can't always do with every language when it comes to performance.
In that sense it's reversed, though where older languages are generally closer to machine code and have less overhead through things such as runtime environments taking up processing space.
On the other hand, exactly those runtime environments is what made Java what it is since it allowed applications to run on a variety of different platforms without requiring a custom compilation for every platform.1
u/Serris9K 14h ago
Is that last one genuinely a language??
2
u/einmaldrin_alleshin 7h ago
Yes, it's what's called an "esoteric" language. Not intended to be productive, but funny or interesting in some way. In this case, it's designed to have barely enough instructions to be Turing complete. So writing even something like a hello world program is seriously difficult.
0
u/woodlark14 18h ago
I'm not sure that extends to Brainfuck.
Even assuming you have some sort of implementation for the APIs to allow you to use the functionality needed for minecraft, you still need to get it to run. Brainfuck is going to run horrifically compared to a modern language because of the substitutes for the large number of missing operators. Needing control flow for addition means that you are looking at extreme slowdowns that may leave your port unusable (especially if there's any timeouts for network features).
-9
1d ago
[deleted]
9
u/dangerbird2 22h ago
assembly absolutely is a programming language (or more precisely, a large group of programming languages, one for each architecture and assembler dialect). In addition to giving easier to remember mnemonics for machine instructions, most assemblers have support for symbolic labels (i.e. jump to LOOP_START instead of jump to a specific memory address) constants of various data types, directives to configure the linker, and macros for higher-level programming concepts.
4
u/Sloogs 20h ago edited 19h ago
Where do people even get nonsense ideas like this? And why do they always spout the nonsense so confidently on the internet?
Whether something is a language in computing has nothing to do with architecture or hardware and everything to do with whether it can be built using a formal grammar and have semantics mapped to its syntax.
All of which apply just fine to various assembly languages.
19
u/-bruuh 1d ago
"can still learn it", sounds like the ancient knowledge will be lost in two more decades with no way to recover the knowledge and decrypt the mysterious code
18
u/SkaldCrypto 1d ago
The last COBOL specific class taught at any university in Ohio was in Fall 2011.
There are 31 job listings asking for that skill currently in the state of Ohio.
Yes it is basically ancient knowledge. I know exactly one person who knows this language that isn’t retired. He learned it by working in the mainframe department of a bank. When he joined the team at 26, the previous youngest team member was 54 and they called him “the kid”. I assume they called him the infant.
8
u/BCProgramming 1d ago
The main thing that is being lost as COBOL developers retire is not so much "knowing COBOL"; that's a worthless skill on it's own, because learning a programming language is something any competent developer should be able to do relatively quickly. What is being lost is primarily platform experience actually working with the mainframe systems upon which this cobol software tends to run. Not to mention stuff like ISAM which most modern developers aren't going to understand; But all of that isn't "lost knowledge" either. I mean if a current software dev can make sense of Gradle or NPM or Nuget, they should be able to figure out stuff like ISAM tables.
8
u/KagakuNinja 23h ago
From what I have read, those COBOL programs are running on virtualized instances of ancient IBM hardware and OSes, which were created in the stone age before many concepts in computing were standardized. These OSes use bizarrely different words for everything, and include virtualized punch card decks, run as batch jobs. It truely is a different world.
I actually had the misfortune of using COBOL on my first job, but at least we were using a mini VAX.
2
u/OtherTechnician 20h ago
This comment points to what I think will be the biggest constraint. COBOL compilers for new platforms. Emulation will not get any easier.
2
u/Foodwithfloyd 19h ago
Are there not decent emulators? When I was working on an old db2 instance right out of school we had a vm that we could work on because the mainframe time was too expensive. Obviously not cobol old but for databases it's pretty old
2
u/homonculus_prime 11h ago
You've read wrong. IBM is putting out new hardware almost every other year. z/OS 3.2 is going GA probably sometime next year. COBOL 6.4 was released last year. None of this shit is ancient except the names. The "bizarrely different words" are the same words that have been used for decades.
I think what you're referring to as "virtualized punch card decks" is JCL, and yes, it has been around for a very long time because it is well standardized, and it works.
0
u/xXx_killer69_xXx 1d ago
nobody is looking for junior cobol developers
7
u/d4vezac 1d ago
Based on the story above, they may have to start as the senior ones retire. Someone will have to maintain that code.
7
u/aeschenkarnos 20h ago
“Eh, let ChatGPT do it. How hard can it be?” — senior executive in Zoom meeting from his yacht (other attendees forced to physically be in an office)
3
u/ILoveBigCoffeeCups 18h ago
They do in abundance. I work in finance and more than 80% of all banking is still on mainframe in cobol. Most people are outsourced to India because it’s booming business there
1
1
5
u/sigmund14 1d ago
It is something like that. In the current world of ever-changing apps and websites, things get started from scratch because a developer who first implemented something is long gone to somewhere else and the current developers have no idea what some of the code does.
1
u/Kayge 10h ago
COBOL is a giant pain to migrate from because it often has tonnes of rules built into it with lacklustre documentation.
One dev I knew worked in COBOL for 30 years, and estimated 75% of her work was refining code to match business rules. To rebuild that system, you have to understand what they all do and why, and that info in in someone's head who is close to retirement.
Your aincent knowledge analogy is spot on.
10
u/awood20 1d ago
I learned COBOL as part of my HND. I wouldn't wish it on anyone. At that point it was COBOL 85 as that was the year it was last updated. Not sure what the latest edition is but it's not a nice language to program in.
1
u/homonculus_prime 11h ago
COBOL 6.4 was released late 2023.
1
u/awood20 5h ago
I'm utterly amazed there's a team still putting effort into the language. Surely in the time of AI they could mass translate all the existing mainframe code to something more modern and maintainable?
1
u/homonculus_prime 2h ago
No, there really isn't a good way to do that. There are billions of lines of COBOL code out there, and consequently billions of lines of business logic. That is extremely challenging to convert to another language. I worked for a company that tried converting it. Spent 7 years on it, and then scrapped the whole project because it was not worth the effort.
IBM is still putting a TON of effort into the language, the compiler, and on the hardware it all runs on.
1
u/awood20 2h ago
I know the guys still working in this field are probably paid a fortune but I just couldn't. Motivation would be through the floor. Is there a modern IDE for this stuff even?
1
u/homonculus_prime 2h ago
I mean, ISPF is the greatest text editor that has ever existed, but if you absolutely need a "modern" IDE, yes, there are several. I personally hate them all, and they will pry my ISPF from my cold, dead, hands. There are a lot of "mainframe modernization" initiatives going right now with products like zOSMF and Zowe (IBM really likes the letter z) and things like that. So far, they haven't done anything but make my life more difficult (mainframe security). I think IBM believes that they can entice folks like you if they can make the mainframe look like anything other than a mainframe. Under the covers, I hope it'll still be a mainframe, at least until I retire.
1
u/roastedfunction 2h ago
There’s virtually no open source COBOL code to train the LLM on. It’s all sitting on prem in banks, airlines and governments.
29
u/shiroboi 1d ago
But why?
39
u/razzark666 1d ago
"You see things; you say, 'Why?' But I dream things that never were; and I say 'Why not?"
10
u/ninjascotsman 1d ago
because there is a number of systems still using cobol and there trying to peak instrest in the programming langague to get more people to learn it.
3
u/Garethp 23h ago
The thing that's kept me away from COBOL is that the number of COBOL jobs may be somewhat steady, but that doesn't mean they're numerous. Becoming a COBOL dev means specialising into a niche industry.
What happens if I get sick of the company? Or the company actually does do a rewrite at some point? Or I want to move countries? It's going to be more of an uphill battle trying to explain why my time in COBOL is transferable to newer technologies.
I could be wrong, because I haven't done it, but the reason I haven't tried becoming a COBOL dev is less about the age of the language and more about the fear of having less opportunities once I've been doing it a couple of years.
3
u/aeschenkarnos 20h ago
Perhaps an option might be to market yourself as a specialist in rewriting COBOL to $FASHIONABLE_LANGUAGE? Your actual specialty is COBOL but your skills are framed as current. Then you can include support of current COBOL systems and also support of systems that evolved from COBOL over generations.
1
u/Garethp 19h ago
That's still an incredibly niche set of jobs though. Some places need COBOL Devs and will for a long time, but the are no new projects getting started in it. There's no new work being created by it. Choosing to go into COBOL work in inherently going to limit your opportunities more than most other fields of programming. And from what I've seen COBOL jobs don't offer enough of a higher salary to make up for that.
2
u/aeschenkarnos 16h ago
True, but “do something different instead” is always an option for any line of work. If a person is already well established as a COBOL “developer”/support coder/migrator, they probably have a limited career life left to do that in.
2
u/homonculus_prime 11h ago
but the are no new projects getting started in it. There's no new work being created by it.
Both of these statements are false.
2
10
1
u/DragoonDM 17h ago
Same reason people have gotten Doom to run on everything from refrigerators to pregnancy tests1 . Because why not? A lot of software projects are largely pointless hobby projects that someone started just for the fun or challenge of it.
1 Technically I think they were just using the pregnancy test as a display, with some other device actually running the game
22
u/TheGza1 1d ago
Who would want this? I have learned Cobol to run in mainframes more than 40 years ago and still hate it lol
22
u/gankindustries 1d ago
A lot of legacy systems, like banks, also tend to use it
9
u/TheGza1 1d ago
I know, but thet are not trying to run Minecraft on it lol
10
u/sigmund14 1d ago
Probably next best thing from multiple points of view - from the employer still using COBOL: this candidate at least has some COBOL experience (basically the same as for any other junior position) - from the person learning COBOL: there's probably no software used in the companies that still use COBOL that is open for learning and trying to run Minecraft is probably more fun than some generic exercises.
-1
u/xXx_killer69_xXx 1d ago
nobody is looking for junior cobol developers
5
2
1
u/sigmund14 17h ago
They will soon look for any alive COBOL developer, retired or teenager. There aren't many still working, and most of them are close to retirement, with noone to take over.
2
u/xXx_killer69_xXx 16h ago
so why arent they doing it now? i just checked glassdoor and postings for cobol are under 500 in the entire US
11
4
u/ploooopp 1d ago
I'm considering learning cobol because jobs are niche and I've heard there's good pay, do you feel like that's a good reason to learn it?
4
u/JcWoman 22h ago
I'm a retired software engineer who spent the majority of my career in COBOL. One of the reasons I retired early was because while companies complained about not being able to find experienced programmers, they also didn't advertise openings for them. And the few jobs I did find were all 3-month contracts and required me to relocate to the job area. (This was before the pandemic.). No fucking thank you. I would like a settled lifestyle, thanks.
1
u/CarelessPackage1982 45m ago
Just before Covid they laid off a bunch of Cobol devs, and then when shit hit the fan they needed the systems updated to deal with the load. They asked these guys to do it for free.
3
u/hunterkll 1d ago
I'm heavy in the VMS circles, and with x86 VMS being a thing, this would be hilarious. Since we got our first x86 java port I've known someone running a minecraft (full featured with mods) server on OpenVMS, but this would be even funnier.
2
u/aeschenkarnos 19h ago
“So they could have done this in 1978?”
“Yes if they had thirty billion dollars worth of computers to devote to it and were happy with a graphic speed of one frame per minute.”
1
u/hunterkll 6h ago
Except this is the server side, and probably would run fine on a 1960's s/360 mainframe for modern clients. It doesn't do graphics itself.....
I have a friend who's thinking about trying to get it to run on an emulated DPS8 mainframe running *multics*
3
u/FancyMFMoses 1d ago
You have brought back memories of Rexx, Cobol, and JCL... those days are behind me for a reason.
6
u/HamsterNomad 1d ago
This is great. I worked as a code translator back in the mid 80's. Cobol was easily my favorite. Although for technical programming Fortran couldn't be beat.
I made more money translating code during the summer than I did in 9 months as a high school teacher. That's why I'm a physicist now. More money and better hours.
3
u/addictedskipper 1d ago
Do Turbo Pascal next please!
2
u/aeschenkarnos 19h ago
Fun fact: the original Wizardry was written in Pascal, and at the time held the record for the longest Pascal program.
3
u/sevaiper 1d ago
What a dumb article, obviously you can configure a server with any reasonable language but there’s no real reason to
1
u/joseph4th 9h ago
I took a COBOL class at UNLV in 1986 or ‘87. Older male teacher who spent the first class talking about his hot young 20 something girlfriend. He spent the second class telling us about how his young girlfriend stole money from his bank account. He didn’t show up for the third class and it was canceled soon afterwards.
1
1
u/Varnigma 2h ago
I’m one of those weirdos that learned COBOL in college and loved it.
Never was able to get a job doing it but still would given the chance and I haven’t touched COBOL in 20+ years.
0
u/Snorlax_relax 23h ago
Idiotic article. It’s basically just saying making a server with COBOL is possible. Yes fucking obviously it is
0
0
0
0
u/Puzzlehead-Engineer 12h ago
We should let COBOL programmers die out and thus force institutions that still use it to refactor and upgrade. Maybe then they'll actually do it.
-13
u/anlumo 1d ago
COBOL programmers will most likely be the first ones to be entirely replaced by AI. It’s the obvious target.
3
u/sigmund14 1d ago edited 1d ago
IBM announced generative AI tool for refactoring their ancient COBOL code 1.5 years ago. Haven't seen any news related to that since then.
1
202
u/sojuz151 1d ago
A COBOL programmer, tired of all the extra work and chaos caused by the impending Y2K bug, decides to have himself cryogenically frozen for a year so he can skip all of it.
He gets himself frozen, and eventually is woken up when several scientists open his cryo-pod.
"Did I sleep through Y2K? Is it the year 2000?", he asks.
The scientists nervously look at each other. Finally, one of them says "Actually, it's the year 9999. We hear you know COBOL."