I’d much rather have explicit boilerplate code (preferably in library form as much as possible) than complex, invisible magic.
The latter is “easy”, but the former is “simple”. In most cases, “simple” is more important.
haskell has magic, but at least its concise..
I think it's a fundamentally different mentality as far as the code. The codebase is so obfuscated that it might as well be binary data rather than plaintext files. You need an IDE to manipulate it efficiently.
http://jeffacubed.com/the-boilermaker-story-or-knowing-where...
Does not spending time on boilerplate improve the quality of software you produce? I find that it doesn't.
java modules broke a lot of software that were using sun classes or did classloading magic.
I was on one of such application, it's not a lot of effort to migrate forward, but many of the issues are runtime only so unless you have a good test suite, a strong incentive and no closed source library that use some such classes you can't really move forward with it.
anyway, in java 7 was already possible to write "unbloated" code, especially with the servlet 3.0+ spec, but spring and osgi have a lot of inertia in the enterprise community, meaning most people were stuck programming in xml, one of the most unpleasant experience ever.
ps: also how many shops are doing 'migration off of spring' ?
Meh.. in my opinion a lot of this is just tropes. Spring is a fine environment to work in, although you really don't have to use any XML with modern Spring. But you can if you prefer to for some reason.
All the annotation driven "black magic" can be mildly annoying at times, especially before you understand what's going on under the hood... but considering the amount of boiler-plate crap it saves you from dealing with, I'll happily accept that tradeoff.
For my money, if I was starting a new backend service today, I'd absolutely reach for Spring Boot as my starting point. Of course, I may be biased given that I've been writing Java code for 20 years, and I remember what a breath of fresh air Spring was compared to the old EJB 2.x era "J2EE" stuff.
could have had worse you started just around the xdoclet, that was peak madness
It's true that post 8 Java becomes palatable. And someone on reddit just showed me this piece of stats:
https://www.jetbrains.com/lp/devecosystem-2019/java/
83% on java 8, java 11 nicely going up
I pity those forced to work with old techniques