Sascha Ebach wrote:
> Dear Jamis,
> 
> 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.
> 
> 
> I am new to the IoC/DI kind of working, but I find it _very_ 
> interesting, although I don't actually know how to get started. The 
> documentation is very good so far, but only covers the basics and it 
> doesn't help with "getting into it" (me at least). The reason I can't 
> decide to use this technique is because there are no real world examples 
> I could look at (for Copland, I guess there are for Java DI libraries). 
> It really bothered me when, after enjoying the whole very nicely written 
> documentation, I still didn't know how exactly I could use Copland to 
> help in my programming. What I am saying is that I would really like 
> some small example app which shows the difference between using Copland 
> and not using it. Some good instructions. I am not asking you to write a 
> book, but maybe you have read Kent Becks Test Driven Development or "A 
> Programming Episode" in Agile Software Development by Robert C. Martin. 
> I would like to have some advice on "Here is how you use it".
> 
> "Ask not what I could do for Copland, ask what Copland can do for me" ;)

Very appropriate advice, Sascha. :)

> 
> If it not asking too much I would really like to see 2 little sample 
> apps with the one where you could at least start to see the benefits in 
> action. I understand that the real benefits start to show when the 
> system is getting bigger. I would need something that would bring me 
> into the right mindset so I could decide to use this technique for my 
> programming efforts or when to use it. Does that make sense?

Lots of sense. As I said in my reply to Hal, though, IoC really benefits 
large applications more than small ones. However, the 0.6.0 release of 
Copland has a "real world" example application of a Calculator 
implemented using IoC. (I put "real world" in quotes, because although 
it demonstrates the techniques of programming with IoC, it's not the way 
you'd really want to do a trivial calculator program.)

Also, the documentation in CVS (which will be released with 0.7.0, very 
soon) includes a couple more tutorials (bringing the total to 4). The 
tutorials since the rewrite are, I think, much more applicable than 
before--I don't know how recently you've looked at the Copland docs.

Still--I'll see if I can't think of a nice, large, "real world" example 
of IoC (specifically, using Copland) and then see if I can find a good 
way to present it in the documentation. Ironically, I don't have any 
large examples using Copland, although I've got a couple in mind that I 
keep intending to start "as soon as I'm done with Copland." ;)

> 
> Using DI seems to me like a little more than just using the next 
> library. Maybe it is not such a big paradigm as TDD, but it seems like a 
> certain way of programming that needs a little more explanation than the 
> usual stuff. I really wonder how I could benefit from that.
> 

Thanks for the feedback, Sascha. I'll do some thinking, too. I'll see if 
I can find a better way to present IoC.

-- 
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."