Is 3DS Max finally catching up?

http://area.autodesk.com/blogs/the-3ds-max-blog/python-in-3ds-max-2017

It seems like autodesk may have been listening…
"
Some of the more notable new features of 3ds Max Python are:

Python 2.7.6
Python mode in the listener
Python support in the MAXScript editor
Importing Python modules directly into MAXScript
Full exposure of MAXScript to Python
Dockable PySide windows
We were inspired by the Python plug-in for 3ds Max by Blur studios and attempted to make it as easy as we could for studios and tool developers to port their scripts from a Blur Python pipeline to a pure 3ds Max one. We also wanted to make it as easy for people to 3ds Max and Maya together in a hybrid pipeline"

It’s definitely getting there. I think 2017 is the first version of Max where I would consider using Python to build a production tool. But there is still, at least, one big issue with it. the Python implementation is not thread-safe. You can’t do something like set up a listen server on a particular socket, run that via the Multiprocessing module, and then, when that server receives input from an external source, do something on the main thread. Without that you can’t reasonably use an external Python IDE. Trying to manage a medium to large Python toolchain using only the built in Max script editor, or not having the ability to easily launch, pause, and step through Python scripts, is going to be problematic.

Yeah, an option to launch test cases from inside IDE and get them evaluated in Maya is definitely convenient. However, for very long time I relied on “edit code in IDE, alt-tab to Maya, launch code via shelf button” workflow, so might be a start for Max as well. Been ages I wrote anything in Maxscript, maybe situation got better, but the alt-tab option with Python still sounds a lot more attractive.

I think this is a very good step overall for Max. That being said, I think it has real problems with the base program architecture that doesn’t lends itself to utilizing the OOP aspect of Python very well. In my experience, the way functions are defined in max is so specific that there isn’t as often a super consistent use for them outside of there original purpose. I think this is most evident in the large portions of Max relying on modifers and modifer specific functions. I tend to think this makes it rather procedural by nature. Max, in my opinion, really requires a very ordered set of instructions for many aspects. Of course, this is true for Maya (as an example) to some degree as well, I just find that in Max this often the majority approach. For me, its a lot more challenging to make broad reusable code in Max. Much like modifiers in Max inhibit this, I think more node based system architecture really takes advantage of this.
That being said, I do think python, from a more procedural programming standpoint, will be pretty useful in unifying a common language for tech artist. Python will also unlock lots of external functionality, especially external file access. It will definitely be a good thing overall. I guess, I’m just not sure if Max can truly ever catch up without very very significant changes to its core design.
All this being said, I really enjoy writing scripts in Max. Often times there is a more obvious (although sometimes limiting) approach which can certainly be a good thing.

edit:
I also agree that the lack of a usable IDE also makes it pretty rough.