What is Zope?
Zope is Python-based, open-source web server. It gives web developers an easy way to create dynamic web pages.
Zope was created with some really inspired design philosophies:
- Code and HTML templates should not be mixed
- HTML templates should be easily viewable and editable with existing HTML editing tools
- It should be easy to add data fields to a file object
If it's so great, then why replace it?
Despite all the good stuff that Zope gives the developer, it comes at a price. If anything, the Zope developers have given us too much. In an attempt to protect us from ourselves, they have severly limited what we can do. Or at the very least, what we can do easily and painlessly.
The upshot of this is that Zope has seen very little adoption. Developers might read an article on Zope and think, "Wow! That's how web development should be done." But when they actually try to create a web site with Zope, they find that the experience to be rather broken and unfulfilled.
Zope is open source, so in theory, it could be changed. However, I feel that the problematic design decisions that plague Zope are so fundamental that the only way to get developers to use Zope's "good stuff" is to completely replace Zope with a stripped-down version. i.e. Let's keep all the good stuff and toss out the bad.
So what is the goal here?
My goals are simple:
First off, should Zope really be replaced?
I think it should be, but I'm just one programmer. I'd like to create this wiki as a place to intelligently discuss the problem (be it real or perceived) and whether replacing Zope is the correct solution.
Secondly, let's dissect Zope's features
There's a tremendous amount of "stuff" in Zope. Some of it is really great, and some of it is really limiting. We need to go through Zope's major features and figure out what is worth keeping and what should be tossed.
Additionally, some concepts should probably be kept, but the implemenation of them should be rethought. This is our opportunity to identify these features and brainstorm up ways to improve them.
Next, I'd like to identify what we want
Let's discuss syntaxes, features, and methodologies that everyone can live with. What is it we really want and what can we give up to get the things we need?
Finally, I'd like to code Zope's replacement
With luck, the collaborative environment of this wiki will help identify ideal contributors who can help get the ball rolling.
The single most important thing I can ask of you is not to vandalize these pages. If you do not agree with something shown, don't delete it. Instead, add a rebuttal. Create a page which intelligently explains who you are and why you do not agree.
Explain why we are wrong and suggest which way we should go. Help us collaborate.