[Zope] REDUX: Perl For Zope

Paul Everitt Paul@digicool.com
Sat, 27 May 2000 15:34:43 -0400


Howdy folks.  Below I'd like to respond to some of the points brought up
in this thread, provide more information about our motivation, and even
offer something!

First, this debate, though passions are running high, is a Very Good
Thing.  I'm stunned and honored that the passions are high.  People
don't get emotional over things about which they are ambivalent.  Also,
Zope is going through another inflection point (part of my thesis
below), so it's a good time for self-examination by all of us in the
Zope community.

I'd like to start off with some quick background about my philosophy.  I
don't hate Perl.  I don't hate Microsoft.  I love Python and Linux.  I
love Open Source.  I'll paraphrase Tim O'Reilly: don't define yourself
based on what you're against, define yourself based on what you're
_for_.  I am _for_ a radical new vision of web applications, and Python
is the right language for constructing that vision.

Why did we do this?  Eric Sink's email comes closest to the original
motivation:

"""
Maybe it's about "scripting languages vs. Java"...I don't see this
announcement as a major shift toward Perl on the part of the Zope
developers....

Let's suppose for a moment that Zope's ambitions are much bigger than
we think, and that its commitment to purity is slightly lower than we
think.  In other words, let's just suppose that Zope really wants to
be 'The Scripting-Language Application Server'.

If so, then why should it not invite the [enormous] Perl crowd into
its community?
"""

Yes, Zope is now and will always be (barring some wild cosmic event) an
application written in Python (with C extensions).  But should it only
appeal to Python folks?  At the Zope Track I asked for a show of hands
of people that had first seen Zope within the last three months.  About
half the hands went up.  I then asked how many people had never seen
Python before Zope.  Same response.

This brings up my next point, again from the Python conference.  Randy
Pausch, the Alice guy and motivational keynote speaker, made a poignant
point: programmers always think in terms of the people they hang out
with.  Guess what: the other 99% of the population doesn't act like us.
The same rule applies in this case.  Perl is clearly popular.  What is
Zope's response -- go away, or welcome in?  The first response has
creates a huge barrier to entry for Zope's popularity.

Concerning the effect that the introduction of Perl could bring.  People
have brought up two angles: the code perspective and the community.
These are good, important points, and I'll confess that we didn't attach
enough importance to this during our decisionmaking.

But ultimately I disagree.  Let's face it, the kind of bad coders and
bad community members that are the topic of debate will absolutely,
absolutely *hate* Zope.  I remember an interview with a couple of PHP
folks that said, "The trouble with Zope is that it is object oriented."
This crowd will whine, "Why do I have to plan ahead?" and muddle off to
some other initiative.

I expect the discipline that Zope has (objects and a framework) could be
a boon for a certain crop of Perl people and projects.  I hope that Zope
can bring good (our current docs notwithstanding!) object practices and
a framework to Perl projects.

Zope appeals to people that have a design brain, and turns off people
that just want to be given a printf, thank you very much.  People with
bad practices and dirty code will self-select out.  Thus, I don't worry
about being overrun by dirty code and bad manners.

On the whole, we in the Zope community are on the edge of an inflection
point.  Zope is about to cross another chasm, as barriers to entry (high
profile sites, XML, XSL, Perl, RDBMS storage, mountable databases, etc.)
are being removed and far more people feel "safe" deploying Zope.
Whenever you have these inflection points, it is disruptive on a
community.

Linux went through, and is probably going through, the same thing.  Many
hard-core Linux regulars actively didn't want Linux to become easier to
use, didn't want to attract a "lower class" by coming up with an
attractive GUI.  Same with the Internet -- "if it gets easy to use, the
AOL horde will show up".  Unfortunately for their points of view, Linux
and the Internet outgrew their opposition, but I think we would all
agree that it was for the greater good.  But every inflection point is
rocky in some way.

A comment on mechanics: we aren't actually doing the work, ActiveState
is doing the integration to our specs.  (Some posted a worry that we
should be spending our time on more important things, like docs.)
ActiveState has world-class people that have been a joy to work with,
and the company as a whole really "gets it".  Some on this list have
proclaimed devious ActiveState motives from tortured misinterpretation
of press releases.  I wonder if these people have ever actually spoken
with someone from ActiveState.

In fact, I feel obliged to go farther on this.  I've known David Ascher
and Mark Hammond for five or six years now, back from the beginnings of
the Python community.  I remember David Ascher's initial NumPy
presentation at SPAM 3 at USGS Reston.  And I remember Mark at the CGI
tutorial I gave at the same conference.  These two guys have contributed
acres and acres of immeasurably valuable code to Python.  I'm
completely, 100% offended that their motives, now that they are leading
ActiveState's Python efforts, are being impugned.  Give them the benefit
of the doubt -- for piss sakes, they more than anyone have earned it.

One key point that I wanted to bring up concerns complexity.
Specifically, a couple of people (Patrick Phalen particularly) mentioned
the cricitism that I was most worried about: stop releasing more code
and start documenting the old code.  Others brought up the point that
Zope is already complex enough.  Very good points, folks.  That's a
browbeating we richly deserve.

Brian Lloyd and I are on a jihad to reduce the coefficient of complexity
with Zope.  Help us in this cause, please.

I'd like to close on discussing the difference between critiquing the
decision vs. critiquing our motivations.  The first is very
constructive, and has been greatly beneficial in focusing what the
community wants and thinks.

Regarding the second, even this is helpful.  Digital Creations may be
the primary force in Zope, but ultimately, the community is the great
value.  Believe me, we know this, and everybody we interact with tells
us this.

We have to continually earn our position, and it's obvious that we've
gotten some bumps and bruises over this announcement.  This is good, as
it reminds us that we must maintain the balance between leading the
community and following the community, a balance that is the hallmark in
the Python community.

In the end, only our actions will validate our motivations.  Though I'm
confident we'll get high marks, I understand those marks must be earned.

With that in mind, my next post will offer something specific.

--Paul

Paul Everitt       Digital Creations
paul@digicool.com  540.371.6909
-----------------------------------------
The Open Source Zope application server
http://www.zope.org/
-----------------------------------------