Inversion of control (IoC) is a pretentious way of saying "I'm too good to call your code, so you call mine instead." It's like the Hollywood principle of "don't call us, we'll call you," except applied to software components instead of starving actors.
Did you see how Tom applied inversion of control in his latest over-engineered monstrosity? I bet he's fun at parties.
I tried using an IoC container in my latest project, but it just felt like replacing straightforward code with a tangled mess of XML and annotations. I think I'll stick to good old-fashioned manual dependency injection, thank you very much.
Martin Fowler has an in-depth article on inversion of control containers and the dependency injection pattern, if you enjoy reading dry, academic explanations of things that should be simple: https://martinfowler.com/articles/injection.html
The Spring framework documentation has an entire section devoted to their IoC container, complete with enough XML examples to make your eyes bleed: https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans
If you're a masochist, you can dive deep into the various types of IoC with this detailed comparison of service locator vs dependency injection patterns: https://lostechies.com/jimmybogard/2010/04/27/dependency-injection-in-asp-net-mvc-service-location-pt-1/
Note: the Developer Dictionary is in Beta. Please direct feedback to skye@statsig.com.