3 ms·
With a disclaimer that I'm not an expert on Qt: - Qt Widgets has a selection of controls that falls a bit short of that of AppKit and doesn't receive much atte
by jwells89 2y ago
With a disclaimer that I'm not an expert on Qt:
- Qt Widgets has a selection of controls that falls a bit short of that of AppKit and doesn't receive much attention any more
- Qt Quick/QML seems more mobile-oriented and web-styled, being barebones if you don't pull in a library of third party widgets (e.g. Kirigami)
- Neither go as deep as AppKit with functionality and require more third party library usage
- Practically speaking, developers are limited to C++ or Python for Widgets and JavaScript for QML
- Distribution of Qt apps is messy and error-prone
These aren't really dealbreakers on their own but pile up to pull the overall experience down.
- MrDrMcCoy 2y agoDo you think there are any better frameworks for open source development of cross-platform GUI apps? I keep seeing mutterings that Godot or some other game engine could become that, but have yet to see anything materialize in that space.
- jwells89 2y agoAt the moment, no not really. Some of the other options improve on Qt’s weaknesses, but only at the cost of its strengths (for example, if you want a tableview/datagrid with sortable, rearrangable columns like is standard in Qt Widgets and AppKit, more “modern” options Flutter and Jetpack Compose aren’t options because they lack such a widget). The problem with using game engines for UI is that their accessibility (support for screen readers, for example) is bad and they don’t adapt to the user’s desktop settings (e.g. light/dark mode and font size) unless you implement that yourself.
- consteval 2y agoElectron + React is pretty good. In that you get tons of components, accessibility, and tooling. The downside however is that it's incredibly expensive compute and memory wise. Many applications are just too complex to represent as HTML + JS + CSS with a virtual dom in a performant manner. So then to make the performance work you have to write more custom code in JS or use more fringe technologies like WASM and at that point you're losing the usability aspect of Electron. I haven't looked at the source code for VS Code, but I'm pretty confident in saying it's not naive/straight-forward HTML + JS.
- jwells89 2y agoThe other big downside is a dependency tree that is better described as a rainforest with all of the third party widgets that you'll likely be importing, each of which comes with is own set of quirks, shortcomings, level of QA and maintenance, preferred development style, etc.