Don't be confused by the date on the LWJGL post — its release date was June 3rd, as mentioned later in the thread, not February 27th. It looks like they disabled edit timestamps. Regardless, Lightweight Java Game Library (LWJGL) 3.0.0 was just released, which is a library that binds Java code to APIs that are, normally, not directly accessible through that platform.
To be clear: LWJGL is not a library like, say, Qt, which simplifies common tasks into classes. Its goal is to connect you to whatever API you need, and otherwise leave you alone. Unless you're the type who wants full control over everything, or you're actually making a framework yourself, you will want to use existing frameworks, engines, and/or middleware for your projects. The advantage, of course, is that these frameworks, engines, and middleware now have access to newer APIs, and can justify deprecating old features.
This release adds Vulkan support, which will provide a high-performance (and high-efficiency) base to abstract many other graphics and GPU compute tasks on. DirectX 12 and Vulkan are still being worked on, as an industry, but its mechanism is theoretically better, especially with multiple threads (and multiple graphics devices). They basically add a graphics layer to a GPU compute-style API, basing everything on lists of commands that start and end wherever the host code desires.
While Java has been taking a massive hit in public opinion lately, it is still a good platform for some applications. Gaming seems to having a resurgence of native APIs, especially with “AAA” engines becoming available to the general public, but more frameworks isn't a bad thing.
Java is still widely used and
Java is still widely used and trusted despite taking the ‘massive hit in public opinion’. The cross-platform support and ease of use to develop in the language are very useful. Also this helps bring more games to Vulcan and Linux. So this is great news! Your PC might finally be able to run Minecraft at 4k 60hz!
Just not as a plug-in. :p
Just not as a plug-in. :p
Java is a fake multiplatform
Java is a fake multiplatform language since you depend on an implementation of a JVM to provide an operating system independent binary object.
Once more, providing a bloated standard library doesn’t help much and give a wrong impression of accessibility while the programmer doesn’t master any basic algorithm to produce an efficient code. That’s why calculators shouldn’t be required for students though it can help manufacturers to make money.
The cross-platform support
This was maybe true 15 years ago. Java nowadays has relatively poor cross platform support, and is very cumbersome to work with compared to more modern languages.
I have quite extensive experience writing game code in LWJGL (several hundred thousand lines of graphics code in the most recent project), and while I think LWJGL have done a good job with what they have to work with, it is impossible to write high performance graphics code to the standard game engines demand in Java. The language constantly gets in your way while trying to write code which does not take a shit all over your cache, or requires excessive memory copying (especially when talking to the graphics API), or ridiculous amounts of heap allocations for basic things like vectors and matrices for which you cannot rely upon the JIT to stack allocate even when possible.
The amount of barriers the language throws in your way when trying to write high performance graphics code just begs the question, why are you using Java?
I am not even saying that you need to be using something like C++. You can avoid most of the performance issues while retaining the ease of use and portability (actually, even more so!) of Java by using something like C# instead!