I'm interested in finding out how IoC containers out there has evolved over time since Inversion of Control Container was coined as an expression of its own, so I'd like to track down the early ones, if possible.
Inversion of control is not a new term in computer science. Martin Fowler traces the etymology of the phrase back to 1988, but it is closely related to the concept of program inversion described by Michael Jackson in his Jackson Structured Programming methodology in the 1970s.
An inversion of control container is like the event planner. It manages all the different requirements for creating a specific object instance. It allows us to move away from a system in which we have to manually initialise and inject all the different pieces of the application.
Dependency Injection was originally called Inversion of Control (IoC) because the normal control sequence would be the object finds the objects it depends on by itself and then calls them. Here, this is reversed: The dependencies are handed to the object when it's created.
Spring IoC (Inversion of Control) It gets the information about the objects from a configuration file(XML) or Java Code or Java Annotations and Java POJO class. These objects are called Beans. Since the Controlling of Java objects and their lifecycle is not done by the developers, hence the name Inversion Of Control.
From "Origin of the Hollywood Principle" (Feb 5th 2004) by Stefano Mazzocchi:
...the Inversion of Control paradigm was coined at Xerox PARC where so many other things were invented.
(read the whole article, it's short and sweet).
Stefano also points at the origin of the term "Inversion of Control" in this other article (Michael Mattson, 1996)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With