[Zope3-dev] Re: Selecting a code name

Martijn Faassen 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 
>> about.
> 
> 
> The way it was done was also incredibly unprofessional and created a 
> lot  of confusion:
> 
> Quoting from  
> http://www.zope.org/DevHome/Wikis/DevSite/Projects/ComponentArchitecture/Zope320: 
> 
> 
> """
> 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 
release:

"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.

Regards,

Martijn


More information about the Zope3-dev mailing list