User:Withersoul 235/Storage

Why Java is a shitty language for game development

 * Doesn't exist on consoles and old iOS versions.
 * Minecraft was rewritten three times (C++ for Win10, Pocket Edition, PS4, FireTV, FireOS and GearVR, C# for Xbox 360, Xbox One, Wii U, Nintendo Switch, New Nintendo 3DS and PS3 and Objective-C for Apple TV and iOS), not to mention even the Java Edition is slowly moving away from Java (heck, add-on packs [different from mods] are written in JavaScript, not Java, and the game is slowly transitioning to C++)
 * RuneScape has been rewritten in C++.
 * The rumor of the PlayStation 3 supposedly supporting Java is false — it only does so for its Blu-ray system, not for games. Besides, the PS3 has been discontinued anyways — no one makes games for it anymore, and sales have massively dropped.
 * Very slow
 * Poor performance
 * Often has massive lag spikes due to faulty garbage collection (Minecraft, anyone?)
 * Memory limitations
 * Hardware limitations that can only be resolved through system-specific code, completely ruining its premise of "universal" portability
 * Alot of Java code requires specific chips, machinery and / or hardware in your operating system. Don't have those? Then you sadly can't play the game. This doesn't happen with most other languages, meaning more people will be able to play your game if you write it in C++, C#, C, Lua, Python, Pascal etc.
 * Poor and complicated mathematical syntax. (Who wants to write  and other stuff instead of using simple operators?)
 * Very small and limited amount of frameworks and game engines, forcing you to write in 70 lines what a C++ engine can do in five.
 * Literally no one wants to use Java for games, so it's highly unlikely you'll be able to get a crew together to make games in it
 * Low popularity
 * Can't deal with real-time tasks.
 * You're basically stuck with framework APIs and thus bound by their limitations
 * Massively memory usage / absorption
 * Java games' system requirements are insane, to the point of needing 3 GB RAM and alot of laptops overheating and crashing due to inability to handle it, even with nVidia GT 5xx and 6xx generation video cards. Again, not very "portable" after all.
 * Can't handle most 3D games and technology.
 * Little to no OpenGL access.
 * Doesn't support large arrays.
 * Verbose and overly complicated.
 * No user-defined operator overloading.
 * Lacks unsigned integer types.
 * Poor security — malware is very common and hard to stop on Java apps.
 * Broken, bug-filled libraries and frameworks
 * Type system forces programmers to hard-code knowledge of types in multiple places throughout the code
 * No garbage collection for things unrelated to memory

Overall Conclusion: Not recommended . Don't use Java for your game. You are far better off with other languages (C, C++, C#, Lua, Python, Pascal, Squirrel, AngelScript etc.); Java has too poor performance, security and abilities to create potent games.