[Tutor] web programming tutorials?

Chris Calloway cbc at unc.edu
Sat Apr 19 00:50:32 CEST 2008

On 4/18/2008 4:00 PM, Monika Jisswel wrote:
> Ok but I still need more votes for zope to be convinced,

Well, arguing about what is the best python web framework is kind of 
fruitless. Everybody has an opinion. But no one is qualified to 
pronounce a comparison on all of them. The "votes" you would get would 
be reflective of the number of devotees of particular frameworks.

And not all frameworks are comparable. They have all sorts of niches 
from simple to advanced covering different use cases. Heck, Zope 2 isn't 
even a framework. It's an application server. And Zope 3 isn't even a 
framework. It's a component architecture. And Plone isn't even a 
framework. It's a CMS product.

Experience is your guide. Experience from others: you look at who is 
using what to solve your *use case*. And then experience from yourself: 
you evaluate the options for your use case by using them for yourself.

There is some old Python saw I think attributed to GVR that goes 
something like, "Why would anyone learn anyone else's Python web 
framework when it is so easy to write your own Python web framework?"

And of course the answer is, to get to the other side.

Your question twofold. First, "What's best?" And I would have to ask, 
"Best what?" Then, "Which is most used, Zope or ikaaro?" And the answer 
would be Zope by a mile. But possibly only because a lot of people 
haven't tried ikaaro and Zope has been around about ten years longer 
with a huge accumulated mind-share.

> Just in case Zope won the majority of the voices ... How much time would it
> take one to learn & become productive in zope ?

If you have to ask... (you can't afford).

It depends on what you want to do. The base use case for Zope 2 has one 
of the lowest barriers to entry of any web application server ever. The 
trouble is learning enough to extend that base use case to your use 
case. Then the learning curve can be very steep. Whole frameworks on top 
of Zope have been built for that reason. Which is why people head for 
simpler web frameworks for other use cases.

I find that the complexity and learning curve of a technology *may* have 
some relation to its power and flexibility. Or not. In the case of Zope, 
it is definitely related to *stuff I don't have to build that I want in 
order to be productive.* That is, to get to the other side. When I look 
at a lot of other web technologies, they spend most of their learning 
curve showing you how to build things that already come pre-built in Zope.

That alone is very much in keeping with the Zen of Python in a 
"batteries included" kind of way. And these things are usually built the 
right way in Zope by people much wiser than me and in ways other 
technologies only borrow from when they get wise enough themselves to 
borrow from Zope. It's like Python in that I spend less time programming 
and more time just getting things done. But like the Python Standard 
Library, you don't learn it in a week. You learn it bit by bit.

And then there's the stuff in Zope the other technologies never even get 
around showing you how to build, like awesome super-fine-grained 
easily-extensible security done right and awesome super-flexible 
easily-extensible workflow done right. Stuff that come "out of the box" 
with Zope would often be considered some very advanced cutting edge 
application in some other mere web framework. You may not need these 
things. Lesser web frameworky kinda thingies have their sweet spot use 
cases which only require a certain amount of functionality that you 
might be able to get your head around in a shorter amount of time.

But if you have to ask why Zope, you probably should not get into it. 


Chris Calloway
office: 332 Chapman Hall   phone: (919) 599-3530
mail: Campus Box #3300, UNC-CH, Chapel Hill, NC 27599

More information about the Tutor mailing list