It’s not really a language thing. I would never use Java again simply because it is owned by Oracle but I am sure it is possible to use it elegantly. Just that it seems this is not the mainstream way.
So this is going back 5 years or so. We were building an Eclipse plug-in to make an IDE for a scripting language used in our platform, for which we needed to extend another language plugin. I remember there were layers and layers of abstractions, to hook into which I had to do some dirty things. There was a lot of boilerplate that I had to write before I could even start working on what I needed to work on. Logic being scattered across many many classes some with multiple inheritance was not fun.
I also did a similar project in JS for a web-based IDE around the same time and it was just so much simpler to do.
Eclipse itself was not a joy to work with - good idea in principle but so slow and buggy to actually use.
I also got to look at the code of a JS library that some of our Java devs wrote (some sort of RPC plugin framework) and it was simply terrible in exactly the same ways - abstraction abuse.
So basically I get that sometimes this complexity is necessary but it usually isn’t. Like we had a WebUI app built in Java that took nearly a GB of memory to run because it was probably using some framework underneath that was designed for bazillion different use cases all of which were completely irrelevant in this case, but there was no choice to leave them out.
So I really love the simplicity of JS. I particularly love Node.js - it’s really a C++ framework with a JS API but it’s such a joy to use for all network service related things. Add some sensible use of TS (for the type system rather than the additional OO features that pretend it is not JS) and it’s now even better.