Re: Shameless Plug - My New Novel
-
@Gustav said in Shameless Plug - My New Novel:
just like Rust! You could be using Rust.
If you could point me in the direction of a decent cross-platform Rust GUI library / framework I'd be much obliged. because last time I looked into that, the options I found were... underwhelming.
I'm looking for something that:
- Compiles to native code, doesn't run in a browser (no WASM stuff)
- provides a resonably native look and feel for the OS it runs on
- allows for moderately complex custom widgets and data models, on the level of e. g. a simple vector graphics editor widget or so.
- Feels "Rusty", i. e. has an API that fits well with Rust language concepts
Basically the only option I found that seemed to be beyond toy / proof of concept level and suitable for more-than-trivial GUIs was GTK, which
- is heavily based on subclassing, which is awkward in Rust. More generally, the API just didn't seem to fit right into Rust concepts.
- is huuuge. Download and build take ages and the dependency tree is vertigo-inducing.
- Apparently requires registering build products at the system level. Specifically the thing that peeved me was that apparently to use the Settings functionality I had to have a schema or something registered in some global registry, which IMHO is an absolute no-go for development. I suppose I might be able to set up my own dev registry something but ain't nobody got time for that.
- I just don't like it much.
-
@ixvedeusi That's a pretty tall order. Made me check why Qt needed Perl for building. Turns out that it doesn't need it anymore. Now it has its own purpose-built tool, built in C++, for... checks notes ..."checks header files for conformity with Qt standards and generates the symbol-specific CaMeL header files".
-
@acrow said in Re: Shameless Plug - My New Novel:
That's a pretty tall order.
Yeah I know It's already a tall order in any language, and Rust's unusual type system and idioms will make any ports or FFI bindings of existing libraries awkward to use without a good, thick layer of glue code. I guess to really get a decent coding experience would require writing something entirely new, using design concepts that fit into the way things are done in Rust. I'd be tempted to give it a try, but I'm relatively new to Rust, GUIs are really not my area of expertise, and also I don't have the required couple more man-years to spend on that particular hobby project.
@acrow said in Re: Shameless Plug - My New Novel:
Qt
would be my go-to solution as I've used in the past (from C++, but also from Python which I found to be a surprisingly non-shitty experience) and found reasonably OK to use; but it, too, is huuuge, and unlike GTK there didn't seem to be much in terms of providing a reasonable Rust bridge. And of course it also has that problem of being fundamentally designed around subclassing; if anything, it's design is even more language-specific (to C++ in this case) than GTK. Well, maybe I should give it a try anyway next time I find time to do some Rust.
-
@ixvedeusi said in Re: Shameless Plug - My New Novel:
decent cross-platform Rust GUI library
It was in comparison to doing WinAPI in PureBasic. Neither "decent" nor "cross-platform" were in requirements.
-
@Gustav cross-platform is one of my requirements longer term, just not for this one particular baby project.
And I since learned I need less direct WinAPI fluff because PB has more of it built in.
But I would have looked at Rust if my choices for UI weren’t, basically, fucking GTK because fuck GTK.
-
@Gustav said in Re: Shameless Plug - My New Novel:
Neither "decent" nor "cross-platform" were in requirements.
I was just hoping maybe you know something I don't
Not gonna dirty myself with WinAPI any more than I need to. Anyways my primary target (and development) platform is Linux so WinAPI isn't even on the table.
Any experience of using Qt from Rust perchance? Or should I start looking into X11 bindings? Zero experience of that but the general consensus seems to be
-
@ixvedeusi said in Re: Shameless Plug - My New Novel:
should I start looking into X11 bindings
Yes. Definitely.