The bedrock lineage is microsoft's attempt at microsoftifying minecraft. The team behind bedrock are responsible for showing the world the supremacy of DirectX.
Bedrock is far behind on features and is far buggier compared to java edition. A ground up C++ rewrite is noble beginnings. Unfortunately time has shown that they only planned to get it to an MVP necessary for some gross monetization tactics targeting children and not really a genuine interest in improving the tech, growing fandom goodwill, or creating new art.
Another thing to note is that Mojang had already commissioned a C++ port of Minecraft for the console versions, which they then abandoned in favor of Bedrock. The original console port ran better, was less buggy, and had a nicer UI for controllers than Bedrock. Bedrock is basically an extension of Minecraft Pocket Edition (the smartphone port of Minecraft) so I imagine that they shifted to Bedrock so they didn't have to pay to implement the same features on Java, console, and Pocket Edition whenever they updated the game. The console version was developed by an external contractor, which is probably why they chose to give that up instead of Pocket Edition.
The defining aspect of Bedrock is C++, not DirectX. Bedrock runs on numerous platforms where DirectX isn't available.
Minecraft isn't exactly be the type of game to showcase a 3D API's supremacy.
I was under the impression it was because Java wouldn’t work on mobile devices. Is that not the case?
Bedrock has a larger player base, the monetization seems to have worked. Existing Java players have not been put out (except the MS account thing).
MS didn't make the best decision, but their decisions have been good enough.
> Bedrock is far behind on features and is far buggier compared to java edition.
But does allow you render distances and frame rates that are impossible with the stock Java game (and can still be tricky even with mods.)
Because most mods take advantage of Java capabilities, so JavaScript extension points are not as interesting.
However the C++ version has a reason to exist, sadly Java never established itself for gaming outside desktops and J2ME/Android.
One could argue about AOT, but those are not widely adopted, CodenameONE, RobotVM.