Zope-World Introduction Zope is a free, multi-platform, open-source, web-application platform for building dynamic web sites. The words: 'free' and 'open-source' are most likely returning in your head over and over. Yes, since November 1998, Zope is a free open-source product. Be aware, I said 'since', meaning that this wasn't the case with the previous versions. Maybe you don't find this important, but I do. Since I started looking at Linux, I became aware of the great power of it: being Open Source. But also Open Source has also some draw backs. At some time, groups start at something really great, but never finish it, because they found something what will be bigger, greater then the one before. Resulting in a product that never finishes. This isn't the case at all with Zope. Zope is already a finished product, it's a collection of three products: 'Bobo', 'Principia', 'Aquaduct' and some external methods. All of these products already have been proven in some serious cases. Another important point, is that Digital Creations, the company which created Zope, after much thought, decided to focus on being a consulting company. They need Zope for their business and they will maintain and enhance it, because their company relies on it. At the moment it is a relatively small company, and all of its people are very helpful and responsive to problems and request from the community. Besides this, it's multi-platform. Thus it can run on Linux/Intel, Solaris (SPARC and Intel), Digital Unix, BSDI and Windows NT (and most likely also on SGI/Irix, HP-UX, Windows 95/98, Mac OS, Windows CE, although not supported). Most web application servers are tied to a specific platform and/or a specific web server. Zope is capable of running on many servers, including Apache, Netscape Server, and Microsoft IIS. It also runs on Medusa, a powerful Python-based HTTP server, which provides web, WebDAV, and ftp based access to Zope, thanks to an arrangement Digital Creations made on behalf of the community with Sam Rushing, creator of Medusa. I'm almost sure that I've got your full attention, so let us dig a little bit deeper into the 'why' of Zope's creation and existence. As web technology advanced, and websites became more complicated, it became increasingly obvious that once a website was created, it was hard to maintain. This is a quandry, since websites, moreso than any other form of publication, are dependent on being kept up to the minute. In addition, connecting the web to a database in a secure manner while not requiring a single person to know every aspect of the site, HTML, SQL and the elements of good design was yet another problem to face. Web application platforms were created to make life easier for the web-programmers. They provide a server-based scripting language designed to simplify these 'difficult' tasks, and generally include mechanisms to access databases. The current crop of web application platforms include Cold Fusion, Silverstream, Netscape Application Server, Active Server Pages (Microsoft), and more. Zope provides a different paradigm than most of the traditional web application platforms. When creating web sites with Zope, you work with an integrated object database. Most other web application platforms use a relational database. Although Zope uses an internal object database, Zope is not incapable of using relational databases as resources. On contrary, Zope provides a mechanism for integrating relational databases into its object structure. This means that you can still use a SQL-server to provide your data. This is advantageous both because not all data lends itself to being stored in an object oriented way, and because it provides access to legacy data stored for other reasons, by other programs. Several modules are written for this purpose and officially supported: Oracle, Sybase, MySQL and ODBC. It is generally not difficult to implement a new module, using the source of the preexisting modules as a template. One example of this is the PostGresSQL database module. While it is unlikely that a normal user would start writing such a module, the Open Source policy means that other people may already have written it for you. So, to summarize, you get all the benefits of an object-oriented environment, and can integrate your companie's preexisting databases easily. While the web interface of Zope is generally designed for content managers, Zope has much to offer to programmers. Zope provides access to external methods and internal modules which can be written in the powerful, clean Python language. Python provides much of the advantages of Perl or Java, providing the same easy scripting of an interpreted, interactive programming language like Perl, while providing powerful objects with multiple inheritance like Java, and a syntax which enforces readability, so its code is always easy to understand and modify. Python is also multi-platform, free, and open source. Zope itself is largely written in Python, and so inherits the clean readability and easily modified code inherent in all Python programs. (A few components of Zope are written in C for performance reasons.) But because of Zope's internal server-side scripting language, DTML (Document Template Markup Language) it is not necessary to know Python to create sophisticated websites using Zope. Given the above, it seems clear that Zope can at least be put on a level with the other common web application platforms, and in some areas, rises above them, because it provides a new metaphor for creating web sites. Zope's unique python based object database provides powerful benefits, although some might see it as a drawback, since it requires a new way of looking at traditional problems and tasks. Of course, this is only the beginning of the story, and as we move on, we will look deeper into the world of Zope.