The original article appeared at:
SD Times
WebWatch
You might have to search the archives, as this isn't a
"dated" article...
WEB WATCH: And Then Came Zope
By Larry
O'Brien
February 1,
2001 Until
the very last decade of the last millennium, self-respecting
programmers used several different programming languages in
the normal course of their work. Beyond the common languages
like FORTRAN or COBOL, every programmer had an idiosyncratic
quiver of proprietary and less-known languages to tackle
unusual problemsa database-centric language like PAL,
Prolog for natural language processing, and Jorf for no
better reason than it was the only pure object-oriented
language named after a goat.
And then
came the ascendancy of C and C++, whose programming models
emphasized modular function libraries, and Visual Basic, a
simple-to-use language with unparalleled third-party
component support. As programmers became software developers
and even software engineers, the needs of the team were
elevated above the desires of the individual, and that meant
abandoning anything as frivolous as mastering computer
languages for their own sake.
In the history of the World Wide Web, the importance of
Larry Walls Perl cannot be overstated. The primary
reason the Web exploded in popularity was the ease with
which new sites could be developedneither HTML nor CGI
programs written in Perl required formal training or
expensive tools. A profession that had accepted that
meaningful software required mastery of not just a
multithousand-function API, but a multihundred-class
object-oriented framework, was suddenly given the freedom to
choose a text-stream-oriented, interpreted language that was
ideally suited for the text-stream-oriented, not-so-fast
tasks of the World Wide Web. That made it cool to be a
language junkie again.
A few years ago, author Bruce Eckel, whose predictions
of language trends are pretty impeccable (you might know him
from his Thinking in C++ and Thinking in
Java books), started raving about Python. Python
is my language of choice for virtually all my own
programming projects, he declared. Naturally, I
checked into it. I admired the brilliant innovation of
scoping by indentation, but at first Python seemed to me not
very superior to Perl for Web development.
The first thing that made me re-examine Python was
VPython (née Visual Python, see http://cil.andrew.cmu.edu/projects/visual),
an incredible scratch pad for three-dimensional
programming. If youve been looking for a foundation
for exploring quaternion-based rotations, your quest is
ended. I became more comfortable with Python as I worked on
a too-cute presentation that showed risk-spiral,
phase-effort and temporal views of software project
management along orthogonal axes (the resulting shape, which
looked like an incense coil spun by a drunk in the act of
falling down, was so incredibly distracting when rotated on
screen that I gave up on the theme). In order to create this
monstrosity, I surfed about, picking up more and more Python
techniques and libraries.
And then came Zope
SD Times is written for software development managers,
not for hackers, and we columnists try to maintain a
professional tone about technologies and products, but
theres no accurate way to talk about Zope without
liberal use of exclamation marks and hyperbole. Zope is sick
insane!!!!! Its the greatest thing since Bind!!!!!
Its the finest language innovation since Guido van
Rossum decided to use indenting for scoping!!! And so
forth.
The unofficial (but very good) Zope FAQ at http://weblogs.userland.com/zopeNewbies/ZopeFAQ/
describes Zope as a Web publishing system, although
acknowledging that it is also widely called an application
server. I think Zope is a language for programmatic Web
sites. Not a language that can be called by Web sites and
not a server-side scripting language, its the Visual
Basic of Web programming (or, if you prefer a more correct
but less accessible metaphor, the SQLWindows of Web
programming). Like those seminal Windows programming tools,
Zope immerses you in the environment for which youre
programming, in Zopes case, the Web. To work in Zope,
you work from a browser displaying HTML 3.0 codenot
exactly Visual Studio, but at least its operating
system-and location-independent.
At the heart of
Zope, and what makes it more than just another server-side
scripting language, is an object-oriented database (which
you can back with a relational database such as MySQL, SQL
Server or Oracle). This OODB contains Z Objects
(+ Publishing Environment = ZOPE),
the most important of which are page templates (written in a
server-side scripting language called Document Template
Markup Language) and extension objects
(Products) that are generally written in a
combination of DTML and Python. The most impressive Zope
Product is surely Squishdot (www.squishdot.org),
which allows one to create a Slashdot-style Web site in an
afternoon.
The open-source Zope compares favorably, very
favorably, with the most expensive application servers in
the marketplace. Do yourself a favor and check out Zope and
Python. And if you find yourself playing with them just for
the sheer fun of it, dont tell anyone you read about
them in SD Times. Were far too serious a newspaper to
encourage such things.
Larry OBrien, the founding editor of Software
Development Magazine, is a software engineering consultant
based in San Francisco. He can be reached at lobrien@email.com.