Skip Navigation

Opinions: Do you feel Python is a more object-oriented or procedural language?

This is a question for people more experienced with Python, but everybody feel free to answer if you feel like you can provide something decent to the discussion.

Also feel free to explain why you feel that way and your experiences with Python and the paradigms.

35 comments
  • It supports both and depending on the situation its more procedural or more object oriented. Do you consider the standard library as part of the language and are you forced to use it? Then certainly the object oriented parts of the language would be forced to use and therefore it is object oriented. Or do you only evaluate the language and its features itself? In that case, Python supports object oriented programming with classes and objects, but you are not forced to use it.

    Are we talking about the language features itself or the produced programs with it in the real world?

    So regardless if you look at the language itself or the common standard library that most Python programs use, objects and classes are an part of the language. Even if you write simple procedural scripts, does not take away that Python itself is a more object oriented programming language.

  • Used it a ton in the art departments of vfx and game dev. Im talking about the tools that make assets, not the game engine or a runtime scripting language. More like the stuff launching and running in Maya, or Houdini, or Substance, etc.

    Most of this is already highly OO, and there's a lot of interaction with C++. Python is the perfect language for this. There's a lot of rapid interation and gluing many different services and data together. Also you're waiting on file IO or some massive scene graph update all the time so having the tools be slightly slower doesn't matter. Also, at least in vfx, there's mixed Linux/Windows/Mac and it's great for that. ALSO art teams (unlike the programming team) have people who may not be super technical, and Python let's them write tools and scripts more easily. They don't even have to understand OO but you can say "copy this class template and implement these two methods" and they can write tools that "work" in the pipeline.

    It's honestly a godsend. Before the industry settled on Python, every program had its own proprietary scripting language and some were quite limited. Their C++ APIs are all different, of course. So now everyone just ships with a Python interpreter, you manage launching each app so you can control PYTHONPATH and you're golden.

35 comments