6 ms·
Even if React is technically the most popular, that’s somewhat moot because most folks who might be interested in writing desktop apps with Rust probably aren’t
by cosmic_cheese 9mo ago
Even if React is technically the most popular, that’s somewhat moot because most folks who might be interested in writing desktop apps with Rust probably aren’t coming from a web background, but instead from old school desktop UI frameworks (AppKit, win32, GTK, Qt, etc).
For this crowd, the barebones “bring your own everything” style of React and its analogues and contortions required to write apps with complex UIs in a declarative framework are not very appealing. OO imperative UI frameworks with a wide and deep chest of batteries-included widgets still come out on top for this particular use case. Minimal declarative frameworks are fine for light utilities but become progressively more cumbersome every step beyond that.
- nicoburns 9mo ago> most folks who might be interested in writing desktop apps with Rust probably aren’t coming from a web background, but instead from old school desktop UI frameworks You'd be surprised. A lot of people migrating to desktop apps are people coming from a web background (this is after all by far the largest pool of UI developers) who want something more efficient than electron.
- vlovich123 9mo ago“More efficient” is relative. While tauri and dioxus can lower the install size, they’re not going to be meaningfully more efficient than electron for memory usage or speed since Chrome probably does better than the other frameworks, and consistently across OSes which dioxus and tauri struggle with since they are dependent on the host OS’s web implementation. Slint is interesting here but then it’s more rust and less web coding.
- nicoburns 9mo agoOh, "more efficient" here isn't a refence to Tauri. It's a reference to the parent comment's mention of "(AppKit, win32, GTK, Qt, etc)". I work on a framework (Dioxus Native) which I think sits at an interesting intersection of "rust" and "web": it renders using HTML/CSS (custom implementation, not using a webview) but it uses Rust scripting instead of JavaScript.
- vlovich123 9mo agoWhat's "rust scripting"? I don't see any mention of it in the docs nor dioxus native roadmap and AFAIK https://github.com/DioxusLabs/dioxus/tree/main/packages/interpreter https://github.com/DioxusLabs/dioxus/tree/main/packages/inte... is used as the interpreter although I can't for the life of me figure out where the JS engine is actually instantiated.
- nicoburns 9mo ago"rust scripting" is using AOT compiled Rust code to control dynamic behaviour within the app. Dioxus's "native" backend does not use a JS engine. Most of the code for Dioxus Native is in https://github.com/DioxusLabs/blitz https://github.com/DioxusLabs/blitz. And the Roadmap is at https://github.com/DioxusLabs/blitz/issues/119 https://github.com/DioxusLabs/blitz/issues/119 "interpreter.js" is for Dioxus's "web" backend which runs in browsers (who instantiate the JS engine). All it does is interpret "patch commands" to apply DOM mutations.