I dedicate this message to all of the singleton users everywhere. May your singletons be gasping their last breath.
Many, many moons ago, component-based development was born. And with components came containers.
And the age old riddle was born: "Which came first, the component or the container?"
Time wakes from a nap... water trickles from the leaf of an old, wise tree.
Many, many moons ago, Microsoft created MTS as a better way of managing COM on the server side.
Sun plaigarized it, making some things marginally better (e.g. message driven beans are marginally cleaner than queued components)
and many things dramatically worse (entity beans, anyone?). Ah the good old days. The container meme spread.
Space stretches and yawns...
Many moon ago, the Apache group gave birth to the Avalon Framework as a kinder, gentler container technology. And it evolved and grew. And it talked about the "Inversion of Control (IoC)" pattern. And there was wailing and gnashing of teeth, for the name hinted at ideas long ago codified in the venerable GoF (hollywood principle/template pattern/dependency inversion, anyone?).
Time sneaks up, slaps Space firmly on the backside, "Adopted Dimension, Adopted Dimension" and takes off running, maniacal laughter in the air.
IoC containers start popping up on every street corner, like so many hotdog stands. Pico, Nano, parts of Spring, XWork.
A few moons ago, Martin Fowler got fed up with it and wrote an article explaining IoC and renaming it "Dependency Injection," to help with the confusion. IoC is a cooler abbreviation than DI, but the teeth are less gnashed, and so the veneers may safely be avoided.
The extra dimensions remained curled in their ball off in the corner, secretly plotting an attack down the Tau axis.
In the Microsoft camp, things were relatively silent. A moon passed, then another. Two more, and then the urban potato cleared his throat and spoke up, saying, "eh hmmm, excuse me. I would like to show you System.ComponentModel":
A moon passed. Space said, "Look, I'm tired, and besides, South Park is coming on." Time relented.
And Daniel Cazzu, MS XML MVP extraordinaire, followed up, tying the knot between System.ComponentModel and DI, so to speak.
Robert Martin wrote about this notion when the ether floated above the water (summer, 96?)
Recent Comments