Panda and Python 3.0

Hey!

I’m planning a project and I’m just curious as to when you think Panda3D will be ready for Python 3. I will probably start coding some time in the spring 2009, you think it will be ready by then, a few months into 2009? I was looking through the forums but all I could find about the topic of Python 3 was that it would probably take a while.

And if it’s not ready for Python 3 by the time I want to start coding, do you think that if I start out with Panda for Python 2.5 or 2.6, that it will be a smooth transition once it is done, or will lots of things change?

I realize that it might be hard for you to tell and it doesn’t matter to me a whole lot right now, I’m just very curious about it.

First, Python 3 is not backward compatible. This means a lot of code that has been written till today and works fine with Python 2.5 and 2.6, will no longer work for Python 3. It’s massive work to fix it. Secondly, the most active Panda developer - Disney - has to support older computers, while Python 3 doesn’t work on the old hardware and operating systems.
These two factors make me think that porting Panda to Python 3 will not happen in foreseeable future (this is just my private opinion, of course).

Well, I don’t know if I would go that far. The more I hear about it, the more it sounds like Python 3.0 is not quite so backward-incompatible as it has been rumored, so it’s not quite so unlikely that Panda will support it one day.

It’s true that Disney has little motivation to move to Python 3, but the greater Panda community might one day; and that ought to be enough to see that it gets done. Especially if cross-compatibility can be maintained (as I suspect will be possible).

In short, it will happen when a significant fraction of the community feels motivated enough to make it happen. Still probably not going to happen soon, but if the rest of the world fully embraces Python 3, then it will happen sooner rather than later.

David

There’s also this discussion about it:
discourse.panda3d.org/viewtopic.php?t=4994

These are my objections against Python 3000:

  • It would require lots of work. The 2to3 tool doesn’t work afaik with it’s C API so that would still require lots of rewriting.
  • They broke support for older operating systems.
  • It’s proven to be slower than Python 2.
  • It’s not out long enough yet to use it as stable foundation.
  • A lot of people don’t use it yet.

Of course there is the possibility to have a separate branch of Panda3D but this would require extra much maintaining load.

Ok! Thank you guys for your answers!