3 ms·
I cringe when I have to install a Qt app, because at least half of the time, even as a user, I know I'll be fighting with Qt system dependencies. Even if the ap
by iamleppert 4y ago
I cringe when I have to install a Qt app, because at least half of the time, even as a user, I know I'll be fighting with Qt system dependencies. Even if the app is distributed in binary form. The situation gets worse when you have to actually build the source. It seems like the API is never stable, even with minor versions they seem to like changing methods name and breaking backwards compatibility. When I look at what was changed, it looks like change for change sake and I can't tell a difference in how its better.
It happens so often that I'll avoid a Qt app because the dependency management is so bad. Then once you finally get it to work, be prepared to spend time on Stack Overflow researching arcane QT_ environment variables to fix things like display scaling and added additional library paths at runtime.
It's been this way as long as I can remember, and the problem has persisted across versions and different OS and systems I've had over the years. I can always get something working, but it just feels like nothing ever just works out of the box.
Also QT applications seem like they are more unstable to me, more prone to crash and just not work well. I'd rather have a runtime error in some javascript frontend than the entire app crash, and have to pour through enormous stack traces through crazy overly abstracted code that shows a list or runs some tab component.
Then there is the style, at least the one that comes out of the box. Very inconsistent and relying too heavily on platform features that make the app look and behave differently on different OS's. It must be hard for developers to customize because you rarely see a polished Qt app, they all look the same and have the same quirks and lack of padding, spacing and consistent typography.
The last thing is kind of personal, but I tire of seeing the word Qt everywhere. We already know we are working with Qt, you don't need to prefix every single class and package with it. I get this may have to do with namespacing, but in practice it just makes source harder to read and debug.
- toyg 4y agoThese are just packaging issues, typically (but not only) on Linux. Dedicated developers know what to do to avoid all of that. As for the style - again, depending on developer choices, they can actually be the most consistent with the platform they run on. Unfortunately that was a selling point for the original QtWidgets more than QML - QML does things "the web way" and just doesn't give a crap about desktop styles. Things like "lack of padding" sound funny to me, because on that side Qt is definitely superior to the overpadded monstrosities of GTK or web-like frameworks, who waste screen real estate for fun. Qt simply uses desktop conventions, which are "just right" in QtWidgets with minimal attention to layouts. > I tire of seeing the word Qt everywhere Now you're just being silly. Everyone does it - Apple with NS etc.
- regularfry 4y ago> These are just packaging issues, typically (but not only) on Linux. Dedicated developers know what to do to avoid all of that. Isn't that the point? It's easy for a packager to get into a situation that gives the end user a shitty experience. You shouldn't need to be a "dedicated developer" just to be a user, and making the packaging situation straightforward for the distributor is firmly in framework provider's ballpark. This isn't something Qt should be allowed to shrug off, it's exactly the job they should be doing. >> Then once you finally get it to work, be prepared to spend time on Stack Overflow researching arcane QT_ environment variables to fix things like display scaling and added additional library paths at runtime. Just to add my n=1 anecdata here, FreeCAD (a QT app) consistently gets scaling wrong, on all the platforms I regularly use it on (Windows, MacOS, Linux). It's just... not good, to the extent that I actively avoid plugging external monitors in rather than screw with it once I've got a tolerable setup.