A Minecraft server written in COBOL
A hobbyist has built a functional Minecraft server in COBOL, prompting surprise at how readable and capable the decades‑old business language can be for a complex, real‑time application. Commenters use the project to reflect on COBOL’s stigma, its strengths in clarity and low-level data handling, and the reality that high salaries come more from domain and mainframe expertise than the language itself. The thread also branches into comparisons with modern languages like Rust and C++, the trade-offs between simplicity and long-term code quality, and practical notes on Minecraft server hosting and cross‑play between Java and Bedrock editions.
Overall reaction to the COBOL Minecraft server
- Many commenters find the project impressive, surprising, and “awesome,” especially given it was written by someone new to COBOL.
- Several note the code is quite readable and organized, especially compared to some modern-language projects.
- Some see it as a fun, whimsical demonstration rather than a production-ready server.
COBOL as a language: stigma, readability, and features
- Commenters discuss COBOL’s reputation: old, verbose, “punched card” heritage, but also very readable and business-oriented.
- A few argue COBOL is effectively a high-level assembler, good at low-level byte manipulation, contradicting the repo’s framing that it isn’t suited for that.
- The object-oriented features from COBOL 2002 onward are mentioned; standards exist but are only partially implemented by vendors due to weak demand and lack of modern test suites.
- Comparisons are drawn to FORTRAN, PL/I, Ada, VHDL, SQL, and Algol-family languages, often around readability and English-like syntax.
Platforms, mainframes, and Docker
- There is curiosity about whether the server could run on z/OS, with mentions of testing via Hercules or asking a mainframe sysprog.
- Running it on zLinux is considered technically easier but less interesting.
- A side thread debates Docker’s portability, with complaints about missing support on platforms like FreeBSD, Solaris, and Android, and workarounds like Podman.
Functionality and technical scope of the server
- Readers look for redstone support and conclude it’s effectively unsupported; blocks with complex state or behavior are explicitly out of scope.
- Lighting and full block behavior are recognized as major omitted features; implementing a complete Minecraft server is viewed as a multi‑year effort.
- The presence of unit tests is appreciated.
COBOL jobs and legacy systems
- The thread challenges the idea that COBOL programmers alone command high salaries.
- Commenters argue the real scarcity is knowledge of legacy business logic and mainframe ecosystems; COBOL skills mainly provide an entry point to those domains.
Language design, simplicity, and project success
- Some observe that many polished side projects are written in simple languages (C, COBOL), whereas modern languages (especially Rust) often appear in large but incomplete projects.
- Theories offered:
- Simple languages reduce cognitive load and “choice overload,” making it easier to ship messy but working prototypes.
- Modern languages and frameworks encourage heavy abstractions, code generation, and “code that will last,” which can impede finishing hobby projects.
- Hype attracts beginners to Rust and similar languages, leading to many ambitious but abandoned efforts.
- Extended debate centers on Rust vs C++/C#/others in game development:
- One side argues Rust’s focus on memory safety and strictness slows iteration and clashes with the rapid experimentation needed for games.
- Others counter that C++’s ecosystem is also painful, and Rust’s smaller community and immature game tooling are bigger issues than the language itself.
Nostalgia and personal COBOL experiences
- Several share memories of learning or working in COBOL decades ago, often in batch financial systems, emphasizing how readability helped with maintenance and production support.
- Some express humorous reluctance to revisit COBOL, while still acknowledging the achievement of this project.
Minecraft hosting and cross‑play tangent
- A sizable subthread discusses how to host Minecraft servers for kids across PC, Switch, Xbox, and mobile.
- Key points:
- Java and Bedrock editions are distinct and normally can’t cross‑play.
- Official Bedrock server binaries exist for Windows and Linux.
- Tools like Geyser/Floodgate can bridge Java and Bedrock with some feature limitations.
- Switch/console clients are more locked down, often requiring Realms or workarounds; paid console online services are typically needed.
- Alternatives like Minetest/Luanti are briefly mentioned as open‑source, Minecraft‑like options.