While possibly a highly unpopular opinion, this is where I think solutions like Electron/Node Webkit fit perfectly.I think this is actually kind of already solved (just not with the tools that everyone may want). We shouldn't be even aiming for any particular distribution to begin with, at the expense of a larger executable and less-than-native UI performance, you get write once ship just-about-everywhere when you use tools like electron/node webkit.
Developers often hate web programming, but it's just about the only easy to pick up, and relatively consistent tool for the job of platforms that "just work" (pretty much) everywhere right now. It even seems like the best way to do it going forward, given that:
- Browser companies will work hard towards making browsers faster and efficient, because it's in their best interest (which is the best kind of guarantee).
- Cross-platform minded languages like Go or Rust will become more popular for those who want to get away from using JS at all, and JS could basically become an RPC layer for the "real" application
- Once WASM really takes to the mainstream, languages will just compile it to it. WASM already has LLVM support, so there's a bunch of languages for free already.
So soon, JS won't even be the sticking point in why people dislike distributing cross-platform apps with Electron/NodeJS, then we'll focus on things like executable size and memory usage, and solutions will pop up for those things too.
<tl/dr goes here>