4 ms·
Telegram has shown the enormous potential of Qt with the latest update. Not that I have a horrible time with GTK, but Qt just feels better and lighter overall.
by techntoke 6y ago
Telegram has shown the enormous potential of Qt with the latest update. Not that I have a horrible time with GTK, but Qt just feels better and lighter overall. qutebrowser is another example of the amazing potential of Qt.
- saagarjha 6y agoPersonally, I much prefer GTK apps over Qt ones. What makes you think that Qt does it better?
- rleigh 6y agoQt doesn't even compete with GTK+, it's in an entirely separate class which GTK+ will never reach. It's an entire application development framework of over a dozen libraries, only a few of which are related to GUI functionality. And for the libraries where there is overlap e.g. QtCore and QtWidgets, the Qt design and functionality is again such a step up that it's not even worth comparing. GTK+ is a simple and limited X11 toolkit. It can be visually attractive. But it's not something you would chose rationally based upon features, code quality, code maintainability or having a good developer ecosystem and support. Because it would come in last place on every metric, unfortunately. There are very good reasons people don't use GTK+ for commercial projects. Or even open source projects, unless they haven't learned the hard way yet. Fundamentally: its developers don't prioritise the needs of the very application developers who should be their primary customers. (I used to develop open source and commercial GTK+ applications. What a huge waste of time and effort that was. Utterly soul destroying how many unfixable bugs I had to find and work around.)
- marktangotango 6y ago> It's an entire application development framework of over a dozen libraries, only a few of which are related to GUI functionality. Do you not consider GLib and associated libraries to also fulfill this application development framework role?
- rleigh 6y agoGood grief, no! It's not remotely comparable to the array of Qt libraries. Can it handle XML parsing, XSLT transforms, SVG rendering, database access, OpenGL scenegraphs, gamepad input, networking, chart rendering. No. It doesn't even do one of them, and that's not even the full list. GLib is a set of basic C functions for missing standard library functionality which range from acceptable to awful. An "application development framework" it is not. It's a set of simple helper functions and some primitive containers with so-so performance and very little safety. Use the C++ standard library and avoid 99% of it with containers that work properly and classes that aren't fragile because you're still pretending that C can do object orientation and object lifetime management sanely. It can't. Constructing vtables by hand with GObject might be clever to prove a point, but it's no way to write a robust application that the compiler can actually type check and that static analysis can find problems with.
- cycloptic 6y ago>XML parsing, XSLT transforms, SVG rendering, database access, OpenGL scenegraphs, networking Off the top of my head there is libxml2, libxslt, librsvg, libgda, libclutter (and now GSK with GTK 4). Networking is included in the gio part of glib. Unfortunately there are no good gtk/gobject-style libraries for generic gamepad input or chart rendering as far as I'm aware.
- rleigh 6y ago> Off the top of my head there is libxml2, libxslt, librsvg, libgda, libclutter None of which have anything to do with GTK+ as an application development framework. They are independent projects.
- cycloptic 6y agoThese are the libraries that most GTK applications are using for those purposes. You can bikeshed about whether they call themselves an application development framework or not but Qt is also split up into separate projects in separate git repositories like this.
- hedora 6y agoIn my experience, most GTK apps aggressively regress in functionality until a superior QT rewrite supplants them. I suspect the problem is lack of API stability, not the relative quality of any given pair of releases.
- rvz 6y agoHmm. I can't think of any actual cross-platform GTK apps that is widely used like Telegram. The only app that is close to "qualify" on this could be GIMP, but will it get over the issue of user responses like: "I only want Adobe® Photoshop®, Ableton® Live NOT this 'GIMP' or what is this thing called 'Ardour'".
- bzb3 6y agoThe latest update? Isn't it basically an incremental improvement? I haven't seen any big changes
- techntoke 6y agoThe last update they added: - Use Auto-Night Mode to make Telegram night mode match the system Dark Mode settings. - Also added an option to switch to system window frame in Windows and Linux. - System notifications for Linux Nice and seamless overall now. Get my notifications using system notifications, and looks better in Sway using system frame.
- ptx 6y agoQt includes an entire JavaScript engine if you use the new QML-based widgets. Not what I would call light.
- techntoke 6y agoIt is packaged separately on my Linux distro.
- ptx 6y agoSeparately from what? "QML has a deep JavaScript integration, and allows signal handlers and methods to be defined in JavaScript" according to the docs[1] - the JS engine[2] doesn't seem separable from the QML-based parts of the UI toolkit. [1] https://doc.qt.io/qt-5/qtqml-javascript-topic.html https://doc.qt.io/qt-5/qtqml-javascript-topic.html [2] https://wiki.qt.io/V4 https://wiki.qt.io/V4