[ZDP] Next Part...

Quinn Dunkan quinn@challenge.calarts.edu
Mon, 10 May 1999 15:13:16 -0700

> 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

> Thus, OO programming languages have a syntax which enforces readability, so
> its code is always easy to understand and modify.


> 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'.