Java works fine for cross-platform desktop GUIs, as does Qt and a handful of other C++ libraries.
Qt's license is a non-starter for a LOT of commercial entities.
And Java is fine, for varying definitions of "fine". I have yet to see any Java application that looks good, aside from a couple IDEs, and none that look good across platforms.
Usually because the devs didn't bothered to read books like Filthy Rich Clients, or actually spend money having a designer on the team.
Re:.NET 5
by lucas_membrane on Monday May 06, 2019 @03:04PM
(#19842632)
> .NET Core is cross-platform, with runtimes for Windows, Linux and MacOS
Microsoft used to follow the eat-your-own-dogfood rule, which would seem to indicate that the development tools should use the same run-time and run on all the targets, but the announcement only mentions linux as a target. As a hobby-only-on-linux-only developer who does not buy or sell any software or related services, I find this announcement a poke in the nose with a clue stick.
xamarin.forms has support for uwp/wpf (windows), linux (GTK#) and mac (https://docs.microsoft.com/de-de/xamarin/xamarin-forms/platf...) it's not highlighted that much and for some stuff you need to create native views. but it works smoothly and you can do a lot of stuff. for some stuff you still need to configure native views, or call into native apis, but still it's pretty nice working and looks better and is faster than most electron stuff.
IMO, that's not entirely accurate, and does .NET a bit of a dis-service.
.NET Framework isn't cross-platform, and doesn't pretend to be - it's Windows only.
.NET Core is cross-platform, with runtimes for Windows, Linux and MacOS.
Regarding Xamarin, I guess you haven't used it for a while? Until very recently, I had the same opinion, but only because it was years since I had used it - turns out it's rather good now!
Where cross-platform ends is really with desktop GUIs - web apps, web APIs, console apps, backend processing services/daemons etc, all of these work very well across the supported platforms, and the only time you'll likely write platform-specific code is the rare cases when you need to pinvoke into native DLLs.
Aside from the likes of Electron, I'm not sure there really is a good cross-platform solution for desktop GUIs. Microsoft would be hailed as heros if they ever crack that one :)