Most of the day to day software engineering is our ability to work with the language tooling, we can also call it the ecosystem of the language. From Java's perspective most of our interaction with the language is not directly with the language but with frameworks like Spring etc. These things are meant to make the language more easily digestible. The problem comes in when the platform becomes so huge that there is no way to logical develop a thorough understanding of the actual technology at hand. I started studying Java again to brush up my knowledge of it but found that the language has grown so much it was difficult to derive a logical conclusion to the platform.
This was further evident when I started looking for Java developer roles in my country and found that just understanding the language and its principles were not enough. There seemed to be a general consensus that Java developers must know other related technologies like Spring, JPA, Hibernate, etc. All these related technologies bring their own software paradigm into the picture and hide the actual technology (Java) under the hood.
* Why for some weird reason a Java developer must know or supplement his understanding of the language with framework like Spring, JPA, Hibernate, etc? This is true for other platforms like Node.JS where you have MERN stack etc.
* Are there other languages (or platforms) like Go or Rust where the language is well developed that these external dependencies are minimal.