3 ms·
Minecraft is extremely mismanaged, the fact that the java version is still the ”main” version after all these years is just crazy
by ieie3366 8mo ago
Minecraft is extremely mismanaged, the fact that the java version is still the ”main” version after all these years is just crazy
- barrkel 8mo agoWhy is it crazy? Any rewrite that would be as flexible wrt mods would be shaped similarly.
- willis936 8mo agoJava garbage collection gets out of control when cramming 100+ poorly optimized mods together. The bedrock edition is great in theory but the proper mod API never appeared. Regardless, people have accomplished some really impressive stuff with commands, but it is an exercise in pain. The other issue with bedrock is it is far from feature parity with java. If these two things were hit then java could be reasonably retired. However we are decades too late in it being acceptable to introduce a breaking change to mod loading. So it's java forever.
- le-mark 8mo agoI always had trouble running bedrock as a household server. Specifically it would stop accepting connections and required daily restarts. Java was much more reliable.
- cogman10 8mo agoJava garbage collection is what's allowing those 100+ poorly optimize mods to be functional at the same time in the first place. Games with robust modding will almost always feature a garbage collected language which is what's primarily used for the modding. Consider this, if the mod interface was C/C++, do you think those poorly optimized mods could be trusted to also not leak memory?
- aleph_minus_one 8mo ago> Consider this, if the mod interface was C/C++, do you think those poorly optimized mods could be trusted to also not leak memory? Garbage collection does not solve memory leak problems. For example - keeping a reference too long, - much more subtle: having a reference to some object inside some closure will also cause memory leaks in a garbage-collected language. The proper solution is to consider what you name "poorly optimized mods" to be highly experimental (only those who are of very high quality can be treated differently).
- cogman10 8mo ago> Garbage collection does not solve memory leak problems It solves a class of memory leak problems which are much harder to address without the GC. Memory lifetimes. It's true that you can still create an object that legitimately lives for the duration of the application, nothing solves that. But what you can't do is allocate something on the heap and forget to free it. Or double free it. Or free it before the actual lifetime has finished. Those are much trickier problems to solve which experienced C/C++ programmers trip over all the time. It's hard enough to have been the genesis of languages like Java and Rust.
- Defletter 8mo agoI do wonder then how difficult it would be to mod games written in D
- cogman10 8mo agoI don't think D has a "must use GC" mode, so probably easy to hit a footgun. It's the footguns that make things hard (IMO).
- Defletter 8mo agoThere is no "must use GC" mode, as far as I'm aware, but the footguns you describe only exist if the programmers opt-out of the GC. It's somewhat similar to using JNI/FFM in Java: it's possible to escape the safety of the VM. Though it's much easier to do so in D.
- natebc 8mo agoYou're right. Hytale is certainly shaped similarly in that regard.
- koakuma-chan 8mo agoHave you played Bedrock? It sucks.