Why don't languages integrate Dependency Injection at the core?

Because languages are design/design-pattern neutral.


As Grodon says in the comments: Function/method parameters are dependency injection - and pretty much all languages support those at the lowest levels.

DI frameworks are usually tailored towards server environments. Language mechanisms would simply be the wrong level of abstraction for that.


They do, actually, by letting you pass parameters to methods/constructors/functions - and that's pretty much all there is to it, what DI frameworks do is just a fancy way of specifying parameter values.

A more interesting question would be how to enforce dependency injection on a language level. Banning static state is probably a good start (like Newspeak does).