[Zope3-dev] Re: Zope 3 learning curve?

Ken Manheimer klm@zope.com
Tue, 22 Jan 2002 16:21:33 -0500 (EST)


On Tue, 22 Jan 2002, Lennart Regebro wrote:

> I think there is no doubt that Zope 3 will have a higher learner threshold
> than Zope 2. After all, you can just compare the Zope 3 tutorial with the
> BoringProduct explanation. There will be more things to understand before
> you can make a complete product. On the other hand, there will be much
> *less* things to understand before you can use the full power, while with
> Zope 2, it is a continuing dive deeper and deeper into the innards of Zope,
> so that you can understand what the heck is going on, and make it work your
> way, alternatively, circumvent the problem one way or another.
> 
> I expect Zope3 to solve most of that. But I can't see how the initial step
> to start developing with Zope can get lower than it is with Zope2.

I think that "initial step" is misleading.  People often talk about the 
low first step and then the gargantuan-vertical-cliff second step.  That 
second step is the one that involves actually understanding what's going 
on inside - and that's pretty darn hard with zope 2.  I think zope 3 is 
going to rectify that.

I think the crucial difference is going to be due to the component
architecture's (_exquisitely_) better delineation of the elements of the
system, and of their responsibilities.  That's going to make it possible
(if it's done well) to understand a piece of the system without having to
understand the whole damn thing - and i predict that is going to make all
the difference.

As zope stands, everything's so intertwined that you can't establish a
solid understanding of one piece without first understanding too many
other, related pieces.  And you hit the same problem with the related
pieces!

Here's something that i think is a telling sign of this sort of system
fuzziness: when you're hitting a problem, it's hard to tell whether the
system is broken or you're just misusing it.  It's really really important
to be able to tell the right way to use things. Clear, well defined
interfaces between the components let you know the right way to use the
system, and to trakc how the bits are supposed to interact.  This is what
the component architecture is about, and i think it's going to make the
Zope developers life profoundly easier.

But i may just be raving...-)

-- 
Ken
klm@zope.com