Zope

I heard many positive stories about “Ruby on Rails”:http://www.rubyonrails.org, the trouble is that I’m not so fond of Ruby. “Python”:http://www.pyhon.org is much cooler, but why doesn’t it have a cool framework like that? Then I realized… wait, isn’t one of the better web application servers built on Python?

Absolutely, and its name is “Zope”:http://www.zope.org. Zope is an web application server. Ouch, that sounds complicated; which was also my first reaction when I came across it several years ago. And having briefly used other applications servers like “JBoss”:http://www.jboss.org my image of application servers didn’t improve much. They’re complex and hard to use and most of the time simply overkill.

Yet, this time I decided to take a more closer look at Zope. I read positive stories about it and decided to just go for it. I downloaded the “Windows installer package”:http://zope.org/Products/Zope/2.7.3 and dove in. After installing Zope you basically end up with one big application server. It has a webserver, FTP server, Object database server (ZODB) and WebDAV server built in, so you don’t need Apache, MySQL or anything like that. Everything you need (except for Python itself) comes with the package. After the server starts you can access it through http://localhost:8080 in most cases. I followed the tutorial that’s mentioned on the page that’s presented to you. After that I read more in the online “Zope Book”:http://zope.org/Documentation/Books/ZopeBook/2_6Edition/.

I won’t explain how all of Zope works, but I can tell you that I quite like it. It takes a while to get used to, but once you get it, it’s very nice. A couple of things that I like in particular:
* All-containing package, it’s all in there: HTTP server, FTP server, WebDAV and Object Database.
* Much of the development can be done in the browser (through the Zope Management Interface, see picture below)
* ZODB, the object database. This database stores all of your stuff; not just data, scripts, images, folders as well. It’s very easy to create new object types (ZClasses) and add methods and properties to them through the web interface, they fully intergrate into the web-based Zope management interface. What I like is that I can keep thinking in terms of objects. It doesn’t matter how objects are stored, Zope handles this for you. You can use relational databases, but you don’t have to.
* You can start out easy by ZPT templates and DTML documents/methods. Then you can move on to simple Python actions and later on to Zope products, defining your own classes and more.
* You can download many pre-built “products” from the internet and simply install and use them. You can also very easily package up your own products and download them as a distributable .tar.gz file.
* It has advanced security capabilities built-in.
* It has easy to use caching mechanisms.
* Methods you create in Zope are callable from outside the server through XML-RPC.
* It is “scalable”:http://zope.org/Documentation/Books/ZopeBook/2_6Edition/ZEO.stx, you can run your applications on multiple servers, clustering support etc.

The Zope Management Interface (browser-based):

The Zope Management Interface

The problem is: are there hosts that support Zope? Not incredibly much, but a couple. These are two I found:
* “Zettai”:http://www.zettai.net/ZopeHosting/
* “Quintagroup”:http://quintagroup.com/services/zope-hosting

There are even two nice free zope hosting services:
* “FreeZope”:http://www.freezope.org
* “Objectis”:http://www.objectis.org, check out my testing site there: “http://zef.objectis.net”:http://zef.objectis.net.

The trouble with not hosting the product yourself is that not all hosting companies allow you to add and create your own products, which is sort-of limiting. That’s why I love my VPS(Virtual Private Host) so much, I can install whatever I want.

Links:
* “Zope”:http://www.zope.org
* “Download Zope”:http://zope.org/Products/Zope/2.7.3
* “Zope Book”:http://zope.org/Documentation/Books/ZopeBook/2_6Edition/ (“PDF”:http://zope.org/Documentation/Books/ZopeBook/2_6Edition/ZopeBook-2_6.pdf)
* “Plone”:http://plone.org, an advanced CMS built on Zope
* “Zope Hosting Guide”:http://www.zopemag.com/Guides/miniGuide_ZopeHosting.html
* “Zope Labs”:http://www.zopelabs.com, Zope resources