[Zope] Zope vs other Web Languages.

Samuel D. Gendler sgendler@akamai.com
Tue, 03 Apr 2001 01:06:24 -0700


"Michael R. Bernstein" wrote:

> 
> Unfortunately, there is almost no chance that Zope will
> compare favorably to any of the options that you've
> mentioned *purely from a performance standpoint*. This is
> because DTML needs to be evaluated, and the engine that's
> doing the evaluating is itself written in an interpreted
> language (Python). Whereas the interpreting engines that
> you've mentioned are written in compiled languages, or in
> the case of JSP a bytecode compiled language (somebody is
> certain to correct me on this if I'm wrong).
> 
> However, Zope is more than fast enough, so your superiors
> are actually asking the wrong question.
> 
> The thing is, it's a heck of a lot cheaper to buy extra
> hardware than it is to pay more people, and in my opinion,
> Zope is a huge productivity enhancer when it comes to
> building web-applications. Time to market is reduced,
> because so much has already been built for you 

This is true, within limits.  Some environments have a maximum latency
that they are willing to make a pair of eyeballs wait before a page is
displayed.  If a page is computationally complex, it would be possible
to get Zope to take too long to render the page, even on a lightly
loaded, high performance box.  At that point, your only solution is to
move to a higher performance environment.  However, that is the whole
point behind python scripts and python products.  Let DTML be used for
page assembly (sticking fragments together in the correct order), but
let computation be done inside python.  This has two advantages.  One,
you lose the double interpretation of using an interpreted language to
interpret your dtml before rendering.  Two, you can write a module in C,
which is about as fast as you could possibly need to get in a web
application environment.  I suppose that from C, you could always call
some assembly code...

There is no good reason that Zope shouldn't be able to perform up to
anyone's standards, but you lose some of the development efficiency if
you have to drop into python or C whenever you want to do something
fast.  Fortunately, unless you spend lots of time working in Zope for
fortune 500 external websites, you probably don't need that kind of
performance.  I actually found that on fairly simple templates (assuming
that most computation is done in python), Zope is EVERY bit as fast as
PHP running as a module in Apache.  It compared favorably to Cold Fusion
when I tested it a year ago, too.

Every language has its stong and weak points.   It is usually pretty
easy to code around them.

ASP is faster than just about anything around, when it comes to page
assembly.  If you are doing complicated computation on SQL results, it
slows right down with the rest of them.  JSP with a really good JVM is
also getting pretty damn fast, even on Linux.  After that, you can
probably lump mod_php, mod_perl, cold fusion, zope, and midgaard all
into the same category, with mod_perl at the bottom.  I will ignore the
writing of custom apache modules to build your application, as that is a
pretty expensive development model.

--sam