Comment by r_lee
3 hours ago
> C++ with Dear ImGui
it would be absolutely awful
compared to chromium, it's really limited, like it's just always a compromise with these
we should instead figure out a way to do electron but better and make it easier to do the things you can do with e.g. React with native languages and frameworks
The limitations are a large reason for why they're so resource efficient in the first place.
If you just reimplement Electron in a native language then you get... Chrome, which is already written in C++. The majority of RAM usage in Electron applications is from the native parts of Chrome itself and a decent ~40 MiB chunk for the Node.js runtime.
That’s what we’re trying to do with Slint (I work on it): a declarative, reactive UI like React, with the logic in Rust, C++, JS or Python. It needs no browser engine, so it uses a fraction of Electron’s memory.
QtQuick is quite good.
I have had excellent results running a back-end Rust process that communicates with a C# Avalonia front-end via protobufs over named pipes on Windows and Domain Sockets on Linux and MacOS. With C# AOT I’ve been able to create self-contained apps that run incredibly fast despite the ipc between the front end and the rust core. I’m getting full 6 platform coverage too (Win/Linux/macOS on both x64 and arm64).
edit: Avalonia is quite mature, with accessibility to boot.
Are you a web dev?
I use ImGui regularly, if you believe that it is on the same level as what you can do with React/HTML/CSS/etc. then I don't know what to tell you
I have seen this assumption in recent GUI threads here (More so your upper post): Building a PC application is not equivalent to building a web browser. A web browser is a type of PC application built for a specific (But very broad!) use. I didn't think I would need to write this statement/distinction, but I have here. Web languages, culture, and syntax have not been a value add to PC application development. Electron is the clearest example why. My model is that is the value add of Electron: Appealing to web devs through language and culture.
Regarding "not doing what you can do with HTML/CSS/JS". Doubt. I varied and complex stuff and have never felt I needed to overload document rendering langs for this.
I will go a step further: I don't think Electron is a symptom of HTML/CSS/JS: I suspect it's more from the Node + Framework culture.
1 reply →