top | item 46031368

(no title)

conceptme | 3 months ago

because there is no proper UI library that does cross platform as well as the web

discuss

order

raffraffraff|3 months ago

Not just UI. I just wrote a KDE Plasma 6 widget for systemd-networkd / networkd and it was a nightmare.

kosolam|3 months ago

Why? Give more details please

robert_dipaolo|3 months ago

What about QT? I've used that in the past and it's really good for native apps.

Kelteseth|3 months ago

We are using it for our apps, but I can see why people do not use it for new projects:

1. The state of C++ is not great. Few developers, C++ footguns, complicated build systems, and generally slow progress, see my https://arewemodulesyet.org/

2. How Qt presents and licenses itself. Either you go LGPL or you have to pay big money for a commercial license, which will then infect all other apps as well. For example, when you have two Qt apps that talk to each other you must license _both_ commercially.

3. The split of Widgets and QML makes the ecosystem fragmented, because Widgets will never die. Even the Qt devs themselves are split about this. You can see this when example code for a new feature uses Widgets. QtCreator is also a nice example, where they reverted some new QML code quite a while ago and have not substantially added any new QML code since then.

4. Tooling: We use QML for everything and the tooling is not great. The language server is still super flaky and breaks, and developer tooling like the Chrome Dev Tools is virtually nonexistent.

5. Packaging is still also not great but has gotten better in the last few versions where Qt creates a deployment cmake script for you, but you still need logic for your own (vcpkg) packages.

lloydatkinson|3 months ago

My cross platform application written in C#/.NET and Avalonia strongly disagrees with this crazy assertion.

I can also think of QT and GTK for other languages too.

adastra22|3 months ago

There are quite a few. Qt, React Native, Xamarin, and Flutter come to mind.

miki123211|3 months ago

Those are not native (on desktop) in any sense of the word. They don't use native controls. For that, you want WX or SWT, but those come with their own sets of problems.

On Windows, it's not even obvious what native is any more, even Microsoft just uses Web views. Mac is a bit better, but there are still 4 UI libraries to choose from (AppKit, UIKit through Catalyst, native SwiftUI and Catalyst SwiftUI).

I'm personally a fan of AppKit and Win32, but those are "dated" apparently.

mono442|3 months ago

I wouldn't exactly call Flutter native. It uses its own rendering engine and doesn't necessarily behave like operating system native controls. It is not really different from using electron.

anthk|3 months ago

Lazarus and Free Pascal and it will run several times faster than the web.

divan|3 months ago

What's the reason not to write desktop apps in Flutter in 2025?