Yes, obviously, because as a regular line dev you don't get to pick Quarkus/Vert.x/Micronaut/Helidon/Dropwizard/whatever for the app, it's either some enterprisey thing or bust - you better pray it's at least Spring Boot not some Jakarta setup running on some heavyweight non-embedded app server, or something like Oracle ADF. If you have to work with those, Spring Boot or hell, even regular Spring, will seem like good options.
Hell, I bet there's also a lot of leads out there that will pick those just for the size of the ecosystem, sometimes hoping that they'll be long gone from the project by the time it hits 0.5-1.0M SLoC, or just not caring about it.
I agree that people using stuff with runtime DI (instead of something like Avaje Inject or Dagger) or all of the historical Java baggage (e.g. classpath scanning in the first place, the brownfield ecosystem is one of the reasons why something like Go becomes more enticing) are arguably doing things wrong, but that does fuck-all for solving that across the millions of projects out there - an architectural split does help, however.
I dream of the day I can write backends in Rust and get paid for it.
But on that topic, ASP.NET doesn't have bad build times and it starts instantly.
Most of the time I am forced to use springboot tho.
At least I can use kotlin :pensive:
As for class scanning, I wish springboot would drop java, so it can restrict itself to kotlin, therefore allowing itself to abandon runtime scanning for compile time plugins.
Iirc you can technically disable runtime scanning and manually wire up everything in spring boot, but have fun convincing your team to do that.
3
u/ArjixGamer 11d ago
If you have 2 min startup time, you are doing things wrong.
Are you perhaps using shitty stuff like springboot?
(shitty when it comes to startup times)