> One of the tough spots I've bumped into, and which has been touched in
> this thread, too, is the difference (sometimes dissonance) between a
> model that is easy to understand and a model that is easy to
> develop/maintain/extend easily, or in other words an intuitive model
> and a good working model.

Great point.  I think I personally have almost always put all my effort
toward the good working model and very little toward an intuitive model.
When they do coincide, great... if not, tough.

That is probably not a very "rubyist" view and is almost certainly a
reflection of my Java background, where complex but extremely flexible API's
are the norm rather than the exception.  The rationale is often that you can
always add the intuitive model later by adding a facade.

Yet after working with Ruby a little bit I've found most of the libraries
I've encountered to be very intuitive and have not yet been left wanting for
more flexibility.  I'll be more conscious of both sides of the equation next
time I design a class library, I'll be interested to see how exposure to
Ruby influences my designs...