I am gonna admit, I never understood /g/ Holla Forums's hate for Java. Sure, it's a bit rough on the edges, but it does the job quite well, and Java 8 does include some really nice features that make working with it a much more pleasant experience.
I didn't understand it, until now.
All I had used in addition to the very acceptable standard library were small libraries, like JodaTime (which is kinda convoluted to use, but I guess it could be worse) or libGDX (pretty nice library for games and graphics all around), but our teacher decided we had to learn Spring, and I really feel like killing myself right now.
In Spring, everything is absurdly convoluted, everything is slower than it should, everything is a pain in the arse, and nothing makes sense. Even though it supposedly helps speeding up development, the boilerplate required is horrendous, and I can't see how does it help maintainability when one of its main selling points is enabling the programmer to scatter code all around the place. But what's worse is that, since it's supposed to be a dependency injection framework, its design philosophy reduces to "it's magic, I ain't gotta explain shit", and everybody loves it because it just werks, except when it doesn't, then may the gods have mercy upon you, because Spring sure won't.
If problems with the code and design themselves weren't enough, we also have its absurd amount of Maven dependencies that are guaranteed to fuck your shit up at least once. For example, a friend of mine managed to get his project running, so he passed it to me so I could see where I fucked up, just to find out literal copypasted code (the whole folder, in fact) didn't fucking work on my machine. After some digging, I found out he missed explicitly stating some dependencies on his pom.xml and it somehow worked for him, but not for me. A friend of mine, who got the same fucking code I got from my friend, had a different error pop up. Another project, managed to get it to compile and run, but not work; friend to the right solved the problem by changing some parameters, but I changed the same parameters and it still wouldn't work. Only half of the class managed to get it working, and the rest still don't know where the fuck they failed. But it's magic, it just werks.
Now I really understand why people hate Java. Java itself isn't bad, but the mainstream ecosystem is so bad it may as well be.