Java is stable and powerful on so many levels, it is the foundation for the rest of the components. Java is great, but it has the most expensive decision binding cycle - a Java class must be compiled, a jar file must be built and deployed to a binary repository in order to be made available to consumers. And then consumer may have to rebuild their solutions. The build process would typically run a lot of tests and checks to ensure stability.
This safety and stability is great for well-understood problems - we know what we want and we implement it. You've planned the work and now you work the plan.
However, for new problems you may want to be more dynamic, (re)bind decisions faster.