Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I wouldn't say that is necessarily fault of Spring (though scope creep might be an important contributor).

I think the basic causes are:

1) Because most developers almost never need more than what you can find on Baeldung/Stack*. And even if they need, they need it for very small pieces of the application and the rest is just boilerplate.

2) Because you are penalised for customising the structure of your Spring application. You do that and you expose yourself to various complicated problems.

3) Because, frankly, Java is a bad programming language from the point of view of building abstractions. I would personally prefer to program applications in Common Lisp or even Clojure (or any other Lisp for that matter) if only for some reason these projects did not typically end in unmaintainable mess even well before Java projects do. It is truly tragic that Lisp and strong typing are fundamentally incompatible with each other.

There are different types of unmaintainable mess -- mess caused by copying and pasting stuff typically committed by novice developers who don't know any better tends to be infinitely easier to clean up than mess caused by "advanced" developers running amok with macros, continuations, generators and async callbacks.

4) Because developers are not taught how to structure their code. Nowadays getting something working is all that matters. And this is usually best accomplished by copying/pasting code blocks Lego-style from a dozen different tutorials. How anybody is going to learn to structure their large codebase if they never learned to structure a smaller one?

People who advance faster are the ones that are more efficient at copying pasting, not the ones that are better at writing better code.



Why are Lisp and typing incompatible with eachother? Sounds like an interesting problem.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: