Uses exceptions as a part of normal request processing flow
In many cases shifts error detection to run time
In many cases relies on text constants
Any of the above might be a sign of technically poor solution, but Spring collects them together and this indeed an achievement.
Spring is easy to start writing app, but at subsequent stages of development this is compensated by:
need to write more tests than necessary (see note above about shifting errors to run time), famous "check that context loads" tests is an example
hard to nail down and fix issues caused by "Spring magic" and dependency management. For example, adding yet another Spring module to dependencies may easily break your application even if you not actually use this dependency yet.
As a consequence, almost all Spring applications share the same properties - they are slow, consume a lot of memory, are hard to maintain and extend.
As for your question about "inferior to what?". I'd say that it is inferior to almost any alternative solution in each particular area. Lets take a look, for example, at core of Spring Boot: Spring DI and Spring MVC.
Spring MVC is one of the slowest among Java web frameworks: techempower.com/benchmarks/#sectio... Note that this is not a fluctuation, Spring is consistently lands among slowest through all tests.
Thanks for your extensive response !
I think I didn't work enough with Spring to be aware of all of this, except maybe your point about "Spring magic", but thanks again :)
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Spring:
Any of the above might be a sign of technically poor solution, but Spring collects them together and this indeed an achievement.
Spring is easy to start writing app, but at subsequent stages of development this is compensated by:
As a consequence, almost all Spring applications share the same properties - they are slow, consume a lot of memory, are hard to maintain and extend.
As for your question about "inferior to what?". I'd say that it is inferior to almost any alternative solution in each particular area. Lets take a look, for example, at core of Spring Boot: Spring DI and Spring MVC.
Spring DI is the slowest DI container. It even unable to complete all tests in the following benchmark github.com/greenlaw110/di-benchmark.
Spring MVC is one of the slowest among Java web frameworks: techempower.com/benchmarks/#sectio... Note that this is not a fluctuation, Spring is consistently lands among slowest through all tests.
Thanks for your extensive response !
I think I didn't work enough with Spring to be aware of all of this, except maybe your point about "Spring magic", but thanks again :)