[ZDP] Starting to discuss the drafts
Maik Roeder
roeder@berg.net
Wed, 08 Mar 2000 21:49:17 +0100
Hi !
I would like to discuss the draft at:
http://zdp.zope.org/projects/zbook/book/I/Introduction/Drafts/v100/
My comments are added in <P><PRE>maik: </PRE></P>, so it can be uploaded
as is.
Greetings,
Maik Röder
<P>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.
<P><PRE>maik: The last sentence is not needed.</PRE></P>
Yes, since November 1998, Zope is a free open-source product.
<P><PRE>maik: An affirmation with Yes is not necessary.</PRE></P>
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.
<P><PRE>maik: You should not make assumptions on the readers attitude</PRE></P>
Since I started looking at Linux, I became aware of the great power of it: being Open Source.
<P><PRE>maik: Insert link to the Open Source website.</PRE></P>
But also Open Source has 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.
<P><PRE>maik: Drawbacks need not be discussed</PRE></P>
This isn't the case at all with Zope.
<P><PRE>maik: Even more because Zope is a counter example.</PRE></P>
Zope is already a finished product, it's a collection of three products: 'Bobo', 'Principia', 'Aquaduct' and some external methods.
<P><PRE>maik: Maybe we should deprecate these old words and use the new
ones. Perhaps a Glossary would be ok.</PRE></P>
All of these products already have been proven in some serious cases.
<P><PRE>maik:Needs example (Name Bobo's history)</PRE></P>
Another important point, is that Digital Creations, the company which created Zope, after much thought, decided to focus on being a consulting company.
<P><PRE>maik: Digital Creations is a consulting company, and they made Zope
Open Source because they wanted to make it some kind of standard application
which would be known for it's power, and get them new consulting contracts. </PRE></P>
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.</P>
<P>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.</P>
<P>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.
<P><PRE>maik: It is not nice to make assumptions on the state of the
reader.</PRE></P>
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.
<P><PRE>maik: quandry is not a widely used word.</PRE></P>
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.</P>
<P><PRE>maik: FOund this on Slashdot: (http://slashdot.org/askslashdot/00/03/05/2223217.shtml)
In an n-tier environment (web server, app server, database server) all the application server really does is:
maintain a persistent pool of connections to the DB;
maintain state in a stateless protocol;
help separate application logic from display logic
perhaps assist in transaction load-balancing </PRE></P>
<P>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 capable 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.</P>
<P>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 like Java (and like Perl5 multiple inheritance), 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.
<P><PRE>maik: Use the term Open Source consistently</PRE></P>
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.</P>
<P>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.
<P><PRE>maik: Don't write "it seems clear". Zope can compete with other application servers, and has many features that make it unique among them.</PRE></P>
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.</P>
<P>To have a better understanding of the way Zope is, you need to know some basic things about the evolution of the web and it's web applications.