They are built with completely different programming languages. Bedrock is written in C++. There is feature parity across all platforms (sans PS4, RIP) so there is crossplay. Java is further ahead in official content, and, because it is in Java, allows easy facilitation of community modding and many server plugins, while Bedrock simply cannot support this because it has to cater to the slowest common denominator (see what I did there?) that is mobile platforms, iOS and Android.