It's absolutely crazy that a game so popular - let alone any game - was originally written in Java.
Why did notch do that?
There were next to no libraries, ecosystem, or support for Java at the time. It was such a bizarre choice.
Not to mention the JVM, GC, and all the other oddities. It was super off the beaten path to have done this.
Might as well have been Ruby or Perl.
At the time, Java ran on the web so he could easily share demos.
He used LWJGL, which probably covered a lot of his library needs.
Java has a JIT, so it's not comparable to Ruby and Perl.
> It's absolutely crazy that a game so popular - let alone any game - was originally written in Java.
It did not start being popular :)
Seriously though, I think Java helped it get so much traction initially. Writing mods was tedious but not that difficult, and it was multi-platform for free. Nowadays I assume the vast majority are playing bedrock on consoles or PC, but at the beginning it was rather nerdy and being playable on Linux and Mac was nice for some tech-minded people.
Different era. At the time choosing the JVM and Java language for a multiplatform project that targetted a portable runtime was not controversial at all.
I spent my first 12 hours glued to Minecraft back when it was a Java applet. Probably wouldn't have bothered to install...
I remember some early posts from him about how he really liked how the debug mode made the iteration loop very short. Here's a video of him doing exactly this - it does look like a very pleasant development environment even now
There were plenty of low level libraries available then, less in the way of frameworks. It was an environment that he was used to coding in and cross-platform (in the PC world anyway).
Given what it was in the very beginning versus what it very rapidly grew into, I guess it was just something that made sense at the time.
At least for libraries, Java was actually pretty good for game development at the time iirc (Admittedly, I wasn't there, so I could be misled). It was kinda your only option if you didn't want to use C++
Am I missing sarcasm here? Minecraft was developed in 2011 and Java was conceived in 1995; it was (already) an extremely mature and popular language at the time.
Even at the time Java had some great tools and IDEs (NetBeans, Eclipse) and both computers and the JVM were fast enough for any performance issues compared to fine tuned C++ to not matter much, especially for a game like Minecraft that didn't (at the time anyway) push the CPU much.
Java allowed Minecraft to run pretty much everywhere, including as an applet (very important in its early time) and it relied (and still relies) on LWJGL which provides access to the most common stuff you'd need to make a game (OpenGL, windowing, input events, etc) - and at the time it also worked for applets too (you needed to download the LWJGL applet code but it was signed by the devs so you didn't get too many scary messages).
I used the same tech (Java+LWJGL) at the time to make a few simple demos/games and it was quite easy to make stuff - e.g. i made this[0] in a few hours using Java, LWJGL and Eclipse on the iMac i had at the time.
[0] https://www.youtube.com/watch?v=xXn8VhH6GFs