Forum OpenACS Q&A: Response to Article on ACS x Zope

Posted by Titus Brown on
This all begs a couple of different responses ;). I'm developing sites with both Tcl and Python, both inside of AOLserver, and I'm also helping develop the Python interpreter for AOLserver (plug:

I've also developed sites with Apache/CGI/Perl, and I've read my share of Zope documentation. For a nonsensical and silly document on how Zope is the Antichrist, see Zope Is Evil. It DOES have some serious points in it, if you can struggle through the whole thing.

Note: Please don't pass on the link to large mailing lists unless you want to offer me a machine to host it on -- that machine is running three separate Web servers + two databases on 64 MB of RAM and ~5-10 active users. I'm not sure Zope can handle it, although AOLserver does quite easily ;).

I've also set up several (5 or 6) systems with Classic ACS/Oracle, and now four with OpenACS/PostgreSQL.

So, now, a couple of points:

  • I've extended both Python and Tcl; the interpreter for Tcl is leaner, and both are written quite cleanly. Based solely on this I can't believe that Tcl would be slower than Python. If anything, the abstraction involved in Python's (well-integrated) object system would probably tend to make Python slower... (I would be happy to offer people accounts on a vanilla system to run benchmarks.)

  • Python doesn't support efficient multithreading. (I can point people to some fairly recent posts on the AOLserver mailing list that explain this in more detail.) In fact, this is the reason for the ZEO.

    Why go to all that work when AOLserver will handle it all with no trouble?

  • AOLserver has been around much longer than Zope and is therefore demonstrably a solid product. Zope cannot claim this longevity. My fuzzy little ears perked up (skeptically) at all the claims of new features in Zope... Only time will tell if the new functionality works well.

  • Content management in ACS is lousy. Content management in Zope is obscure beyond belief.

  • Several very intelligent people (who aren't me) have had trouble with Zope. See PyWX advocacy for anecdotal evidence that is born out in my experience.

  • Zope is easier to install. ACS is easier to learn, in the medium and long run.

If I had to install Oracle to check out the ACS and didn't have a pretty serious reason to do so, I would have gone with Zope. Luckily someone who already knew how to do it paid me the first time, and then aD ran a bootcamp course at Caltech. So here I am... AOLserver is absolutely fantastic, and the ACS has a maturity that is hard to match. Integrating ACS and Zope functionality (through a PyWX class) is a long-term goal of mine, because I think Zope is pretty cool, but I would prefer to work with ACS/AOLserver.

I also hate Tcl, even though I've worked in it over a 6 year period. Python is wonderful. Hence, PyWX. (Note that IMO a significant part of PyWX will be providing a nice interface to (parts of) the ACS data model.)

One final note: objects are important. Stability is more important, when you're producing a big site. PostgreSQL is unhappily not perfect, but is getting better. ZODB? I can't understand the damn thing, and it's home grown. Pfawgh.

I could probably go on longer, but everyone is probably sick of PyWX stuff already ;).