This might be a naive question. I\'m currently learning the Spring framework and dependency injection. While the basic principle of DI is rather easy to grasp, it\'s
Dependency injection is a degenerate form of implicit parameter passing, and the purpose is essentially the same, to solve what's called The Configurations Problem:
The configurations problem is to propagate run-time preferences throughout a program, allowing multiple concurrent configuration sets to coexist safely under statically guaranteed separation.
Dependency Injection frameworks compensate for the lack of implicit parameters, Curried functions, and convenient facilities for monads in the language.