Posted
by
timothyon Monday January 06, 2003 @02:48PM
from the for-all-your-zoping-needs dept.

nosse_elendili writes "These are exciting times for those of us who use Zope, because the long anticipated Zope 3 Alpha 1 has been released! For those who don't know, Zope is a powerful but somewhat obscure free, open-source, cross-platform web application server built around Python. Zope 3 is a complete rewrite and rethinking of the Zope platform so it looks and operates quite differently than previous releases. However, if you have never played with Zope before you should probably just read about Zope 3 and stick to the stable version with the Plone content management system installed. This is only an alpha release after all and Zope3 looks and acts alot like Zope2 + Plone."

This is a stupid question - I hope. I have used Zope before and I understand pretty much how things work. I'm also big Python fan so that's not a problem. However, I still find Zope ugly, inflexible and tedious. Maybe it's because I don't think in Zope but I find, for example, the PostNuke world to be more useful, robust extensible, etc. I think the best example of this is the Zope websites. Why are they so hard to navigate? Why do they look so plain? Why does everyone have a useless calendar stuffed to one side? Don't get me wrong. I _really_ want to like Zope. The concept is exactly what I want - an object oriented web framework built on Python. I just can't seem to get all that excited about it without facing the prospect of writing an entire system from scratch. Am I missing something or is it really that hard to create a highly functional, good looking portal site from Zope? I currently run a couple sites on PostNuke and I incorporate news, a photo system, a BBS style forum and a group calendar. I know Plone looks pretty cool but it still seems cumbersome and difficult to taylor to specific needs. What am I missing?

I think the point that you are missing is that Zope is a development environment, not an out of the box BBS or portal.

Zope is a tool to create very powerful web based applications. I have developed several applications that do not fit into the a PostNuke type system. A few of them include a tracking system for help calls for our help desk, a tool for our software engineers to operate at SEI level 4 (we won't get into that here), and a system for my assistant sysadmins (FAQ's, server information, How-TO's etc..).

As far as all the Zope sites being hard to navigate, I'm sure that is because a programmer created the site and not a web designer. (I don't want the frills, just the info)

Progress is underway for a zope.org community site replacement that will be based on more recent versions of Zope and the Content Management Framework. This should defitely improve things (searchability, news, product listings).

The Zope community, though, is very rich, and the mailing lists generate a lot of traffic; also, #zope and #plone on openprojects (or whatever its called now) are useful resources.

Zope 3X really provides a framework much more focussed on developers creating and leveraging services and applications, and less on the out-of-the-box feel. The main ideas behind Zope3X are to lower the barrier to writing Python product code, and leverage existing Python modules and applications more readily; also, focusing on component-oriented design (favor composition to inheritance and a bunch of mixin classes; where Java forces you through lack of multiple inheritance to do this, Python is more flexible, and with this comes a downside of overuse of inheritance in Python, of which Zope2 is a good example; Zope3 solves this to lower the learning curve and decrease complexity).

Overall, I think Zope 3 will become a convincing alternative to.NET and J2EE people who want to code in a better language;) with a decent framework. In the meantime, Zope2 is still an excellent product for complex applications, and in particular for content-heavy applications that can leverage both built-in transaction support, object-persistence, and good relational database support.

I want a better Zope very much, having toyed with Zope 2 and found it a bit of an uncomfortable fit. As a developer, I'd like to try Zope for applications above all, but I also want to be able to handle the "content" side of things with a minimum of fuss, so more orthogonality with regard to logic and presentation is a Good Thing for my purposes.

One thing I think Zope could really use is some pattern-based documentation, a wide-angle-lens overview with an emphasis on architectural idioms and good practice. The material available at the moment is by no means poor, but it leans towards the How-To rather than the Why-, When- or Whether-To. This is a fairly unavoidable characteristic of a software project in development, unless it's driven from the outset by a powerfully articulated vision, but as it comes out of the other end of a major refactoring Zope must by now have a whole load of users, developers and advocates with a pretty clear idea of what the Zope Thing is all about, and it's this that needs to be communicated to those of us who've tinkered a bit but not really managed to see how it all fits together.

