|Java (the language) is actually really nice in many ways. I’m (mostly) a C# developer (been using since 2001) and Java is very similar.
but honestly the ecosystem really is crusty.
I mean there’s the whole thing about Microsoft being a Giant & controlling things but in many ways that helped C#.
Java, on the other hand feels like it wasn’t owned by one entity (and it wasn’t).
It feels like it goes in multiple directions to get the same result & it is very difficult to determine which one is the mainstream.
This is probably Oracle’s fault a lot. It definitely felt like they took ownership simply as a payday (thinking they’d win the suit against Google & lots of $$$).
Not like they took it too make it better.
So there is that schism too. when you go to install the SDK which one do you select? OpenJava, Oracle or what? It’s a very odd thing.
Then there are other things too like unit testing & coverage tools.
When you see the official sites and the backing for those things they look like some hacked up site from 1994 or something. Lots of things like that just make it a pain when you really go to do actual development that you have to support for a prod release.
Lots of cruft and half-way complete things and difficult old crusty documentation.
You only find this out when you get into it and need to do something that will be in prod.
If you just hobby around with it you’ll think everything is okay because there is a lot of fun stuff and I really like the language.
That’s my experience anyways — which comes from having to support & rewrite a medium sized app that was written in 1997 or so.