[Zope3-dev] Re: What does python 3000 mean for zope?

Martijn Faassen faassen at startifact.com
Sat Sep 1 17:10:24 EDT 2007


Stephan Richter wrote:
> On Saturday 01 September 2007 15:33, Martijn Faassen wrote:
>> I think Zope will be on Python 2.x for many years to come.
> 
> I really hope not. A friend of mine and I want to get a bit involved in Python 
> 3000 once it is stable enough that the standard libs can get some attention. 
> At this point I really want to have an initial look at porting Zope 3 
> packages to Python 3. I really hope we can move to Python 3 in a reasonable 
> amount of time.

Zope 2 is using Zope 3. This means we have some choices:

* upgrade Zope 3 to Python 3 and upgrade Zope 2 to Python 3 too. I 
suspect especially the latter will be very difficult. Let's go port Plone!

* upgrade Zope 3 to Python 3 and leave Zope 2 behind on an older version 
of Zope 3. We better come up with a damn good explanation to the 
community on this one.

* upgrade Zope 3 to Python 3, maintain a Python 2 version too in 
parallel for Zope 2 to use. A maintenance nightmare in my opinion.

* fork Zope 3. You'll have one version which runs on Python 3, and 
another version which runs on Python 2. People pick their sides and Zope 
starts diverging. A terrible mess we should avoid at all costs in my 
opinion.

Note that without Zope 2, you'll still have to worry about other things 
that depend on Zope 3, and things that Zope 3 depends on. A lot of 
people will need to coordinate quite intensively.

Anyway, ignoring Zope 2 and any dependencies, I suspect the porting of 
Zope 3 to Python 3 will be hard enough by itself to take a long time. 
Here is where I hope to be pleasantly surprised by better than expected 
tools.

You mention moving to Python 3 in a "reasonable amount of time". You 
don't mention what you consider reasonable. I consider it unreasonable 
to expect a transition within the next 2 years. I also consider 2 years 
a very optimistic timeframe by the way, as that will be only 1 year 
after the release of Python 3 and there will be a lot of dust to settle 
first.

At the very least, we should all agree we will port to Python 2.6 
*first*. This is the version of Python that is supposed to work with the 
2to3 conversion script. This is the version of Python that will, 
hopefully, already introduce the bytes type (the using of which should 
help the conversion script tremendously) and other bits of Python 3.

I'm afraid you and your friend are either asking for a lot of work and 
trouble, or will have to wait for a long time until Zope will start 
making use of any changes you make to the Python standard library. I 
consider other concerns to be far more important to the Zope project 
than you and your friend wanting to work on the Python standard library 
before Python 3 is released...

Regards,

Martijn

P.S. It's ironic that now that we finally have some measure of clarity 
and unity in the Zope world concerning evolution of Zope 2 and Zope 3, 
Python comes along and starts tearing it apart.



More information about the Zope3-dev mailing list