4 ms·
> What makes one language sprout AbstractSingletonProxyFactoryBeans and another not? Missing features that enable higher levels of composition and abstraction.
by jacques_chester 8y ago
> What makes one language sprout AbstractSingletonProxyFactoryBeans and another not?
Missing features that enable higher levels of composition and abstraction.
Such as, for example, generics.
If you look at the usual punching bag in these discussions, Spring, you will see that as Java added features, the implementations became simpler.
Java's design hypothesis was: if we take away these features, median programmers won't blow their feet off accidentally. But it turns out that to get things done you need well-above-median programmers to provide tools, APIs, frameworks, leverage and that in turn, they will need to find a way to do it. In the case of Spring that's been marked by a slow retreat from heroics into progressively simpler approaches as and when Java itself allowed for them.
Spring 5, for instance, sets Java 8 as the minimum, and they went through the whole framework refactoring, cleaning up, cutting down and so on wherever that baseline allowed them to.
Disclosure: I work for Pivotal, which sponsors Spring, though on unrelated software. But I've spent a lot of time with Spring folks. They are smart.