The impact of python 3.0?

Does anyone know if/how our existing scripts and API will need to change for python 3.0? I understand python 3.0 is not backward compatible and python 2.6 (out now) is sort of a half way measure to allow a smooth transition. Are there significant things we should be working toward? thanks BF

this is not good news. How could they even think of releasing a new version of a language that is not backward compatible? I’m going to go to bed now, because I dont even want to think about how huge an effort it and issue it will be.

Well that may be something for the devs to think about.
The 2.50 build may be better to upgrade.
Don’t forget ILM uses multiple versions of Python in it’s work flow,
so backwards compatibility is always possible if you are prepared to code it.
Anyway, the docs (wip I presume) are here:
http://docs.python.org/dev/3.0/whatsnew/3.0.html

There’s an automatic progression tool, 2to3 (look through some of 3.0 docs). No telling how well its going to work (or currently works).

My guess would be there’s either going to have be a compatibility break (meaning some cauterizing and updating for script writers/maintainers), or some way to do true, efficient, and accurate regression/progression or conversion, like a lot of companies (ILM, NASA, Google, etc.) will have to do in the meantime. From what I’ve read there aren’t that many changes, but enough that it may be a pain to hunt down some bugs and fix them if 2to3 can’t do it.

There will likely be some changes to the API with Blender 2.50 anyways (no telling if they’ll break operation), so there will probably still be some need for people to go through old scripts and fix them up.

In all, it may be too early to really tell what’s going to happen. I think as a policy, though its best to plan for the worst and hope for the best…

Agreed. :no:
Don’t know why should they do it. It’s pointless.

forTe,
you do make some good points.
personally I am working on updating/fixing scripts to 2.48.
from there, who knows what’s installed.

They are making changes they feel need to be made, which can’t be made to be backwards compatible. People can use 2.6 to ready and test their code, (from future import …) providing a small jump from 2.6 to 3.0. Users can, of course, have multiple versions of python installed at the same time.

Don’t know why should they do it. It’s pointless.

I would suggest you take that up with the devs who work on python. I would hazard a guess that they aren’t doing this for a laugh.

As a side note, I’m amazed with google, this topic is already there as the 6th result when searching for “python 3.0 not backwards compatible”.

That’s true, but Blender is using whatever interpreter is compiled in (IIRC), not the user installed one. I think the original question, though, was what impact it would have on embedded scripting. Systems/Companies who use embedded interpreters will have to make a break if they want the modern one. I think for organizations just using Python as batch processors for file management or text processing, etc. it won’t be too large a transition. Google has the advantage that Guido works there, too ;).

As Meta-Androcto said earlier, 2.50 will probably be the time to make the break, especially if more than minor changes come to the API.

Yeah, but my point was that you can have 2.X for app A and 3.X for app B. This is just like I can have 2.3 installed for an old app, but 2.5 for python.

I think the original question, though, was what impact it would have on embedded scripting. Systems/Companies who use embedded interpreters will have to make a break if they want the modern one.

True. The release of 2.6 will be very useful for transitioning though, as you can start changing things around to work with the new version (importing future modules). The jump will be bigger than the usual updates between versions though :slight_smile:

As Meta-Androcto said earlier, 2.50 will probably be the time to make the break, especially if more than minor changes come to the API.

I fully agree. If things are changing, it’s going to be easier/better/both to do it all at once.

I have to say, I’m really looking forward to the new python stuff.