[Zope] General information

Martijn Faassen M.Faassen@vet.uu.nl
Thu, 22 Apr 1999 11:12:18 +0200


Tom Deprez wrote:

Okay, since you ask for it later on, I'll go try answer these questions.

[snip intro] 
> Yesterday, I've seen a demo of Lotus Notes, quiet impressive too. Most
> people have seen this demo too. So I should make a comparison between these
> two and also a little bit with other same alike applications.

Okay -- I don't know the first thing about Lotus Notes, one of the
reasons I didn't respond initially. Before Zope, I don't have any
experience with web application servers; I rolled into Zope from the
Python community. The other reason is that I expected someone from
Digital Creations to pop in and say something. They definitely know much
more about Zope than I do.

> I know Zope is Open Source and free. Offcourse this is a great benefit, but
> I need also some info on usage by experts on the web, usage by people who
> just want to put an article on the web (no experience however).
> 
> 1. Other available applications?
>     I know of ColdFusion, Lotus Notes (it's web & database part), ...

Can't answer this one.

 > 2. Why using Zope above the other?
>     Pro's & Con's of these applications and Zope.

I can only give you some pros of Zope:

* Acquisition + object publishing makes for a very powerful combo. It's
rather hard to get the zen of initially, but it's truly very powerful.
You can define standards for a site, which then can be overridden if
necessary. You can set up basic functionality which then gets acquired
by the system. You can publish any object in Python. Zope offers a lot
of functionality, and at the same time it's a very open system; you can
extend Zope.

* management from the web. This is extremely useful!

* Flexible and powerful security infrastructure.

* Python is one of the best programming languages I know. Definitely
much superior to the application specific scripting languages I've seen.
Don't underestimate this -- kludging around scripting language quirks is
a major pain.

* Active and informed user community.

* the Digital Creations people are very nice guys. :)

Cons of Zope:

* 'getting' Zope can take a while. Zope's design is based on some basic
principles. These basic principles are explained in the Zope
documentation, too (though perhaps some improvements can be made here).
Even though you read it and understand what it says, it still takes a
while before you realize fully what the implications and possibilities
of these design principles are. Zope exploits the power of these
principles in many different ways so it can take a while before you
become familiar with it.

* DTML, though quite nice, can get a bit 'perl'ish in its usage in
places. There tend to be too many ways to write the same basic things in
places. Also expressions that use the underscore to get to the local
namespace can look awful:

<!--#var "_.getitem(_['sequence-item']).title"-->

instead of something like:

<!--#var sequence_item.title-->

There are reasons for this, and DTML itself is still very powerful, but
it can get complicated. Note that most DTML is not as horrible as this
example. :)

> 3. Looking at Lotus Notes, they don't need an external database. Can Zope's
> database be also used like the one in Lotus Notes? (ie. Storing records,
> etc..) How can this be done. Is this database capable of storing large data
> amounts? Huge pictures?

Yes, you can store huge amounts of data in the Zope database. I don't
have much personal experience with it (though i've stored files and
pictures), but Digital Creations does. 

Personal experience shows that this Zope database is pretty resistant to
corruption too. A while back Zope suddenly started behaving oddly. I
went to the server and found the hard drive Zope was installed on was
full (not Zope's fault).

With ZTables (a non open source Zope product) you can do more relational
database stuff inside the Zope database; I don't yet have enough
experience with it to give solid commentary, but from what I've seen it
certainly is very nice.
 
> 4. If you need to make a knowledge base from start. Should we better use a
> database like Oracle, SyBase, PostgreSQL, ... or use the Zope database?

I'm discounting ZTables for a moment. 

It depends on how the data is structured. If your data is structured as
a relational database, by all means use an outside relational database.
Zope has Z SQL methods which makes relational database integration with
Zope quite easy. You just write SQL on the web.

If your data has a more complex structure and consists of objects
pointing to each other and such, the Zope database is a good fit. I
don't have much experience with this, but basically it comes down to
writing some Python classes, inherit some Zope magic into them, and
they're part of the Zope object database.
 
> 5. The search in Lotus Notes is fast... How fast can Zope search?

Depends on what you're searching for? Zope can be as fast as a
relational database it is coupled with. Zope can find web published
objects in its own hierarchy quickly, of course. I believe Paul Everitt
reported that searching through large amounts of data in the object
database was fast, too.

> Other information is surely welcome, because I want to give a good
> presentation on this subject.

Okay, I hope this was useful. Now the rest of you all -- help him!

Regards,

Martijn