| ▲ | cyber_kinetist 7 hours ago |
| I think the real conclusion is: someone has to make a native cross-platform desktop UI framework that doesn't suck. (Yeah Qt exists, but it really sucks...) Until then, everyone will default to just using the browser for a desktop app, and the beatings will continue. Because of this, I'm really looking forward for PanGUI to step up (https://www.pangui.io/), their UI framework is very promising and I would start using it in a heartbeat when the beta actually releases! |
|
| ▲ | cocoto 2 hours ago | parent | next [-] |
| I have yet to find a cross-platform UI framework that really feels native on Gnome. The reality is that there is no shortcut for native UI on all platforms, you have to use the “official” framework (e.g. GTK for Gnome). In my opinion the only softwares that should use a custom framework are professional grade apps where custom workflows can’t fit the native UI (e.g. Blender). Despite all the noise about native cross-platform frameworks, it’s absolutely not fooling anyone, we can spot this immediately on any platform. |
| |
| ▲ | imtringued 42 minutes ago | parent [-] | | This correct. What's actually needed is a modernized wxWidgets. The goal of the GUI framework should be to find an architecture that is maximally compatible with the native Windows, GTK, QT, Mac OS UI frameworks/libraries plus a simple way to accommodate minor platform differences. |
|
|
| ▲ | ogoffart an hour ago | parent | prev | next [-] |
| > someone has to make a native cross-platform desktop UI framework that doesn't suck This is exactly what we're trying to do with Slint (https://github.com/slint-ui/slint
).
It’s a native, cross-platform UI framework for desktop and embedded (Rust/C++/Python/JS), with no browser runtime |
|
| ▲ | rubenvanwyk 6 hours ago | parent | prev | next [-] |
| Never heard of PanGUI - glad to see its C#, will have to try it out. |
| |
| ▲ | cyber_kinetist 5 hours ago | parent [-] | | They're making the initial version with C#, but they have plans to make the library language-agnostic. Rather than creating bindings, they'll write it in a subset of C# and then transpile it to C++/Jai/Zig/etc, so you can get the best language integration without the hassle of also wrangling with your build system. | | |
| ▲ | DeathArrow 4 hours ago | parent [-] | | >Rather than creating bindings, they'll write it in a subset of C# and then transpile it to C++/Jai/Zig/etc, so you can get the best language integration without the hassle of also wrangling with your build system. It sounds like a clever idea. |
|
|
|
| ▲ | relyks 6 hours ago | parent | prev | next [-] |
| What about Flutter? |
| |
| ▲ | cyber_kinetist 5 hours ago | parent | next [-] | | Not bad for mobile apps, but still sucks a lot for desktop support. Also, really wished they've opted for a more general language like C# rather than Dart - but that's inevitable since Google needed to make use of their Dart language after they've failed to standardize it on the Web (and I think they don't want to use a language developed by Microsoft of all companies) | | |
| ▲ | wiseowise 2 hours ago | parent [-] | | They've picked Dart because it was the only language that could have small aot binaries, hot reload capable runtime without compromise and most importantly because they could influence development of the language. C# is one of the worst choices they could make at the time. | | |
| |
| ▲ | ragall 5 hours ago | parent | prev [-] | | Anything that forces a specific language is a no-no. |
|
|
| ▲ | Dwedit 7 hours ago | parent | prev | next [-] |
| There was WxWidgets. |
| |
| ▲ | cyber_kinetist 6 hours ago | parent [-] | | The main consensus in the native space is that Qt is still miles ahead of any other cross-platform desktop framework (including WxWidgets). Doesn't mean that Qt is anywhere good - it's just the least worst option out of all. I hoped someday Flutter might be mature enough for desktop development, but so far they've focused most of their efforts on mobile and I don't think this will change in the future. | | |
| ▲ | TheBicPen 6 hours ago | parent | next [-] | | As 1 datapoint to support this, see Audacity moving from WxWidgets to Qt for 4.0. | | |
| ▲ | cyber_kinetist 5 hours ago | parent [-] | | Absolutely, they need Qt in order to design and theme a UI that actually doesn't look terrible (They already had good experience in porting Musescore from vanilla C++ Qt5 to QML widgets, so I think they'll use a similar system for Audacity) |
| |
| ▲ | swiftcoder 3 hours ago | parent | prev | next [-] | | > I hoped someday Flutter might be mature enough for desktop development I really don't think there is any broad future for Flutter. Requiring adoption of a new programming language is making an already an uphill battle even steeper, and the way they insist on rendering websites in a single giant canvas is... ugh | |
| ▲ | ragall 5 hours ago | parent | prev [-] | | > The main consensus in the native space is that Qt is still miles ahead of any other cross-platform desktop framework (including WxWidgets). Doesn't mean that Qt is anywhere good - it's just the least worst option out of all. That's not consensus. I very much reject a "desktop framwork". Qt has its own abstractions for everything from sockets to executing processes and loading images, and I don't want that. It forces one to build the entire app in C++, and that's because, although open-source, its design revolves around the needs of the paying customers of Trolltech: companies doing multi-platform paid apps. I want a graphical toolkit: a simple library that can be started in a thread and allows me to use whatever language runtime I want to implement the rest of the application. > I hoped someday Flutter might be mature enough for desktop development Anything that forces a specific language and/or runtime is dead in the water. | | |
| ▲ | cyber_kinetist 5 hours ago | parent | next [-] | | > I very much reject a "desktop framwork". Qt has its own abstractions for everything from sockets to executing processes and loading images, and I don't want that. Yes, that is the consensus of why Qt sucks - it's a massive framework that tries to do everything at the same time with a massive toolset of in-house libraries. This is inherently tied to the revenue model of the Qt Company - sell custom modules that work well with the Qt ecosystem at a high enterprise-level price. I also wish to just use the "good" parts of Qt but I can't, since it already has a massive QtCore as its dependency. However, there is still no cross-platform framework except for Qt that can actually do the most important things that a desktop framework actually needs: an actual widget editor, styling and theming, internationalization, interop with native graphics APIs (though I have gripes with their RHI system), etc. That's why I'm rooting for PanGUI (https://www.pangui.io/) to succeed - it pretty much completes all the checkboxes you have, but it's still WIP and in closed alpha. > I hoped someday Flutter might be mature enough for desktop development
>> Anything that forces a specific language and/or runtime is dead in the water. Yeah, but at that time I thought this was at least better than wrangling with Qt / QML. You can write the core application logic ("engine" code) in C++ and bind it with Dart. There are already some companies I've seen gone a similar route with C# / WPF. | | |
| ▲ | ragall 5 hours ago | parent | next [-] | | As far as I can tell, PanGUI is a drawing library not a graphical toolkit. Its primitives are geometrical, not widgets. Its showcase is an audio app, which is as far away as possible from a boring productivity application that I'd like to do. In my university days I was very much into GUIs, and I've written apps with wxWidgets, plain Gtk 1 and 2, GNOME 2, Qt, Tk, GNUstep and even some fairly obscure ones like E17 and FTLK. For my tastes, the nicest ones were probably GNOME2, Elementary and wxWidgets. Especially GNOME2, which had a simple builder that let me create the basic shell of an app, with some horizontal and vertical layout boxes that I could later "hydrate" with the application logic. | |
| ▲ | DeathArrow 4 hours ago | parent | prev [-] | | >That's why I'm rooting for PanGUI (https://www.pangui.io/) to succeed - it pretty much completes all the checkboxes you have, but it's still WIP and in closed alpha They say it's in beta and it seems anyone can sign up for the beta. |
| |
| ▲ | wiseowise 2 hours ago | parent | prev [-] | | > Anything that forces a specific language and/or runtime that I don't like is dead in the water. Ftfy. |
|
|
|
|
| ▲ | DeathArrow 4 hours ago | parent | prev | next [-] |
| PanGUI seems to be interesting. However being mobile ready would matter a lot for adoption and I couldn't see anything on their sites regarding mobile platforms. |
|
| ▲ | morganherlocker 6 hours ago | parent | prev [-] |
| IDK, it seems like old reddit did just fine without even trying that hard. The DOM and surrounding JS API is already a high level GUI framework, and the post illustrates that it's perfectly capable of doing useful interactions >60fps. I personally love working with native code, but the modern browser is capable of producing fast interfaces that saturate human senses without it. If you write JS like a C programmer would, it will usually be quite fast, even if it's not optimal. If you write native apps in C++ like a modern JS programmer - frameworks and deps with abandon - it will be a stuttery mess. When the DOM is not enough, there's already WebGL and WASM. A vanishingly small sliver of use cases can't saturate human senses with these tools, and the slowest, jankiest websites tend to be the least deserving of them (ie: why is jira slow? It's literally a text box with a handful of buttons on the side!). |
| |
| ▲ | girvo 3 hours ago | parent [-] | | > (ie: why is jira slow? It's literally a text box with a handful of buttons on the side!). Despite me agreeing with your overall point, this is such a ridiculous comment to make. You and I both know Jira is much much more than that. Reductive things like this just turn off people who would otherwise listen to you. |
|