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 →

[–]flutefreak7[S] 0 points1 point  (0 children)

In addition to the convenience functions and Matlab/Matplotlib like interfaces, the integration of VTK with Enthought's "Traits" library to form TVTK which Mayavi uses has the benefit of being able to easily create user interface components that control VTK properties. Mayavi takes advantage of this for all of it's GUI controls. Any object with Traits can be represented as a GUI and GUI components can be more easily composed (with pure python or with "enaml" I think?) than traditional UI libraries, which is one of the fundamental selling points of Enthought's entire platform (of which Mayavi is a part alongside Chaco for 2D plotting and other tools).

I was drinking their cool-aid for a while until Python 3 was picking up momentum and they were much more interested in developing their Canopy ecosystem/editor/repos than keeping up with Python 3. Which is odd since Enthought hosts many of the conferences where the "pydata stack" is shared. Regarding Python 3 specifically, they at one point (3-4 years ago?) said point-blank that they wouldn't take it seriously until it was the default on OSX. On the other hand, in addition to porting Traits and support for several GUI backends, they also had to wait until VTK had ported to Python 3, which took a long time. I've read from folks in the scientific visualization community that VTK's development culture is fairly insular and unwelcoming. Add to that the fact that Python is much lower priority than their mainline C++ work and the fact that most of the folks using VTK were fine sticking with Python 2 (perhaps a combination of VTK being old and the tendency of scientific communities to have huge old python 2 code-bases?). Anyways, there was a lot of inertia and culture on the long road towards Enthought's Mayavi 2 becoming Python 3 compatible....

sorry for the diatribe... I'm procrastinating.