Rust GUI survey 2025
(www.boringcactus.com)
from SufferingSteve@feddit.nu to rust@programming.dev on 14 Apr 22:36
https://feddit.nu/post/10217180
from SufferingSteve@feddit.nu to rust@programming.dev on 14 Apr 22:36
https://feddit.nu/post/10217180
threaded - newest
🤡 uses windows 🤡
I thought you were joking, but this dude seriously uses windows for development. No wonder he’s running into so many issues. I can’t imagine a big chunk of rust developers using that terrible OS.
Edit: I’m surprised at the number of things he tried though and how many worked.
Anti Commercial-AI license
It’s a GUI framework evaluation. I would imagine most users of a desktop application with a GUI would be Windows users. It would generally be a little weird to develop a professional product that does not work on Windows (or at least Mac). It’s a lot easier to develop that natively than to cross-compile.
There’s a difference between a framework that builds to an exe and one that can develop in windows
I’ll be honest, I’m not really sure what you’re trying to say, but it sounds like cross-compilation to me? The article mentions several different GUI libraries that require dynamic linking and complicated build scripts, so even if you setup rustc to cross-compile (which isn’t that hard but is an extra unnecessary step for your run-of-the-mill dev who just wants to get paid), getting the build scripts to cross-compile C++ libraries or testing the cross-compiled binaries with dynamically linked libraries is a pain, assuming your build scripts even let you do that.
All of this is avoidable by building from Windows. Or I guess you can not target Windows. That works too, but most businesses won’t see that as an option.
as someone who used to develop a cross-platform (linux and windows) desktop application: the bulk of development took place on linux. i only ever booted to windows to build the app and make windows-exclusive adjustments, but never to actually develop any features
My past experience in desktop apps have been Flutter and Wails and have always cross compiled to an exe.
The less I need to touch windows the better.
Windows is fine. Get off your high horse.
If you’re going to defend a mega corp, please do so on MS Teams 🤡
Let’s not conflate defending OSs (and their derivatives) with the organisations that produce them.
Ubuntu has always been a great entry for Linux users yet canonical has always had at least one thing going on to infuriate the community (flip-flopping around half-baked DEs and the transitions between them, snaps, etc…)
Arch has always been the most customisable, but the leads have shied away from including a little setup wizard/script to automate what 90% of all users end up installing anyway.
Fedora has always been a great middleground, but on the other hand: Red Hat
Windows and Microsoft are no different. Base install Windows 11 is a 5/10 experience, but with your set-and-forget open source fix of choice (Win11Debloat, tronscript, etc…) becomes a solid 9/10 with next to no effort.
Oh, we got a nu-M$er here. lol.
I highly doubt any script could make Windows usable for me. There’s just far too much I hate about it.
That said, opinions on openSUSE? It’s developed by SUSE employees (good or bad, depending on your perspective), Tunbleweed is arguably the best rolling distro, and the installer is great.
Windows XP and 7 were almost universally praised. They were consistently usable, productive, performant.
Windows 10 was seen as a successor to 7 but was more of a rolling release that saw a gradual transition to a new user interface for system components that was haphazard and lacklustre at first, but slowly improved over time. You can’t really give Windows 10 a specific rating because what Windows 10 was changed over time.
Windows 11 is a case study in what happens when a product is stolen away from a product team and given to a business team with no product team oversight. They started off with a great base, created products they could commodify then bloated the base with those adware / microtransaction filled products.
The good thing is they couldn’t change everything with wreckless abandon, lest they lose their enterprise customers, so every piece of bloat they added can be turned off with a switch somewhere for each enterprise’s sysadmin to find.
The open source fixes mentioned above (Win11Debloat, tronscript, etc…) just run through every switch and turn them off. As soon as Microsoft’s business team adds another “product” to windows 11, the open source community just adds the new switch to the open source fix.
The closest comparison is using the internet without an adblocker vs using the internet with an adblocker.
It’s a night and day difference, and makes the internet actually useful again.
Personally I wouldn’t recommend openSUSE purely because it’s not really intended to be a general purpose OS. It’s for a specialised use case and caters for those users in particular.
Windows XP completely sucked until SP2, and then it was only “good” because it sucked less than what came before.
Windows 7 was only “good” because they undid the worst of the changes in Vista, and 8 sucked more. The same is largely true of 10, it’s only “good” because it’s less bad than 8.
I don’t think any was objectively “good,” they just sucked less than what came before while retaining app compatibility. Windows 10 was probably the best of the bunch, but I still actively dislike using it. I actively like my hybrid CLI + GUI workflow, and Windows offers a terrible CLI experience.
openSUSE is a family of OSes, all with different use cases:
I don’t recommend openSUSE to new users because it’s not super popular, so support can be iffy, but it has been more solid than other distros for me. I’m testing out Aeon on my laptop to see if I can recommend it.
The service packs were mainly minor bug fixes, security changes, and support for new hardware. Besides a handful of new settings pages, almost none of the changes were noticed by users.
Also, of the whole windows XP era, SP2 is the one that most users experienced and remember.
Windows XP came after both 2000 and ME. 2000 only focused on businesses and they loved it, and ME only lasted 2 weeks and was recalled, so almost no one had to deal with it. XP came after both good and bad versions of windows and was generally loved.
Actually 7 was good because it continued the changes. Vista was half baked and rushed out due to the failure of the longhorn project. The user facing problems of vista fit into two buckets:
The new driver model wasn’t given to hardware teams early enough so almost no hardware worked out of the box with Vista. And the hardware that did, often had stability issues because there wasn’t enough time to test the drivers that they launched with.
Windows 7 used the exact same hardware driver model as Vista. People often thought changes were made to Windows but no, it just the fact that the hardware folks had enough time to sort out their own drivers and test them.
The poor optimisation was a Vista problem however. Vista was pushed out the door generally feature complete, but the devs didn’t have enough time to optimise Vista’s processes. Windows 7’s internals were mostly the same as Vista’s, except that the features were already there, so the devs could just focus on the already existing software.
8 actually continued the optimisations from 7, but the replaced UI was definitely a major screw up.
10 actually continued the optimisations from 8, and the new UI resembling 7’s was a welcome change.
Funnily enough, 11 actually continued some optimisations from 10, but you would never know because there’s so much bloated adware inside it. That’s why people like the “fixed” versions of Windows 11, like the regular version after running open source fix of choice (Win11Debloat, tronscript, etc…), the open source debloated installs (like Tiny11), or the official debloated/debloatable installs (Windows 11 IoT LTSC, Windows 11 Enterprise).
Windows 11 is optimised enough that a bunch of devs enjoy sticking it on ever underpowered and unsupported hardware. Someone ported it back to a 9 year old smartphone (32-bit arm), and recently someone got it running on a smartwatch. Technically, you could run an app in a containerised Windows 11 install on a server and have it take up 290mb storage but I wouldn’t call that a typical windows 11 user experience.
Windows used to offer a terrible CLI experience.
Now it comes with Windows Terminal and either powershell for a powerful non-posix shell, and WSL2 for whatever posix shell you want (and wslg for launching linux gui apps from said shells).
There were a lot of security fixes, to the point where anything before SP2 was dangerous to run.
Windows 2000 was supposed to be super secure, but it ended up being a security nightmare. ME was recalled because it was incredibly unstable.
Windows 98 was fine, though it was pretty old by the time XP came out.
I recall it being a massive memory hog, because it tried to do something with app optimization and ended up just eating all the RAM.
But yeah, Windows 7 was just a better Windows Vista. They seemed to fix the memory situation, and they removed a lot of the eye candy that seemed to cause issues in Vista.
Yeah, I don’t know what they were smoking with 8. They seemed to really want to make mobile happen and I guess Win 8 was part of that, and then they completely abandoned the Windows Phone idea a few years later, even after buying Nokia. They were late to market and didn’t invest enough to catch up.
It was a really weird time for Windows.
And yeah, I get that they continued optimizations with each release, that’s generally what I expect from an OS. The problem is that they shipped half-baked ideas with each release.
Yes, they now technically support it, but it’s not going to be the same workflow. WSL1 has a lot of gaps, and WSL2 is a VM and has associated tradeoffs.
It’s fine if you want to run a few commands every so often, but it’s not going to be an integrated experience. For example:
I was never really a fan of powershell, so I can’t really comment on that. The new terminal is better though.
That said, maybe it’s better now. I haven’t used Windows for a few years. But at least at the time I tried it, it felt like a gimmick to try to keep people on Windows, instead of a legitimately useful feature for people who want or need both. I always felt like you should just use a VM or dual boot instead.
🤡 I hate Starbuck’s CEO but walking 5min to the local café isn’t worth it imo 🤡
Excellent post, i already use Dioxus and is very interested to know future work on Freya.
Interesting read though it’s mostly a comparison on how well windows accessibility tools work on each gui framework.
Good.
Too many libraries/frameworks/products don’t factor in accessibility from the start.
Along the same vein, too many open source projects don’t factor in non-“gnu/linux” environments from the start.
It’s a lot harder to tack on after the fact rather than just having it be a part of the base design from the beginning.
Making these front and centre in a survey should be a be a bit of a wakeup for people who don’t consider what doesn’t run on their machines.
No one is entitled to anything from open-source projects.
I spent time making sure one of my public tools was cross platform once. This was pre-Rust (a C project), and before CI runners were commonly available.
I did manage it with relative ease, but Mac/mac (what is it now?) without hardware or VMware wasn’t fun (or even supported/allowed). Windows was a space hog and it’s a shit non-POSIX OS created by shits anyway, and Cygwin/MSYS wouldn’t have cut it for multiple reasons including performance. The three major BSDs, however, were very easy (I had prior experience with FreeBSD, but it would have been easy in any case).
People seem to have forgotten that doing open-source was supposed to be fun first and for most. Or rather, the new generation seems to never have gotten that memo.
POSIX is usually where a good balance between fun and public service is struck. Whether Mac/mac is included depends on the project, AND the developers involved. With CLI tools, supporting Mac/mac is often easy, especially nowadays with CI runners. With GUIs, it’s more complicated/situational.
Windows support should always be seen as charity, not an obligation, for all projects where it’s not the primary target platform.
I never said anything contrary to this.
Letting MacOS users support MacOS hardware is generally easy when you already have BSD and/or busybox support already.
Ordinarily I’d agree, except these are GUI Libraries.
The whole point of them is to be a generic interface that prevents you from needing to use the platform specific APIs directly.
If GUI libraries aren’t going to target the most widely used platforms, then why wouldn’t the developer just use the platform specific APIs directly?
In reality Windows isn’t the most widely used platform, not where it counts, among the developers of those libraries. And finding competent Windows developers to contribute also isn’t easy while finding Windows users demanding support is quite easy since the factor of developers per user is so much worse on that platform.
I feel like the best option at the moment is egui. It’s native. Works on the web too. Very easy to get up and running. The things I don’t like about it:
I also tried Slint. Like the author I think the license is pretty reasonable. But it is pretty involved to set up a project and since it compiles everything from source it can take a very long time for a clean build of hello world. It’s like if you were using Qt but instead of a binary package the sources are just included in your app.
Also I have bad experiences from QML (Javascript 🤮, weird scoping rules, etc.) but hopefully they learnt from their experience.
Looking forward to the 2030 edition anyway!
I really hope iced.rs gets better on accessibility, because i really enjoyed trying it :)