I think the point that you are missing is that Zope is a development environment, not an out of the box BBS or portal.

Granted Zope isn't directly comparable to something like PostNuke but they both are development environments that support modules (products). The bulk of what I use in the PostNuke environment are add on modules. I guess that I'm just surprised that given the object oriented nature of Zope and Python that there aren't more great products available for Zope that solve most of the more common needs in the web world. I'm not saying that I don't want to dig into the guts of the system to get what I want. I'm just saying that I'm surprised that I have to start from such a base level.

Maybe if I get some time one of these days I'll create a site devoted to showing off the capabilities of Zope and the available products. I think this might be exactly what's missing (for me anyway). I just don't see all that many Zope based sites that really impress.

As far as all the Zope sites being hard to navigate, I'm sure that is because a programmer created the site and not a web designer. (I don't want the frills, just the info)

It's not just the lack of frills. I guess that frills would be nice but basic function is lacking. Finding things on Zope.org for example can be very frustrating. It's hard to navigate. It's hard to tell what type of page I have accessed. It's hard to distinguish old information from new. It's hard to tell what products go with what Zope versions, etc. It makes me wonder if core Zope development far outpaces documentation, product support, etc. It sounds like Zope 3 is supposed to address some usability issues. I hope it does and I hope some really cool products and sites emerge.

You actually CAN make decent websites with it... and fairly easily... but you REALLY have to understand EXACTLY how to use zope before you get very productive. This is one of the things they are trying to address in zope 3.

Being a big fan of Python... I am using Webware [sourceforge.net] now for my web development stuff. It is a bit lower level than zope... but it works pretty well. It is modeled after the java servlet and JSP frameworks...

You should check it out. See the Wiki page for a good deal of information too. (You might check out the Model 2+1 wiki page I have been working on... not near completed yet though)

I belive http://umiststudents.com/ [umiststudents.com] runs on Plone. Obviously http://plone.org [plone.org] does too. Neither are ugly looking by any stretch any both very usable. A lot of effort has gone into Plone to make it look "plain" - that is clean & simple to use. That's surprisingly hard with such a full featured CMS. Much easy to make one cluttered.

Setup's much quicker & simpler than the apache/php/mysql combo.There's a plone installer now that even sets everything up for you. That's your webserver, app server, content management system and database all in one.

As for Zope sites looking the same - just look at the various sites in this post. I'd say Postnuke sites all look far more alike to be honest.

Zope is excellent at wiki's too. The whole "page is an object" model fits wikis very well. Zwiki http://www.zwiki.org [zwiki.org] is one of the best I've seen,

Zope, Plone, and Zwiki are all progressing at a fair pace. If you haven't tried in a while it's worth having another look. I think one of the main problems is that it's just so different to other solutions out there. I'm used to J2EE development. From JSPs it's reasonably simple to pick up ASP & PHP. Zope requires a bit more of a mindshift.

I am a big fan of Zope 2, and have written several products and complete websites in that framework (such as cookeville.com [cookeville.com] and tnproperties.com [tnproperties.com]), but I am still confused about Zope3. Since there seem to be a few people in the know about Zope posting here, I thought I would pose the following question: What, exactly will Zope3 do for me that I cannot do in Zope2?

At the moment in Zope2, I can access databases, template my data, or index data directly on the server. I have a powerful security framework built in, as well as fast dynamic scripting.

Other than a user recognition system that does not require simple http authentication (which forces me to use Cookie Crumbler if I absolutely *must* allow my users to log in via form) and the ability to turn off transactions when I don't want or need them, I have just about everything I need to build powerful dynamic websites.

What will I get in Zope3 that I can't do in Zope2?

So far, hype over Zope3 is centered around integrating CMF/Plone. That's all well and good, if you need that, but CMF and Plone are heavy for a content management when I can easily roll my own better-performing sites with ZPT, DTML, or a custom Python Product.

The features that Zope *really* needs seem to be out in the dust in the rush to make a CMF for non-programmers.