Glad to see discussion about future upgrades and in particular going to hopefully, one UI. I agree that much work is wasted maintaining all the UI front ends. Wish I had more time to spend working with you guys, every now and then I poke in to see what's going on, but I couldn't resist putting in my thoughts on this.
I've been researching this same type topic for a 6-dof space flight simulator and I can discuss some of the architecture.
One architecture that should be considered is using wxPython as a front end to the Celestia C++ core. This design pattern has been used many times and is mature enough to be used. I've already prototyped this and it literally took hours to bind wxPython to Celestia.
Here's a pic of wxPython rendering Celestia on a AUI (Advanced User Interface) canvas with the Eclipse IDE in the background:
More info on this screenshot:
http://www.celestiaproject.net/forum/viewtopic ... t=wxpython
One feature I would really like is to have multiple 3D views available via a tabbed menu like that shown in the pic.
The advantage here is using the cross platform wxWidgets and wxPython GUI frameworks. Python is a simple, full featured language to use and GUI building is made very easy using wxPython.
There are several mature tools to create python bindings to C++, most notably SWIG and Boost.python.
Thus far I've chosen Boost.python with Py++ to generate the bindings. Once you get through the learning curve, the process of creating bindings is pretty much automated. Look at Python-Ogre, which is an OpenGL 3D rendering program--there are even two competing versions--one bound with SWIG, the other Boost.python. SWIG is easier to get started but does not seem to have fully capability like Boost and requires more manual intervention for generating bindings.
WxPython will really make building and developing the UI much easier, and this could lead to more developer participation. I would agree that wxPython would be a little slower than a full C++ UI, but let's keep the number crunching in the C++ (where it should be) and very little difference will be noticed by users.
There is a wxLua package but in the end, I believe python would offer more capability and a wider variety of useful utility packages.
FWIW, we at NASA are staying away from Qt because some part of the library is not to be used for commercial purposes--so there may be some licensing issues if used in a commercal/government environment. I wish I knew more about the specifics of this, if needed I can find out.
In the end, the wxPython/C++ application would be fully capable on Windows, Linux and Macs--all using the same UI source code--that's pretty much what we're going for
Scott