For me desktop software feels extremely difficult to change and rearchitect to change swiftly.<p>In some ways Mozilla achieved the impossible: a truly cross platform, compatible desktop application infrastructure that is powerful and rich. It can play video, show images and play sound and do 3D graphics. Unfortunately the market doesn't value those things, it thinks of them as dated. Firefox market share where it is.<p>A request/response server side application can be changed by adding endpoints, or redesigning or adding layers or database schemas but GUIs are hard to update easily by comparison because everything is so brittle and linked together so thoroughly.<p>I wrote toy proof of idea that GUIs could be additively defined declaratively. You define the layout by describing things in relationship to eachother rather than collection classes arranged in a tree. Behind the scenes, it IS a React tree underneath but in additive-guis in attempt to create GUIs that were responsive *to change of descriptions rather than declared positions*. you should be capable of describing the GUI with declarative description of how it should look *and* its behaviour. Think of it as CSS for observed behaviour.<p><a href="https://github.com/samsquire/additive-guis">https://github.com/samsquire/additive-guis</a><p>Writing code to manually maintain widgets in a hierarchy is error prone and slow to develop and adapt and change.<p>I worked on an Android mobile banking application and I wouldn't want to rearchitect the application.<p>I would love to understand Qt better but I find it very hard to understand to architect good software as a GUI.<p>I have looked into immediate mode GUIs.<p>I started writing a layout engine based on ORC Solver paper but it's very early days<p><a href="https://github.com/samsquire/browser">https://github.com/samsquire/browser</a> for a simple screenshot. It can arrange things without overlapping them, similar to a flow layout. But I need to handle text properly.<p>Everyone said they wanted independent implementations of standards but when Google Chrome came out, everyone including web developers and engineers were happy to move to it.<p>There's just too much technical complexity and knowledge required to know how to do things on each platform. Writing a cross platform desktop application is LOTS of fiddly effort.<p>I've wanted to create a GUI similar to IntelliJ Community Edition but I worry that the code shall be outside my reach in understandability.