COBOL, your mother’s and grandmother’s programming language, is still in relatively wide use today, and with the initial batches of COBOL programmers retiring and, well, going away, there’s a market out there for younger people to learn COBOL and gain some serious job security in stable, but perhaps boring market segments. One of the things you would not associate with COBOL, however, is gaming – but it turns out it can be used for that, too.
CobolCraft is a Minecraft server written in, you guessed it, COBOL. It was developed using GnuCOBOL, and only works on Linux – Windows and macOS are not supported, but it can be run using Electron for developers, otherwise known as Docker. It’s only compatible with the latest release of Minecraft at the time of CobolCraft’s development, version 1.21.4, and a few more complex blocks with states are not yet supported because of how difficult it is to program those using COBOL.
CobolCraft’s creator, Fabian Meyer, explains why he started this project:
Well, there are quite a lot of rumors and stigma surrounding COBOL. This intrigued me to find out more about this language, which is best done with some sort of project, in my opinion. You heard right – I had no prior COBOL experience going into this.
Writing a Minecraft server was perhaps not the best idea for a first COBOL project, since COBOL is intended for business applications, not low-level data manipulation (bits and bytes) which the Minecraft protocol needs lots of. However, quitting before having a working prototype was not on the table! A lot of this functionality had to be implemented completely from scratch, but with some clever programming, data encoding and decoding is not just fully working, but also quite performant.
↫ Fabian Meyer
I don’t know much about programming, but I do grasp that this is a pretty crazy thing to do, and quite the achievement to get working this well, too. Do note that this isn’t a complete implementation of the Minecraft server, with certain more complex blocks not working, and things like a lighting engine not being made yet either. This doesn’t detract from the achievement, but it does mean you won’t be playing regular Minecraft with this for a while yet – if ever, if this remains a fun hobby project for its creator.
I learned COBOL for shits’n’giggles one summer, but largely forgotten it few months later. But that COBOLCraft thing is a really interesting project. I’m glad there is actual Minecraft server software around though, so the guy won’t be stuck supporting it for the rest of his days.
I actually learnt it at college along with Pascal. Never used it in the “real” world. I did sort of use Pascal under the guise of Delphi which was nice. TBH COBOL was pretty good at what it did which was mostly churning out reports!
Pascal still lives and Lazarus IDE is basically an open source, multiplatform Delphi.
Thanks!
You can share their results and strategies with friends or social media, creating a shared experience wordle unlimited and friendly rivalry.
How do you report spam on this site?
LOL! Reminds me of that time I left Space Invaders as an Easter Egg in a Visual FoxPro application. Getting anything out of VFP was a miracle to start with.
The amount of ignorance when it comes to the COBOL programming language is about as big as the Grand Canyon.
People would tell me that COBOL couldn’t do x, y, z or a, b c and I would prove them wrong EVERY time. There isn’t anything COBOL __can’t__ do. There are just things that COBOL is better at than other things. It just depends on how good and clever the COBOL programmer is. The same is true for ANY programming language.
Sabon,
I don’t ever recall anyone claiming you couldn’t write something in COBOL. Out of curiosity why would someone say that? Is it possible they were referring to CICS instead?
I think the bigger question isn’t whether something is possible but whether it’s a good idea. A lot of things that aren’t necessarily good ideas are technically possible 🙂
Edit: This links to a wide variety of cobol libraries to do things from databases, web servers, video/audio manipulation, game engines, opengl, etc.
https://github.com/loveOSS/awesome-cobol
Several of these are wrappers for existing libraries, but that’s how most languages are.
Edit2: I thought the list was useful, but after clicking on several of the listed projects something very fishy is going on there. It’s as though somebody compiled a list of Golang projects and claimed they were cobol projects: s/go/cobol/g Why would someone do this?
Everything in the awesome-cobol link seems to have been taken from this list substituting cobol for go…
https://github.com/avelino/awesome-go
I’m guessing this was done as a joke.