Live data from Hacker News

Minecraft removing obfuscation in Java Edition

minecraft.net

251–260 of 478 posts

Re: Minecraft removing obfuscation in Java Edition

#251
post #165

Earlier quoted context omitted.

I think the OO hatred comes from how academia and certain enterprise organisations for our industry picked it up and taught it like a religion. Molding an entire generation og developers who wrote some really horrible code because they were taught that abstractions were, always, correct. It obviously weren't so outside those institutions, the world slowly realized that abstractions were in many ways worse for cycloma…

> I think the OO hatred comes from how academia and certain enterprise organisations for our industry picked it up and taught it like a religion. This, this, this. So much this. Back when I was in uni, Sun had donated basically an entire lab of those computers terminals that you used to sign in to with a smart card (I forgot the name). In exchange, the uni agreed to teach all classes related to programming in Java, a…

> One of the professors actually said C was dead because Java was clearly superior.

In our uni (around 1998/99) all professors said that except the Haskell teacher who indeed called Java a mistake (but c also).

Re: Minecraft removing obfuscation in Java Edition

#252
post #154

Earlier quoted context omitted.

The music is definitely considered classic, you can find tons of people online talking about how it means a lot to them - and personally, I really loved the music.

It's even recognized by the Library of Congress! https://www.loc.gov/static/programs/national-recording-prese...

It's not hard to get into the library of congress? It's purposely extremely easy. I forgot who it was, but there was one big right-wing talk show host that would end all of his segments by saying it's being added to the Library of Congress as if it's an exclusive accolade, and people rightfully called him out on his shit for how easy it is to do that

Re: Minecraft removing obfuscation in Java Edition

#253

"Minecraft: Java Edition" has been obfuscated since the release. No, It was obfuscated since around 1.8 when you (Microsoft) buy up Mojang Studios. before that? meh, It wasn't. That's the main reason why JE has broader mod ecosystem from the start., result being 1.7.2 being the one of the most active modded versions since most of them can't get passed to around 1.8. The motive behind this is probably due to them find…

Minecraft has been obfuscate since the start. Even 1.7 is still obfuscated.

Re: Minecraft removing obfuscation in Java Edition

#254
post #137

Earlier quoted context omitted.

First time I have heard of object-oriented obfuscation. I get it, but in general I don't get the OO hate. It's all about the problem domain imo. I can't imagine building something like a graphics framework without some subtyping. Unfortunately, people often use crap examples for OO. The worst is probably employee, where employee and contractor are subtypes of worker, or some other chicanery like that. Of course in th…

That's why we use depedency injection now~~!

I've always wanted my editor's go-to functionality to take me to an abstract class instead of the place where the actual logic resides. Good times.

Re: Minecraft removing obfuscation in Java Edition

#255
post #94

Earlier quoted context omitted.

To be fair, since 2019 Mojang has been providing the mappings instead of everyone having to use community-created ones.

Very few people use mojang mappings -- the two big modloaders, forge and fabric (and their derivatives) have their own mappings respectively, due to the restrictions of the mojang mappings. It's possible to use the mojang mappings, but much less common.

PaperMC exclusively uses Mojang mappings, and it's the most popular loader for server-side modding these days.

Re: Minecraft removing obfuscation in Java Edition

#256

"Minecraft: Java Edition" has been obfuscated since the release. No, It was obfuscated since around 1.8 when you (Microsoft) buy up Mojang Studios. before that? meh, It wasn't. That's the main reason why JE has broader mod ecosystem from the start., result being 1.7.2 being the one of the most active modded versions since most of them can't get passed to around 1.8. The motive behind this is probably due to them find…

I learned to code by modding Minecraft, starting at ~1.6 a few years before the Microsoft acquisition.

It was definitely already obfuscated by then, the Microsoft acquisition had nothing to do with it.

If anything, looking back all the years, Microsoft has largely delivered on the promise to not fuck up the game and its community. They’ve mostly kept their hands off it, besides the Microsoft account stuff (which makes sense why they did it, but a lot of people are still understandably annoyed). Hell, they’ve kept up two separate codebases in fairly close feature parity for _years_. I doubt they’d have kept JE if there weren’t people in that team who genuinely cared.

