You can kind of see the desktop UI train wreck in real time here.<p>We started with simple stable APIs for a common look and feel. For a while these were evolved and made available in other languages. This was back when native apps were consistent and intuitive and you could… uhh… actually write and ship them without bundling giant runtimes or checking a huge compatibility matrix.<p>Then around 2012 the train rounds the bend and screeeeech it hits some bad track and starts to derail. UI starts trying to emulate the web, a terrible UI platform, and sane compositional UI libraries and APIs are abandoned in favor of XML soup.<p>Since this stuff is a trash fire, this is followed by multiple incompatible attempts to replace or fix this. Most of these are abandoned dead ends. Meanwhile we also abandon the incredibly productive point and click WYSIWYG UI builders because apparently people want to write XML puke instead.<p>Meanwhile the dev community just said fuck it and went to Electron, creating today’s world where a “hello world” app with an OK button is hundreds of megabytes and has to load an entire private copy of a language runtime and rendering engine.<p>Versions of this comedy of errors have occurred on every other platform, and of course there has been little effort to create a cross platform UI API that’s sane beyond Qt (with its own problems) and dozens of half completed OSS projects.<p>So enjoy Electron I guess.<p>There was one sane human being who tried to do this a while ago:<p><a href="https://github.com/andlabs/libui">https://github.com/andlabs/libui</a><p>It’s the only sane desktop UI project I’ve seen in almost 20 years, an attempt to create an actual cross platform common API wrapping well behaved mature native APIs. Like a modern reboot of wxWidgets, an also sane but old and dusty project.<p>But it’s abandoned of course, likely too difficult for one dev and nobody is going to provide financial support for anything that sane. It’s neither trendy nor profitable nor a wedge to try to ram a new language down our throats (e.g. Flutter and Dart).<p>Maybe AI will get good enough some day that we can use it to do a thing like that. I do have this weird idea that we might be able to use really good code generating AI some day to do a lot of very sane but boring and unprofitable things that would make computing a lot better.