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 firstname.lastname@example.org.