[ZDP] Next Part...

Howard Clinton Shaw III shawh@sths.org
Fri, 14 May 1999 11:50:38 -0500


Please forgive me if this has already been done, but I have been ill, and am
just catching up, so will be responding to old material for a while.

Zope is built on a powerful foundation. Python, the language in which Zope is
largely written, was designed by Guido Rossum to be both powerful and clear. It
uses indentation to denote program flow and logical depth, and as a result,
Python code is generally very easy to follow and understand, and to change.
Python has a very clean OO implementation, which, while lacking the protective
encapsulation of strictly typed languages such as C++ and Objective C, makes it
easy to group data with methods intended to operate on it. Python also makes it
easy to use multiple inheritance, a feature Zope makes impressive use of, by
providing 'mix-in' classes which a given class can inherit from to participate
in the Z Framework. 

Python is also the implementation language for Medusa, the powerful creation of
Sam Rushing, which provides the basis for ZServer, and provides Zope the
ability to provide access through FTP and WebDAV with impressive speed.

(Note that I avoid any mention of Perl. We don't need to rehash the Perl/Python
debates, and we certainly don't need to antagonize any PerlMongers.) More later.

On Mon, 10 May 1999, Quinn Dunkan wrote:
> > But, you should also remember (from the previous section) that Perl,
> > besides it's very powerfull, it isn't a very clear langauge and certainly
> > not for a beginner. Knowing that, other 'scripting' languages appeared on
> > the horizon. One of them is Python. 
> > 
> > Object Oriented Scripting Languages
> > 
> > Python was created long after Perl. This was certainly a benefit, because
> > there is a certain evolution in programming too.
> 
> Nitpicks:  Python has been around for almost as long as perl.  I doubt that
> Guido wrote it as a response to perl.  And there have been plenty of scripting
> languages for a long time, pre-perl and post-perl.  Perl is just one among
> many.  Also, OO has been around for a long time, too.  Python and perl's
> differences are not because of chronology, just different approaches.
> 
> And perl people will be quick to point out that perl has objects too (although
> a bit unwieldy, IMHO).
> 
> Unlike some OO languages like Objective C, it is not usual for every python
> object to have a parent (I assume parent means superclass, the terminology is
> unclear).  I believe it would be clearer to characterize OO as a way of
> bundling data its operations together (which you can do in any language,
> althogh some have explicit support), and then once done with that, mention
> inheritance as a way to create a new class based on an old one (or two or
> three).
> 
> > Thus, OO programming languages have a syntax which enforces readability, so
> > its code is always easy to understand and modify.
> 
> *cough*
> 
> > Growing to a Web Application Platform
> > 
> > A great start is to make it managable, keeping everything together. So it
> > would be handy to have a database keeping all the python objects together.
> > It is obvious that you would use an object database to store all these
> > objects. Here we see the first realisation of Zope. That is, Zope has an
> > object database to store all the objects. The database is simply called the
> > Z Object Database.
> 
> It might be easier to draw an analogy with a unix-style filesystem, which is
> an object database of a kind (with a limited set of methods: open read write
> etc. and ioctl for everything else), and then ZPublisher is just a filesystem
> driver.  Just as the fs driver translates system calls and path names into
> operations on data on the disk, ZPublisher translates method names and
> path names into operations on data in the ZODB.  DC just says 'publish'
> instead of 'namei'.
> 
> _______________________________________________
> ZDP maillist  -  ZDP@zope.org
> http://www.zope.org/mailman/listinfo/zdp
--
Howard Clinton Shaw III - Grum
St. Thomas High School
#include <disclaimer.h