5 ms·
Aren't there plenty of non-native-gui desktop options already? I think what we really need are cross platform gui options using native widgets (and we shouldn't
by kodablah 8y ago
Aren't there plenty of non-native-gui desktop options already? I think what we really need are cross platform gui options using native widgets (and we shouldn't pretend the impedance mismatch is too large because we've seen successful yet either license encumbered or language-unfriendly options before).
- weberc2 8y agoPretty sure this has been attempted many times, and it never seems to work out well. One problem on Linux is that the native toolkits (Qt and GTK) are just garbage. Of course, creating a new toolkit is a huge, thankless endeavor and it requires quite a lot of experience with low level graphics programming, text rendering, accessibility, etc. I think the web GUI stack is the only viable solution, but it can't be electron because of the redundant bulk--it will have to be something like ChromeOS: every program's GUI runs in its own "tab" (except tabs are laid out like windows); however, instead of pulling HTML/CSS/JS from remote servers, the servers would run as local daemons (it wouldn't really matter where the servers ran, to be honest; network transparency and all that).
- pknopf 8y ago> One problem on Linux is that the native toolkits (Qt and GTK) are just garbage. I don't know how you get that. GTK needs more work, but Qt is spot on.
- weberc2 8y ago> I don't know how you get that. This is my opinion as a former Qt developer who dabbled in GTK in my spare time. Qt is all written in 90's C++ with all of the garbage that entails--awful memory management, CMake as a build system, no widely used package manager, shitty tools, etc. It's actually _worse_ than 90's C++ because it depends on a convoluted soup of preprocessor macros and a metaobject compiler in order to bolt onto C++ things like a dynamic type system and reflection. This means there's only one IDE that really understands it, and it was really buggy when I last used it (~2014). The one nice thing about Qt is QML, which is only nice to the extent that it removes or papers over the aforemetioned list of shitty Qt characteristics. And GTK is strictly worse than Qt. For all its issues, web development is nowhere near this bad--it's cheaper and easier for an organization to ship a bastardized browser alongside their web app than to build a Qt app.
- the_trapper 8y ago> One problem on Linux is that the native toolkits (Qt and GTK) are just garbage. I think a lot of this stems from the fact that Linux (or BSD for that matter) don't really have a "native" toolkit. Also, I think people overestimate the importance of using native widgets. Anecdotally I would say that only about half of the apps I use on a daily basis actually utilize the native toolkit. Microsoft Office, Adobe Reader, IntelliJ IDEA/Android Studio, Visual Studio Code, Chrome, and Firefox are great examples of very successful software that are not built using the native toolkit.
- jenscow 8y agoI think it's a little sad that we're now back to writing our own widget sets. On Linux too, the toolkits of a handful of the applications I use are also, shall we say, "home made". In fact, widgets in Windows have been theme-able since XP. Why couldn't that have been made more available?
- themacguffinman 8y agoI think it's a positive development and a sign that GUI applications are now being treated seriously. There's just no way that any generic widget set is going to 100% fill the needs of an easy-to-use, complicated GUI application. Nowadays when UI/UX actually matters in the success of software, it makes sense that developers are taking control of their UI's widgets. Cobbling together a GUI with a limited set of cookie-cutter widgets that are difficult to modify is no longer acceptable.
- kodablah 8y agoI think Qt does work well. Gtk isn't terrible either. WxWidgets, Iup, etc are also not bad. They just need either better cross language support (i.e. in C or with C iface) or better maintenance. I've had subpar performance with the more recently developed libui, but I have hopes there too.
- repolfx 8y agoYou should check out JavaFX. It has a full set of cross platform widgets, can be styled with CSS, is hardware accelerated with Direct3D on Windows and OpenGL on Linux/Mac. You can do arbitrary 3D transforms of any part of the scene graph, but it also has sophisticated widgets like table views, tree views, CalendarFX, etc. There's a Material Design library for it called JFoenix. There's a visual GUI builder for it. It can play and stream hardware accelerated video. The entire toolkit is designed for reactive programming, there are libraries like ReactFX that go further and add the very latest and most advanced combinators. It's fully open source and developed on github. It's really not that bad but the world seems to ignore it.
- coldtea 8y ago>Aren't there plenty of non-native-gui desktop options already? No, and most of them are crap like Electron.