Future of Python 3 in the industry

So I just noticed that https://www.vfxplatform.com/ has plans to include Python 3 in the CY 2019. Would this mean that Maya 2020 will support Python 3?

Seems like at this point the argument that Blender should support Python 2.7 becomes moot.

I don’t personally have pipelines that rely on Python 2.7 so what are your thoughts on how this all will mesh out?

Speaking of pipeline, is more like 2021+ for industry as it’ll take time to adapt to it (see pyside2 across Nuke/Maya).
Last year at siggraph there’s been a discussion on whether the various vendors could start providing early binding for developers to start porting tools over.
Another thing are the third party python modules but by then, they’ll be more or less have been ported over.
Once that happens (PySide2 + Py3k) there’ll be some serious work in the offices to bring all to speed, so expect recruiter to start looking for python developers with experience.
My2c
L.

Maybe you could have make that argument. But it never made sense to me. The only case you could have probably made is a coder would have to learn 3.0 and I don’t see that as a huge issue. I am not aware of comparability issues because from my understanding python scripts are hosted by the application. And they are application specific. Or used to create a module outside and app to do tasks.

So maybe someone could enlighten me as to how using Blender and Maya in the same pipeline with two python languages would create issues directly due to incompatibility. I am not a coder. But my exposure to it in a work environment tells me the two never meet. (one of my clients uses python heavily in their pipeline) Though I could be wrong in that.

But here is a paper written on the subject. And Blender is right in the middle of it which is interesting.

https://www.theseus.fi/bitstream/handle/10024/115922/Kazakov_Vladislav.pdf?sequence=1&isAllowed=y

@Richard: For me the problem has often been that the core libraries are compiled for Python 2.7, but there are no Python 3 binaries. Which makes me unable to use the library that other VFX software uses.

Say you want to integrate some open library to Blender. You wouldn’t have Python support by default or you would have to build it yourself. Lets say for the sake of argument an extremely powerful library like OpenVDB had only Python 2.7 support (untrue). Anyone who integrated that into Blender would have to write the entire API from scratch or try and port the Python API to 3.

At least that’s my understanding of the issue. Please do correct me if I’m wrong.

Writing “from scratch” generally is not necessary. It depends on how the library is attached to Python, if the wrappers are autogenerated or it goes through ctypes/cffi, then the effort could be minimal. If you develop a CPython extension module, even when you update from a minor Python version (e.g. 3.5 to 3.6) there can be incompatibilities. You need to at least recompile.

Supporting several versions of Python is an ongoing maintenance cost and even minor efforts add up across tons of libraries. That seems to be the motivation behind standardizing these versions with “vfxplatform”, though it’s unclear to me which users that project actually represents.

As for Blender supporting 2.7, I don’t think that’s feasible. You can’t just mix-and-match Python versions in one program binary. All the scripts and addons that Blender needs use Python 3. You would need some sort of multi-process architecture, which raises all kinds of other issues.

I’m pretty sure they are forced to move .

Thanks ambi. You illuminated the concept of libraries well. I guess that would have been the main thing. But your original post stands. Looks like that is all about to change. :slight_smile: