8 ms·
A Minecraft server written in COBOL
- FrustratedMonky 2y agoI'm always hearing that Cobol programmers get high salaries, because they are so rare. Did this project generate any flood of offers for work?
- thijsvandien 2y agoThose who do are valued not for their programming skills but their knowledge of the (very complex, largely undocumented) system and its business environment.
- z3t4 2y agoIt's not Cobol programmers that are rare, it's a shortage of people that can understand the business logic. Cobol is often used in very complicated business operations.
- TypingOutBugs 2y agoNot because it’s necessarily more suited for those business operations, but the complexity and risk of refactoring means it remains in COBOL
- elcapitan 2y agoAs others have pointed out, probably more the intricacies of the existing business logic, plus the understanding of the mainframe systems that it usually runs on. Otherwise you could just build a cross compiler and call it day.
- Suppafly 2y ago>As others have pointed out, probably more the intricacies of the existing business logic, plus the understanding of the mainframe systems that it usually runs on. Honestly just knowing COBOL is how you get your foot into a well paying job where you learn that stuff from the old timers.
- philipov 2y agoThey should have called it COBOLstone
- deleted 2y ago[deleted]
- userbinator 2y agohttps://raw.githubusercontent.com/meyfa/CobolCraft/main/src/server.cob https://raw.githubusercontent.com/meyfa/CobolCraft/main/src/... It's actually not too difficult to understand for anyone with a background in procedural languages, and reminds me somewhat about some game servers written in VB that I saw ~2 decades ago.
- coolkil 2y agoLol, big question is would it work on zOS as well.
- notfried 2y ago> 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. I hope they'd write an article about any insights they gained. Like them, I hear of these rumors and stigma, and would be intrigued to learn what a new person to COBOL encountered while implementing this rather complex first project.
- 082349872349872 2y agoOne of the rumoured stigma is that the object-oriented flavour of COBOL goes by the unwieldy name of ADD ONE TO COBOL YIELDING COBOL. At least it doesn't have the unrumoured stigma of older FORTRANs, which ignored whitespace, allowing: DO 10 I=1.10 to silently compile an assignment: DO10I = 1.10 instead of signalling an error for the syntax of the loop the flight software programmer had intended: DO 10 I=1,10
- kjs3 2y agoIf you have to go to 1977 or prior to slag a language, there are tons of languages that will disappoint you.
- PaulHoule 2y agoPL/I
- Konohamaru 2y agoI think Programming Language One is the same type as Eureka Seven.
- pjmlp 2y agoI would assess C++ has already outpaced PL/I complexity, and I do enjoy using C++.
- guytv 2y agoThis is Awesome. For my high school graduation project, I wrote a full COBOL system to automate soccer betting odds. Long past its prime, but my school hadn’t quite caught up with the times. It was hilariously out of place, but I loved every line of it. There’s something oddly satisfying about a language that whispers, “Remember punched cards?” as you type.
- Konohamaru 2y agoIt's really type resonant that you used COBOL (IN ALL CAPS) for your high school project. Makes for good high school memorabilia. I hope you used Greek gods for all of your variable names.
- b800h 2y agoWhat an idea. Absolutely unbelievable - I've written an API framework in COBOL, but this is something else. Very impressive bit of work.
- muzzelman 2y agoWhy does this look like an elaborate PL/SQL?
- int_19h 2y agoBecause both COBOL and SQL originate with the same design school of "try to make syntax look more like natural English" that was in vogue at the time, with the idea that it'd let non-programmers write code.
- 9303431178 2y ago[flagged]
- bitfilped 2y agoDocker isn't a platform portable experience fwiw
- thrw42A8N 2y agoYour Linux based docker containers can work on all major platforms, how is that not a portable experience?
- Bjartr 2y agoWhat platform are you thinking you'd want to use this on that docker doesn't support
- bitfilped 2y agoFreeBSD and Solaris mostly for me. There are many other OSs though than Linux and Windows.
- yjftsjthsd-h 2y agoFreeBSD should work with podman, which isn't literally docker but is probably drop in for this use and can use the Linux compatibility layer. A quick turned up https://www.dbi-services.com/blog/freebsd-basics-8-running-linux-containers/ https://www.dbi-services.com/blog/freebsd-basics-8-running-l... which seems to confirm.
- Y_Y 2y ago
- zimpenfish 2y agoCan't tell if it supports redstone (which I would consider basic functionality in a Minecraft server) - isn't called out in the README and the code only makes mention of redstone torches (which also function as a light source).
- aithrowawaycomm 2y agoI think the README tacitly says "redstone is not supported" since those blocks have multiple states: Note that blocks with multiple states, orientations, or interactive blocks require large amounts of specialized code to make them behave properly, which is way beyond the scope of this project. Some are supported, however: torches (all variants) slabs (all variants) stairs (non-connecting) rotated pillars, such as logs or basalt buttons (non-interactive) doors (including interaction) trapdoors (including interaction) beds In particular, it seems buttons don't emit redstone signals.
- Alcatros552 2y agoActually the writer of this Github Repo is wrong; Cobol has been exactly there to manipulate bits and bytes on the lowest level since forever and is very efficient at it. Nevertheless, congrats to this achievement.
- owenthejumper 2y agoRoast me but the code is very readable. Compare with some modern languages where you have to stare at it for minutes to understand what's going on.
- cratermoon 2y agoCOBOL was designed to be written and read by non-programmers. That was the theory, at least.
- Koshkin 2y agoAnd let’s not forget, so was FORTRAN. (Programmers coded in Assembler back then.)
- kjs3 2y agoFortran (FORmula TRANslation) was intended for a very peculiar subset of 'non-programmers': mathematicians, engineers and the like. It ends up being a pretty good impedance match for people who are use to dealing with terse forms of expression already.
- cratermoon 2y agoand and COBOL (COmmon Business-Lriented Language) was intended for the subset of non-programmers dealing with things like money and inventory.
- Koshkin 2y agoThat’s why I like Ada (and VHDL). Somewhat verbose, perhaps, but much more readable than more “modern” languages.
- Tade0 2y agoAs a teenager I swore by Turbo Pascal's begin/end syntax and C++ at the time, with its overloads and macro system was just noise to me. Many years have passed since but C++ with its overloads and macro system is still largely noise to me.
- cratermoon 2y agoI love that there are unit tests.
- navbaker 2y agoMy kids are just getting into Minecraft on the switch and I am a bit confused by the options for hosting a server. I’d love to hop on and play with them on a self-hosted server, what’s the current best way to do that or is that level of cross-play between PC and Switch on a self-hosted solution even possible? Edit: I don’t currently play, which is why I’m not familiar with what’s out there
- chrisdalke 2y agoThere's actually two completely separate games (Java edition and Bedrock) that can't cross-play with each other. You can buy a Bedrock edition Minecraft for Windows that should be able to cross-play with the switch. Java Edition is the original game and it's fairly easy to either host your own server (The dedicated server is just a .jar you run) or pay for a server ($10-40/mo) using a game server host. Unsure about bedrock, there's some instructions here (https://www.reddit.com/r/Minecraft/wiki/bds/#wiki_bedrock_dedicated_server_tutorial https://www.reddit.com/r/Minecraft/wiki/bds/#wiki_bedrock_de...).
- SushiHippie 2y agoFWIW with the Java version you can easily create a LAN Server in game, by joining a world and then opening it to LAN. https://help.minecraft.net/hc/en-us/articles/4410317081741-How-to-Play-Minecraft-Java-Edition-Multiplayer https://help.minecraft.net/hc/en-us/articles/4410317081741-H... EDIT: I just realized this works on Bedrock too, but don't know how the support on the Switch is https://help.minecraft.net/hc/en-us/articles/4410316619533-How-to-Play-Minecraft-Bedrock-Edition-Multiplayer https://help.minecraft.net/hc/en-us/articles/4410316619533-H...
- khedoros1 2y agoBedrock has self-hosted servers available too: https://www.minecraft.net/en-us/download/server/bedrock https://www.minecraft.net/en-us/download/server/bedrock They're pre-compiled Windows and Linux binaries, but if I'm remembering correctly, I think they're statically linked, and I had no trouble running the Ubuntu one on my Fedora system. I used to keep a Bedrock server running on my desktop, and my son and I could pop in from a phone, tablet, or laptop whenever we wanted to.
- curious_cat_163 2y agoI learned a bit of COBOL during high school... in a small town in Pakistan. It was okay -- did a project that simulated some financial statements. I recall it being quirky but, to most humans (i.e. non-programmers), any programming language would be quite quirky so I don't understand the stigma around it. I also learned C around the same time and that one stuck. :-)
- heavensteeth 2y agoI'm sure this is some kind of fallacy, but I feel I quite often see ostensibly impressive small side projects like this written in simple plain languages like C (or here COBOL). Every similar, e.g., Rust project I see seems almost non-functional despite having 10x the SLOC. My working theory is that simpler languages lend themselves to blueprinting ideas and getting something working even with an ugly messy codebase, whereas modern languages force you to write code that will last longer. Or maybe modern languages are just doing something wrong.
- kachapopopow 2y agoPeople that get things done usually don't care about code quality. I noticed myself in a place where I just never finished anything anymore by trying to write something to last. Over the years I've found a good balance, but I've found that iterating over garbage will eventually turn into something good and I've been doing so since.
- Buttons840 2y agoIs good software a Dorodango? A pile of mud that has polished enough to be pretty.
- kachapopopow 2y agoFunny, but no. Software never becomes a smooth sphere, instead you keep adding more chunks to it that are barely holding on that somewhat resembles a sphere... eventually. Wireguard was great from the start.
- pavel_lishin 2y agoMy previous employer certainly got things done. They got so many things done, that I found it impossible to add features to their codebase.
- kachapopopow 2y agoI'd say it's a skill issue, but that's only because I've worked on decompiled applications and made it work. I've worked with assembly and made it work. I hook google chrome with pdb resolving and made it work. It took me 10 years to get to this point, it is not a reasonable expectation to have of others.
- pigeons 2y agoI upvoted this before I even looked at the link.
- purple-leafy 2y agoCOBOL actually looks like a very cool language ! Your code looks really well organised
- PerilousD 2y agoI stopped using COBOL in 1978 and NEVER admitted to even knowing the language forever after. I'm making the sign of the cross and heading for a strong cup of coffee in the hope that I will never see this code :-) (impressive that you did this)
- ARandomerDude 2y ago40 years from now, C-suites all over the world will be saying "COBOL Minecraft servers are dead."