In comments on this post Martijn Faassen says:
Unfortunately, it has also meant that Zope is not as easy to scale
down to small applications. Not being able to scale down
negatively impacts the learning curve, and that negatively impacts
adoption. We should fix this, and in fact work has been done on
it. You're right in that the "hello world" case should be even
easier (even though Zope's "hello world" does a lot more than
you'd think at first sight).
I assume "Zope" in this context applies to Zope 3; Zope 2 has a funny
learning curve. I don't know what a Z-shaped curve is -- I think that
breaks my concept of a what a learning curve looks like -- but the
curve is one that starts as being really really easy, and then really
really hard. Zope 3 doesn't have a really realy easy part (which is
fine, since that just led to false starts in Zope 2, IMHO).
But I'd say that Zope's scaling problem doesn't just hurt adoption, it
really hurts development too. All applications start out as small
applications. I could even invoke some hype word (maybe appending a
version number) and say that the New Way Of Development involves lots
of small interacting applications instead of large apps.
Good development in the beginning means deferring choices as much as
possible and focusing on results instead of abstractions.
Abstractions should emerge from your functional goals, and if you
spend a lot of time modeling in the beginning then you've made
premature choices and designed code that you don't yet understand.
You haven't just wasted time, you've introduced a liability.
That doesn't mean abstractions are bad. I'm not saying we should all
use PHP; sometimes it's faster to walk than drive, but using PHP is
like living in a world where they haven't invented the wheel.
Zope 2 allowed you to start without modeling at all, but down that
road led an unmaintainable mess (you can do maintainable code in Zope
2, but it requires up-front modeling in the form of Product building).
Zope 3 encourages modeling from the beginning, but I don't think
that's the right lesson to learn from Zope 2. It wasn't that Zope 2
was wrong for allowing that simple start, but that it was misdesigned
so that there was too much of a disconnect between the simple form of
Zope 2 and the reasonably-manageable form.
Anyway, there seems to be a lot Zope 3ers lately saying "hey, what about
us?", so there's my $0.02.