One of the interesting projects that I came across recently was NodeGUI.
Using NodeGUI, you should be able to -
- Create desktop applications that run on Windows, Linux or MacOS
- Styling with CSS
- Support for desktop events that are listenable from Qt
- Lower CPU/memory footprint
Of course, the comparison with Electron is evident.
However, Electron still runs within Chromium. Electron applications provide a good user experience, but they are still constrained to run on a heavier base and (theoritically) be constrained on what they could do on the desktop.
Qt on the other hand can go one level down towards the metal. Qt has been there for ever, is popular on Linux-based systems - and more importantly, it has been known to be fast and having an ‘almost’ native-like experience.
Qt applications can also be compiled, which is a huge thing for IP, so can nw.js but I digress), and they have also been used in devices like TVs and embedded devices, mobile devices, and more.
- There is a commercial company behind Qt (which is excellent, but may not get backing as easily as a completely open source product)
- The open source version of Qt is LGPL licensed - not quite comforting to the average industry guy
My bigger bet will be on Flutter as of today (or a combination of Flutter and Blazor :)).
I am super hopeful about a bright future for “native” applications on desktop using platforms that combine the ease of web development + power of desktop. At the same time I am not too sure about whether anyone other than niche application developers care too much about such innovations. As we see more and more of PWAs and web assembly, I would rather build an application that runs across web and all devices rather than just all desktop platforms.