Hal Fulton wrote:
> Jamis Buck wrote:
> 
>> Copland (an IoC container for Ruby) is moving forward, and I *think* 
>> it's almost ready to be considered at a "beta" level of stability and 
>> usability. That said, I need feedback: is anyone here using Copland? 
>> I've heard from (I think) two people, off list, that are using it.
>>
>> What I need is (a) what features you feel are still missing, and (b) 
>> what features you think need to be fixed.
> 
> 
> So many bright people rave about IoC that it must be something
> pretty cool. But it always makes me think of _The Cat in the Hat_ --
> the TV version -- where someone has stolen his purple three-handled
> family gradunza, or whatever it was.

Nice metaphor! I don't think I ever saw that, but it sounds very 
Seussian. :)

> 
> Try as I might, I can't yet grasp what it is, what it's for, or why
> I might need it.

That's exactly where I was about a year ago, when I was first told that 
we were moving to Java (like it or not), and we were going to be using 
an "Inversion of Control framework". They explained it and explained it, 
and never really got it until I actually starting *using* it. Then I 
fell in love with it. :)

> 
> Reminds me of early 80s when I first heard of OOP -- from a person
> who also didn't understand it. He gave me a sketchy outline of what
> it was about, and I thought: Why? Why would I need that?

It's not quite as fundamental of a paradigm shift, but it is still 
significant. Howard Lewis Ship (the creator of HiveMind, which inspired 
Copland) has recently described IoC as the counterpart to garbage 
collection. Just as garbage collection is responsible for automatically 
reclaiming and destroying objects at the end of their lifecycle, so is 
IoC responsible for creating and initializing objects at the beginning 
of their lifecycle.

> But I'll do some more reading. :) Until I grasp it, I'll just listen
> to Copland instead of coding with Copland, using plain old un-inverted
> control.

That works, too. :) Frankly, it isn't until you ramp up to some fairly 
complex applications that IoC really starts to buy you anything. (The 
text editors that have recently been announced have seemed in my mind 
prime candidates for IoC.) And for really small projects, it can just 
get in the way. It's also not something you use "ad-hoc"--it requires a 
fair bit of thought and design "up-front" to really take advantage of.

Anyway--hopefully my presentation in a month will be helpful. I've 
learned a lot more about the topic just preparing for it. :)

-- 
Jamis Buck
jgb3 / email.byu.edu
http://www.jamisbuck.org/jamis

"I use octal until I get to 8, and then I switch to decimal."