Re: Minecraft removing obfuscation in Java Edition

#257

It's extraordinary to me that Minecraft is both the game that has the most robust mod community out there and that the modders were working from obfuscated, decompiled Java binaries. With elaborate tooling to deobfuscate and then reobfuscate using the same mangled names. For over a decade! What dedication.

Me too. Having only a vague familiarity with the game, I thought that mods were using some official plugin system. I had no idea that minecraft modders (presumably kids/teens?) were not only reverse engineering things but also creating an entire ecosystem to work around proguard.

> I had no idea that minecraft modders (presumably kids/teens?) [...]

Players who were teenagers when the game first came out are now 29 to 35 years old. It's a pretty ancient game at this point. From my experience, most contemporary modders are in their late 20s.

We're still relying on legacy code written by inexperienced kids, though...

Re: Minecraft removing obfuscation in Java Edition

#258

"Minecraft: Java Edition" has been obfuscated since the release. No, It was obfuscated since around 1.8 when you (Microsoft) buy up Mojang Studios. before that? meh, It wasn't. That's the main reason why JE has broader mod ecosystem from the start., result being 1.7.2 being the one of the most active modded versions since most of them can't get passed to around 1.8. The motive behind this is probably due to them find…

> No, It was obfuscated since around 1.8 when you (Microsoft) buy up Mojang Studios. before that? meh, It wasn't.

Huh? This is not true. The very first version released in 2009 was obfuscated with ProGuard, the same obfuscator used today.

The reason Minecraft 1.7 was a popular version for modding was because Forge was taking too long to come out, and the block model system was changed in a fundamental way in the next update. Has nothing to do with obfuscation.

> The motive behind this is probably due to them finding out people can not get their mods/server software updated in-time (due to extra work required) and this leading people being really reluctant to update their versions.

Not really accurate. The Minecraft modding and custom server software ecosystem has more agility right now than it ever had in the past. In the past 5 years, a remarkable shift has occurred: people have actually started updating their game & targeting the latest version. Minecraft 1.21 has the highest number of mods in the history of the game.

Re: Minecraft removing obfuscation in Java Edition

#259
post #226

Earlier quoted context omitted.

For me, it's the fact that the mess of DAOs and Factories that constituted "enterprise" Java in the 00s was a special kind of hellscape that was actively encouraged by the design of the language. Most code bases don't need dynamically loaded objects designed with interfaces that can be swapped out. In fact, that functionality is nearly never useful. But that's how most people wrote Java code. It was terrible and taug…

It's very useful in C++, funnily enough. This is because I can have a non-templated interface base class, then a templated impl class. Then my templated impl header can be very heavy without killing my build times since only the interface base class is #included. Not sure if this is as common in Java.

Java uses type erasure which are very cheap in compile time but you cannot do things like

   t = new T(); // T is a template parameter class
C++ uses reified generics which are heavy on compile time but allows the above.

Re: Minecraft removing obfuscation in Java Edition

#260

Earlier quoted context omitted.

For me, it's the fact that the mess of DAOs and Factories that constituted "enterprise" Java in the 00s was a special kind of hellscape that was actively encouraged by the design of the language. Most code bases don't need dynamically loaded objects designed with interfaces that can be swapped out. In fact, that functionality is nearly never useful. But that's how most people wrote Java code. It was terrible and taug…

> Most code bases don't need dynamically loaded objects designed with interfaces that can be swapped out. In fact, that functionality is nearly never useful. But that's how most people wrote Java code. Perhaps I'm not following, but dynamically loaded objects are the core feature of shared libraries. Among it's purposes, it allows code to be reused and even updated without having to recompile the project. That's pret…

We're talking about OO Java. You bring up shared libraries, list a bunch of things not unique to Java nor OO, then claim `etc.` benefits.

You really haven't argued anything, so ending on a "you must be personally blind jab" just looks dumb.

Post reply on HN