[Zope-dev] zope's zen - mapping web site to programming environment

klm@digicool.com klm@digicool.com
Thu, 8 Apr 1999 13:05:29 -0400 (EDT)


As i've been getting a sense of zope (i'm slow, i know), i'm enjoying
seeing a model that pulls it all together for me.  It may be obvious
to anyone that has zope's zen - or it may be just plain wrong ("jpw").
I wonder, and wonder how it registers on you all.  So...

My realization is that for the programmer, below the content-
management functionality, zope translates the framework of object-
oriented programming onto the framework of a web (or other document
publishing) site.  (From stray comments i gather that bobo more
obviously did this, and that zope is increasingly getting back to that
point, making this all easier to apprehend and use.)

 - Acquisition turns the document hierarchy into modular programming
   scopes:

   - Folders are sorta like python modules and class objects.

   - Documents are routines - folder methods - with literal and dynamic content

   - External Methods correspond to python's extension builtins

   - Components (formerly Products) correspond to pythons extension modules

 - These scopes provide the programming-environment namespace in the
   structure of the site, enabling hierarchical sharing routines and
   state information (like user permissions) through that stucture.

 - Mapping of URLs onto method invocations provides a call structure
   for calling into the document hierarchy namespaces.

 - DTML brings together the textual and procedural roles of documents
   at a Zope site, providing the way to express the active versus
   literal portions as web-site document "templates".

If this view is on-base, i would structure something describing the
"Zen of Zope" around this mapping of programming constructs to web
sites/document hierarchies.

And if this is on base, i can see one way to formulate a marketing message:

  This translation of object-oriented programming onto a web-site
  structure enables geeks (and adventurous others) to bring the power
  of programming more directly to any web-site publishing application.

  What this means for content managers is an already rich environment
  of facilities that does the regular things easily and well, and can
  be made to do anything that can be programmed, if they need
  something extraordinary.  Open source only enhances the evolutionary
  process, enabling sharing and eventual incoporation of new solutions
  for common needs...

Ken
klm@digicool.com