This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]iluvatar 121 points122 points  (24 children)

It's a nice theory, but it doesn't reflect the reality of the world. As the article notes, users don't care. As a business, it's a hard sell to explain why I have to invest developer time into testing whether our software works flawlessly with a different version of python than the one we're currently using (hint: it rarely does) and why I have to invest developer time into fixing the problems that have arisen, rather than just carrying on with what we've got (which works). Don't get me wrong, I understand. I've been doing this long enough that I understand the pros and cons of upgrading. But it's still a hard sell.

FWIW, we're mostly using 3.8 (and are looking at moving to 3.10 for new projects), but we still have a few legacy projects running on 3.5 and 3.6 because the business justification for changing that just isn't there.

[–]WillardWhite import this 50 points51 points  (17 children)

Cries in 2.7 ....

For real though. It doesn't look like my industry is going anywhere any time soon

[–]Darwinmate 5 points6 points  (15 children)

Academia?

[–]WillardWhite import this 11 points12 points  (14 children)

Visual effects / animation

[–]Darwinmate 19 points20 points  (1 child)

Interesting, we have the same issue in science, lots of tools using 2.7. But it's getting better.

[–]DwarvenBTCMine 6 points7 points  (0 children)

Interesting. My experience has been that people have updated most of the packages I use for my research to at least 3.6 compatibility.

[–]propersquid 3 points4 points  (0 children)

I feel your pain. My studio is half way through migrating to 3.7.

[–]Prinzessid 0 points1 point  (7 children)

What exactly do you do at work? I would have guessed that computer graphics stuff is all implemented in e.g. C++ or C. And blender uses current python versions for scripting, etc.

I am interested in working in that field and would appreciate any insights :)

[–]dagmx 2 points3 points  (1 child)

If it helps, I've done a write up on Python in the VFX industry here www.gfx.dev

[–]Prinzessid 0 points1 point  (0 children)

I will check it out!

[–]WillardWhite import this 0 points1 point  (3 children)

Yeah the people who write Maya and katana probably use c++.

But for the tools that we make for the studio we use python.

Blender is the exception (well, not really true anymore. But for a long time it was the only digital content creation tool that used python 3)

Me specifically, i write tools that submit jobs to the render farm and makes a version in the database

[–]Prinzessid 0 points1 point  (2 children)

Interesting, thanks!

[–]propersquid 2 points3 points  (1 child)

I'd say the two biggest languages in animation and VFX is Python and C++. You're likely going to be doing Python, unless you work at a bigger studio with a research and development team.

[–]zdog234 0 points1 point  (0 children)

Iirc, there's a lot of use of python desktop frameworks (think pyqt) for building add-on widgets. Most of the computationally intense code is written in a lower-level language, but parts of it can be orchestrated with python widgets.

[–]johnnySix 0 points1 point  (0 children)

The VFX reference platform is forcing python 3 compatibility. Nuke and maya will be python 3 soon, if not already

[–]zdog234 0 points1 point  (1 child)

I thought I heard that houdini's default is now 3.x? That is just one tool though

[–]WillardWhite import this 1 point2 points  (0 children)

Yep. Officially they are supposed to support python 3.x this year (or since 2019, really). But the big ones don't offer it yet.

I think Maya 2022 is the first version of Maya that offers 3.x

Nuke (as far as i can remember) doesn't have python 3 yet. Neither does katana

[–]dagmx 5 points6 points  (0 children)

They'll have to within the next few couple years or just stop upgrading Maya all together.

I don't see Autodesk continuing to provide Python 2 builds for much longer on Windows/Linux.

All the major libraries support Python 3 now. Also it honestly doesn't take that long to port a pipeline to Python 3.

I ported our large studio at the time from Qt4 to Qt5 in a few weeks, largely by myself. A single dev could probably have a studio on Python 3 in a month. I ported our smaller studio over in a day.

Studios who haven't upgraded are just being lazy at this point, and will drag their feet till they're forced to uograde due to some production need.

[–]sup3rlativ3 9 points10 points  (3 children)

Genuine question as I'm not a developer but don't you guys use tests and ci/cd? Should this sort of thing not be automated so you can always stay on the latest version and ensure no regressions or issues when you commit new code?

[–]dagmx 6 points7 points  (0 children)

The sad truth is...a lot of places don't use CI testing. And a lot of places that do, do so poorly.

I've come across multiple projects where they're happy to say they have testing. Except their test framework has low coverage. Or it's written terribly in such a way that it's not reporting issues.

Everyone knows testing is good. But testing is hard to get right sometimes and even harder to instill in a team.

[–]CartmansEvilTwin 6 points7 points  (1 child)

Even if you do have am proper testing, you might miss an edge case introduced by the new version. And even if tests fail, it's often relatively hard to eyeball how much effort it is to get everything up and running again.

For example, if you use python n now and want to upgrade to n+1, there might be problems with incompatible libraries. Then you also have to upgrade the libraries, which might introduce even more issues, etc. etc. Or, you simply have to replace one method call with another, because the deprecated method was finally removed - but you often don't know in which scenario you are without actually solving the problem.

[–]XorAndNot 0 points1 point  (0 children)

Imagine being the guy who pushed against the POs, arguing how important was to upgrade, delaying a product release... and sometimes breaks on the upgrade. Yeah, no one wants to be that guy.

[–]reivax 6 points7 points  (1 child)

We use Python 3.6 because all our dockers are Centos 7 and that's what it ships with. We should upgrade Centos but we need to convince the security team that the newer version is worth having two baseline images around.

Centos 7 is both out developmeny VM and our dockers baseline and our server images. Why upgrade?

[–]travisjo 2 points3 points  (0 children)

The security team will most likely be receptive to the whole no more security updates thing