Lately I've been convinced that as far as cross-platform desktop apps are concerned, they basically have to be developed awfully similarly to games - take SDL, glfw, create openGL rendering context, vsync on and off you go.
If rendering at 60fps is too much, just redraw on draw events and input events.
Case in point: Spine
Written in Java, uses TableLayout (
https://github.com/EsotericSoftware/tablelayout) with retained mode widgets (I believe) and libGdx (OpenGL wrapper). Fantastic piece of software.
It takes tones of effort to write cross-platform software like this as you basically have to write your own UI toolkit, but it does appear to be the way to go for high quality cross platform desktop apps. As you are more-or-less self contained and in complete control with minimal external dependencies.
Omar Cornut imgui is perfectly fine for internal/gamedev tools.
Or you can just use Qt I suppose, but I feel it is more of trade-off.
mmozeiko
They will never replace desktop apps, because of non-native look and feel.
But hasn't that already happened though?
By far, most "serious" cross-platform desktop apps do not have native look and feel.
Almost all content creation tools certainly don't.
Unity, Blender, IntelliJ IDEs, Kontakt5, flstudio, 3dsmax, maya, etc, etc