3 ms·
Personally, I quite like Java. Or, I'd put it somewhere in the category of 'good/proper languages'. Although I view C# as a straightforward upgrade. But hey, it
by GlennS 9y ago
Personally, I quite like Java. Or, I'd put it somewhere in the category of 'good/proper languages'. Although I view C# as a straightforward upgrade. But hey, it's pretty often I have to work in PHP or R or JavaScript. A few months of that and I'll beg for a chance to work in Java with its sensible collections, its mostly-not-broken type system, and its integers.
However, I do think a lot of the library ecosystem that goes with Java it pretty poor, and I don't think I could ever work with Spring again.
This gist of Java frameworks for me is that they miss the essential problems and important uses and instead construct a massive tower of nonsense around the trivialities.
(I am, however, quite happy with Guava and Joda Time, and if I thought that dependency injection frameworks were useful then Guice is certainly superior to Spring.)
So here's my anecdote illustrating the dark side of Java.
Once upon a time, I needed to parse a CSV with a header row. The project I was working in used Spring, so I decided to try the Spring library. Configuring it to fetch the bean, put it in the right place, and set the header row switch to true took slightly more lines of XML than the lines of code you'd need to write a CSV parser from scratch, but hey at least I didn't need to think about quoting.
After a year or so, we are updating to a newer version of Spring. They have removed the header-row switch from their CSV parser, and replaced it with some sort of general parser extension abstraction. To parse a CSV with a header, I now have to write a class implementing their parser interface, register it with Spring, then write another 10 lines or so of hideous XML to slot it into the right place.
Just...what the hell?
Bean Validation can piss off too.