Hello devs,
I have read that ROOT is ‘migrating’ its X95 GUI classes to a new web based and modern looking approach, whereas the old ones will be kept more or less in a frozen state. For the moment, I am still using the old GUI classes, but this change raises some questions to me that I thought might be also popping up in others heads (at least of GUI developers using ROOT), thus I ask them here in the forum. Asking them would help me to decide whether or when I would think of migrating to these new more modern classes.
- I have a C++ program using ROOT Gui classes (I create a window via a TApplication, etc.). If I were to migrate to web-based classes, would this mean that my window would now run on a web browser? Or could it still be standalone?
- Does web-based mean that the GUI-part of my program will no longer be written in C++. Something like what QML is to Qt ? Do I need to learn HTML or Javascript to use those?
- My application is very performance-critical, as it is used for data acquisition. Any delay in the responsiveness of the GUI window could affect the data intake, even if they are already in separate threads (they need to communicate between them at least once in a while). Are there any benchmark whether the performance is better in the old or in the new classes? Startup performance is also important, as I believe that starting a browser causes more delays than starting an old window. Memory usage is also of concern, as I am always scared at how much RAM memory just Firefox is consuming by opening four or five tabs.
- Concerning stability, is it expected to be similar, better or worse? What happens if the web browser ‘hangs’, which happens sometimes when you open too many other tabs, etc. What if it crashes?
- Concerning debugging, I use valgrind for memory leaks and helgrind for race conditions, which are prone to happen when you design GUI interfaces. If one uses web based classes, would this mean that the debugging would be more complex, as it is not within the C++ environment, but there is a part running in the web browser, that has probably a separate debugger?
- Is there a timeframe envisioned for when the new classes will be production-ready?
- Will there be a more or less one-to-one equivalence? And guidelines on how to migrate? Or will it require a completely new rewriting?
- Is there a timeframe envisioned for when the Users Guide WritingGUI chater, tests and/or tutorials will be migrated to the new GUI model?
Thanks in advance for your attention and your work!