I (try to) write "fairly" complicated gui's that use Mayavi for the visualization piece, which is a significant portion for my application. Since Mayavi works with traitedVTK (tvtk), traitsui is a convenient medium for producing gui's.
However, most threads (that do not mention Mayavi) I have seen discussing the relative merits of enaml and traits seem to favor enaml. That seems to be the direction of Enthought as well, but obviously I could be wrong.
As I'm working on my project, I'm wondering, am I building something that is already outdated? If I somewhat value building code that uses framesworks that will be relevant in the future, should I be working with enaml instead? Is it trivial to move a mayavigui project from traits to enaml?
I can't speak for its authors, but at present traitsui is baked pretty deeply into mayavi. If you want to use mayavi, use traitsui. For a way to use traitsui but with more flexibility, see https://github.com/enthought/qt_binder