I should probably also note that there's something of a conflict in this area surrounding the other edition of Minecraft, Bedrock Edition, which is written in C++ and therefore difficult to decompile and mod. Bedrock Edition is much more closed than Java edition in a number of ways, such as including a store built into the launcher for buying maps, texture packs and skins whereas these would need to retrieved externally (usually for free) on Java edition. However, Bedrock Edition does have a first party modding api, a more feature rich internal scripting system with the concept of "behavior packs" [3], and has led to the development of a number of tools used by mod authors for both editions, such as Blockbench [4]. Ultimately Java Edition and its community have the legacy of Notch and Mojang with a long history of community contribution while Bedrock Edition was only developed after the Microsoft acquisition and is much more in Microsoft's style.
EDIT: Turns out the Bedrock Edition modding api was discontinued earlier this year [5].
[0]https://minecraft.fandom.com/wiki/Obfuscation_map [1]https://wiki.vg/Category:Minecraft_Classic [2]https://www.minetest.net/ [3]https://learn.microsoft.com/en-us/minecraft/creator/document... [4]https://www.blockbench.net/ [5]https://www.minecraft.net/en-us/creator/article/removing-the...