[Zope3-dev] Re: Selecting a code name
faassen at infrae.com
Wed Feb 8 06:16:22 EST 2006
Alexander Limi wrote:
> On Tue, 07 Feb 2006 00:32:52 -0800, Martin Aspeli <optilude at gmx.net> wrote:
>> Like it or not, Zope (2) seems to have a lot of stigma out there; Zope
>> 3 has been around a while. In actual fact, for a while I thought Zope
>> 3.x was still just unfinished vapourware, waiting for the fabled
>> Zope2 integration (the dropping of the X) that people were talking
> The way it was done was also incredibly unprofessional and created a
> lot of confusion:
> Quoting from
> It is our opinion that Zope 3 is more than ready for production use,
> which is why we decided to drop the X for experimental from the name.
> Problem is, the X was never about whether Zope was "ready for
> production use" - it had been *explicitly assigned* as a marker that
> meant Zope 2 migration/support was not there yet. A lot of people
> actually believed this would happen (as the Zope roadmap and PR spiel
> told them so), even though all of us knew it wouldn't happen.
> (I know the reasons, I know the plans for convergence, I know how Five
> works - I'm just pointing out that this part made a lot of people lose
> faith in Zope)
I'll defend myself, as I was the one who argued for dropping that X.
Let me first give the full context of that quote; perhaps it wasn't in
the Zope 3.2 release notes, but it was there in Zope 3.1:
It is in our opinion that Zope 3.1 is more than ready for production
use, which is why we decided to drop the X for experimental from the
name. We will also continue to work on making the transition between
Zope 2 and Zope 3 as smooth as possible. As a first step, Zope 2.8
includes Zope 3 features in the form of Five.
I think that the full context rather weakens your suggestion that this
done in an "incredibly unprofessional" way.
Now as to history of that X.
From an old document about security when it was still X3, not 3X:
1b. "Zope 3X" is the preliminary version of Zope 3. It is built from the
ground up, paying attention to the lessons learned from Zope 2 and CMF.
It is not a product but intended to let developers get familiar with the
new architecture early.
1c. "Zope 3" is the mainline release intended for production use and
including backwards compatibility to Zope 2.
I hope that this makes clear that you are wrong about the X never having
anything to do with production use; it was connected.
This is what was said back in 2003 in the release note for a milestone
"What is Zope X3? It's Zope 3 "experimental". This is the release that
will provide the new features of Zope 3 without any Zope 2 support. Zope
3.0 will provide support for Zope 2 content and products, probably using
conversion utilities of some sort."
For the X3 beta, the message was presented as such:
"Zope X3 is the next major Zope release and has been written from
scratch based on the latest software design patterns and the experiences
of Zope 2. The "X" in the name stands for "experimental", since this
release does not try to provide any backward-compatibility to Zope 2."
with the subtle difference that we couldn't ever say Zope 3 was non
experimental *unless* it has Zope 2 compatibility features.
The main problem with the X was that everybody has their own
interpretation for what it means. None of the interpretations was
entirely wrong, or right:
* 'X' stands for 'eXperimental'.
* The 'X' will be dropped when Zope 3 is ready for production use.
* We drop the X when we have backwards compatibility with Zope 2 in Zope 3.
* We drop the X when there's migration support for Zope 2 content to Zope 3.
* We drop the X when there's a migration path to Zope 3 from Zope 2.
Zope 3.2 today is not experimental. It is ready for production use. Full
backwards compatibility with Zope 2 isn't going to appear; *full*
compatibility was never exactly promised, but people got that impression
from the vague message, but we knew damn well by Zope 3.1 that it wasn't
going to happen that way. It's hard to predict the future anyway.
A migration path for generic Zope 2 content also isn't likely to appear,
as that means you have to port your applications forward first if your
application has its own content types, which most significant Zope 2
applications do. It will presumably happen for particular Zope 2
applications who are prepared (Silva for instance has had full XML
export abilities for years), but not for arbitrary Zope 2 content.
Additionally, the version numbering scheme with an X in it (it even
moved; Zope X3, Zope 3X) is non-standard and thus *invites*
misinterpretation in all kinds of ways. And then after you drop the X
from Zope X3.4, you're going to go back and call it Zope 3.0?
I therefore argued for dropping the X. The X was broken and was doing
damage. I'm not going to be able to sell experimental software not ready
for production use to my customers. Better correct the message now than
delay correcting the message indefinitely. And there is a software
migration path after all.
In retrospect, we shouldn't have used the X in the first place and made
these inconsistent promises about Zope 2 support. Then again, it
would've been hard to avoid saying *something* about Zope 2 support
anyway, so hindsight is easy.
So, as to your suggestion that the dropping of the X causing confusion,
I disagree as well. The confusion was being caused by that naming
convention, and the confusion has decreased by the dropping of it. You
may have recognized the problem when it was fixed, but dropping the X
was the correct fix.
So in conclusion, I still believe dropping the X was the right thing to
do, that you're wrong about this being done in an incredibly
unprofessional manner (not claiming perfection here in any away,
though), and that you're another innocent victim of the vague,
confusing, damaging message surrounding the X.
Now let's forget about that damn X. It's history.
More information about the Zope3-dev