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

#rust

threaded - newest

monogram@feddit.nl on 15 Apr 03:46 next collapse

🤡 uses windows 🤡

onlinepersona@programming.dev on 15 Apr 06:09 next collapse

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

TehPers@beehaw.org on 15 Apr 06:25 collapse

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.

monogram@feddit.nl on 15 Apr 06:58 collapse

There’s a difference between a framework that builds to an exe and one that can develop in windows

TehPers@beehaw.org on 15 Apr 08:32 collapse

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.

bunitor@lemmy.eco.br on 15 Apr 13:58 next collapse

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

monogram@feddit.nl on 15 Apr 17:11 collapse

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.

FizzyOrange@programming.dev on 15 Apr 14:42 collapse

Windows is fine. Get off your high horse.

monogram@feddit.nl on 15 Apr 17:29 collapse

If you’re going to defend a mega corp, please do so on MS Teams 🤡

spartanatreyu@programming.dev on 16 Apr 00:00 collapse

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.

BB_C@programming.dev on 16 Apr 02:49 next collapse

Oh, we got a nu-M$er here. lol.

sugar_in_your_tea@sh.itjust.works on 16 Apr 03:26 next collapse

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.

spartanatreyu@programming.dev on 16 Apr 07:18 collapse

I highly doubt any script could make Windows usable for me. There’s just far too much I hate about it.

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.

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.

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.

sugar_in_your_tea@sh.itjust.works on 16 Apr 15:08 collapse

Windows XP and 7 were almost universally praised. They were consistently usable, productive, performant.

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 purely because it’s not really intended to be a general purpose OS

openSUSE is a family of OSes, all with different use cases:

  • Aeon/Kalpa - immutable desktop that you don’t need to worry about; like Silverblue
  • Tumbleweed - rolling release, requires a little bit of understanding/intervention; like Arch, but with openQA to catch many of the issues
  • Leap - traditional release-based OS, ideally prefer one of the above; like Debian

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.

spartanatreyu@programming.dev on 17 Apr 00:59 collapse

Windows XP completely sucked until SP2

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.

, and then it was only “good” because it sucked less than what came before.

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.

Windows 7 was only “good” because they undid the worst of the changes in Vista

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:

  1. New hardware driver model
  2. Poor optimisation

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.

and 8 sucked more.

8 actually continued the optimisations from 7, but the replaced UI was definitely a major screw up.

The same is largely true of 10, it’s only “good” because it’s less bad than 8.

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.

I actively like my hybrid CLI + GUI workflow, and Windows offers a terrible CLI 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).

sugar_in_your_tea@sh.itjust.works on 17 Apr 04:21 collapse

The service packs were mainly minor bug fixes, security changes, and support for new hardware.

There were a lot of security fixes, to the point where anything before SP2 was dangerous to run.

Windows XP came after both 2000 and ME. 2000 only focused on businesses and they loved it

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.

The poor optimisation was a Vista problem however.

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.

10 actually continued the optimisations from 8, and the new UI resembling 7’s was a welcome change.

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.

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).

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:

  • WSL2 has better performance and compatibility, which is what you’d expect from a VM, with the huge caveat of IO issues when interacting with the host OS
  • WSL1 has better host IO, but lots of missing features (systemd, various system calls, etc)

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.

monogram@feddit.nl on 16 Apr 06:24 collapse

🤡 I hate Starbuck’s CEO but walking 5min to the local café isn’t worth it imo 🤡

Busyvar@jlai.lu on 15 Apr 11:26 next collapse

Excellent post, i already use Dioxus and is very interested to know future work on Freya.

daniskarma@lemmy.dbzer0.com on 15 Apr 18:10 next collapse

Interesting read though it’s mostly a comparison on how well windows accessibility tools work on each gui framework.

spartanatreyu@programming.dev on 15 Apr 23:37 collapse

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.

BB_C@programming.dev on 16 Apr 02:47 collapse

Along the same vein, too many open source projects don’t factor in non-“gnu/linux” environments from the start.

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.

spartanatreyu@programming.dev on 17 Apr 01:11 collapse

No one is entitled to anything from open-source projects.

I never said anything contrary to this.

but Mac/mac (what is it now?) without hardware or VMware wasn’t fun

Letting MacOS users support MacOS hardware is generally easy when you already have BSD and/or busybox support already.

Windows support should always be seen as charity, not an obligation, for all [open source] projects where it’s not the primary target platform.

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?

taladar@sh.itjust.works on 18 Apr 09:22 collapse

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.

FizzyOrange@programming.dev on 15 Apr 18:59 next collapse

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 personally think the default style could do with improvement. Mainly it’s way too cramped. There’s a happy middle ground between no padding and bootstrap. I mean Win32/Qt/etc. got this basically right.
  • Immediate mode. Yeah it’s easier, especially with Rust, but … it’s surely not how it’s supposed to work.
  • The low level drawing API (like if you’re making custom widgets) is surprisingly amateur. Not something I’d want to target if I’m spending a lot of time e.g. writing a custom map widget or git graph or something.

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!

BlackRoseAmongThorns@slrpnk.net on 17 Apr 17:54 collapse

I really hope iced.rs gets better on accessibility, because i really enjoyed trying it :)