After a very very slow start in VFX and Animation the move to Python 3 is finally here.
Or at least it is promised to be here soon.
Most DCCs are still operating under the old Python 2 version even though all support was stopped on it in January 2020. One year later we're still just in the beginning of the move where especially Autodesk lags behind while Maxon with Cinema 4d is already there.
Here is a quick DCC overview:
Maya 2020: Python 2.7 (Breaking News: Maya 2022 just released with Python 3)
3ds Max 2020: Python 2.7 with promise of 3.7
Houdini 18: Python 2.7 with possibility to use Python 3.7
Cinema 4d R23: Python 3.7
Nuke 13: Python 3.7
Just finding, replacing and republishing ten to hundred thousand lines of code sounds like a nightmare.
Why is this switch important to us?
Some of us still remember the millennium bug in which millions of systems were in danger of crashing because of the date 2000 not being anticipated. It costed the world close to 100$ billion dollars to prepare and fix it.
We are not on that scale but at least in our industry something similar could happen with the Python 3 switch where an unclear amount of tools and scripts suddenly stop working which will lead to slowdowns, broken data and rescheduling. If you're an artist it could mean that tools that you have used before suddenly don't work anymore and you need to spend more time doing your daily routines manually. For the technical artists, director and developer it means to invest extra time to prepare or fix breaking tools during production.
A typical issue for the port from Python 2 to Python 3 are missing brackets in print:
print "This only works in Python 2" print("This works in Python 2 and 3")
Sounds simple enough but imagine that print is one of the most used functions in all of Python. Just finding, replacing and republishing all of the ten to hundred of thousands lines of code in each company sounds like a nightmare. And this is just the simplest example.
Quick tip: Use a Pylinter like Pylint (source-code, bug and quality checker for Python) which will help you to spot the most noticeable issues while you're coding.
When we finally arrive in Python 3 there will be a lot of benefits in the future:
optimized and faster
default Unicode (all languages included: äüö)
logical (sorted dict)
There are a lot of good reasons to slowly prepare your tools and yourself to the coming changes to not get blindsided by the sudden releases. Be aware of this issue, prepare your department for it and just move slowly in the new direction through the coming months especially when you plan to upgrade to a new version.
PS. For more content subscribe to my Newsletter.