Linked by kap1 on Thu 25th Apr 2013 11:45 UTC
Java The Lightweight Java Game Library provides a simple API to OpenGL, OpenAL, OpenCL and Game Controllers enabling the production of state of the art games for Windows, Linux and Mac. Version 2.9.0 contains a complete rewrite of the mac backend, support for FreeBSD, new OpenGL/OpenCL extension and bug fixes. The library is used by many high profile games such as Minecraft, Spiral Knights, Revenge of the Titans, Project Zomboid, Starsector, JMonkeyEngine, etc.
Permalink for comment 559787
To read all comments associated with this story, please click here.
Member since:

It seems to be very trendy to bash Java these days. Do you care to explain why you think the Java runtime on Windows is a textbook example of a user-hostile piece of garbage?

My pleasure!

From the very first time you run the JRE installer on Windows, you are greeted with an installer with ugly nonstandard controls and lots of unnecessary clicks, that tries to install crapware in an opt-out fashion somewhere in the middle. This is kind of a great way to leave a first impression, in my opinion.

After that, since the Windows JRE is almost as full of security holes as Adobe Reader, it has to be updated very frequently. The availability of frequent updates would be a good thing, if only the updating process was quick and seamless. Only, it's not. You have to fetch a new version of the runtime manually, retrieve it, run it, go through the installation process all over again, and remind to uncheck the checkbox somewhere that still tries to install crapware on your machine even if you said no the first time.

And obviously, you can't do all that as a regular user, so if you want your machine to stay secure you have to keep typing your administrator password over and over again, all the time. That's quite the way to keep it a secret from others... and if you don't have admin rights on your machine and the admin never logs in by himself, you're basically screwed with an outdated version of one of the top exploited pieces of Windows software.

Oh, right, but will Java software run well on the JRE? At least it does, if you are very patient. Because every piece of Java software which I've had to deal with, no matter how simple it was, took a very long time to start, and then popped multiple warning about unknown security certificates even when I told it that it was a trusted one. Seems like the "remind this certificate" checkbox does not work well for some reaon, so in the end you end up enrolling certificates manually in the impossibly ugly and convoluted runtime configuration windows.

I also don't understand why you think Linux runtimes may or may not work in a seemingly random fashion.

I have used the Oracle JVM on both Windows and Linux and never experienced any problems with those. I have used the IBM JVM on linux and did experience some compatibility issues. Finally, I've also used the OpenJDK on linux. With the OpenJDK I noticed some warnings from software that insists it wants Oracle JDK (Intellij IDEA), but I didn't really notice any incompatibilities.

You are definitely more lucky than me then. In my experience, the Sun/Oracle JVM has been as much of a pain to deal with on Linux as every other piece of proprietary software, meaning that if you can't find a friendly someone who maintains a stable repo for your distribution, it will be painful to install and likely to break on the first slightly significant system update.

Meanwhile, OpenJDK, while it behaved as a good Linux citizen on its side, would frequently refuse to run some software altogether without an explanation (command line aborts without an error message, browser applets silently crash and leave a gray box behind). However, it is true that when software did work, it would work fairly well, save for the occasional app here and there where Unicode text is replaced by a wonderful stream of while box for some reason.

Android is not really "Java-based". A lot of Android aplications are written in a programming language with the same syntax as Java, but they run on the Dalvik VM, which is a different thing than a JVM. AFAIK, you cannot just run any piece of Java software on Android.

My point was that Android developers dealt mostly with the Java programming language, even if they use a different VM and a different set of underlying libraries, and it seemed to work fine for them.

No comments about the availability of the appropriate libraries, since I am not familiar enough with those. However, I believe that the JVM is a lot more advanced, and a lot more powerfull and performant than the Mono runtime. I would expect that to be a drawback for games. Maybe it doesn't matter that much when most of the work is actually done in the external libraries that are themselves written in C or C++.

The Mono runtime is indeed quite a bit slower than the JVM, however it also uses a lot less RAM, which can be an important quality on mobile devices. Anyway, as you said, I wouldn't write a strongly performance-sensitive program or library in a VM-based language like C# or Java anyway. Native code does still have an edge for some use cases, even if the gap is closing.

Edited 2013-04-26 08:13 UTC

Reply Parent Score: 2