HACKER Q&A
📣 donboscow

Smoothness and performance of Qt based systems vs. native apps and OS


There are many apps on Mac and Windows based on Qt, as well as ones built using the native SDKs exposed by respective platforms, like Cocoa and Dot Net. Are the ones built on Qt as smooth and performant as the native ones? Or will there be clear performance differences? There are questions like this on StackExchange, but they are more than a decade old, I am interested in knowing the current status!

On that note, how will an OS built around Qt perform compared to say iOS or Android, like Ubuntu Touch (assuming similar levels of underlying hardware)? Will Android and iOS and the apps on top of them will be naturally smoother, scrolls and app transitions being smoother than in Ubuntu Touch? Or is it that the Qt coding can be suitably tweaked in Ubuntu Touch to match iOS and Android performances?


  👤 tssge Accepted Answer ✓
I find Qt is on par with native apps. Didn't even know it wasn't considered native.

Electron apps on the other hand are very obvious from their resource usage, general laggyness and slow startup time. Say compare Discord (Electron) to Telegram (Qt) and it's like night and day.


👤 CarVac
In my experience QML is buttery smooth on Linux, even on older hardware, but it just isn't as smooth on Windows.

👤 Tajnymag
Is it bad that I thought of QT as a native UI framework?

👤 rvz
Just look at Telegram as a real example and compare that against the other messenger apps since the majority of them use Electron and Telegram uses Qt for some of its desktop clients.

👤 umen
Can you list beautiful Qt Apps that are open source

👤 webmobdev
My personal experience in using QT apps is that they load / render perceptibly slower than the native UIs and QT applications are slightly bulkier in size (storage space and memory). This is kind of understandable as QT emulates the UI through its own library (unlike, say, Lazarus IDE / Delphi GUI library that directly use the native UI library). However, size doesn't matter much today, and the very minor rendering delay is hardly discernable and doesn't reduce its usability in any manner. QT is a mature framework and especially suited for C++ developers. It's one of the popular ways open source developers choose to make their software available on multiple platforms.

As for "OS built around QT" you can try it our yourself - KDE Plasma ( https://kde.org/ ) is a GUI for Linux / xBSD that is built with QT, and on the mobile scene, Sailfish OS ( https://sailfishos.org/ ) also chose QT for its OS UI and recommends it for app development on its platform.

All said, often nothing outperforms the native libraries in terms of usability. (Performance, in terms of resource use, is a different matter as there are GUI libraries that are actually lighter on the system than the native ones, and even QT).


👤 jklinger410
Speaking of QT...I've wanted to switch to a QT-based DE for a while but I don't like lxqt or Plasma. It would be really cool if there was another option.

👤 coldacid
I wouldn't go calling .NET a "native SDK" for Windows. That's like saying Java's a native SDK for Windows or macOS or Linux.

👤 xolve
Other than Python what are great Qt bindings available. I wish I could code for Qt in Zig or rust.

👤 donboscow
Guys, I see my question greyed out. And I also see some comments greyed out. What does that mean? They are getting downvoted?

👤 Shadonototra
most mac apps aren't based on QT, they are based on cocoa, mac people don't need to use 3rd party when the official solution destroy the competition

macOS apps are smoother than windows apps because microsoft forces JIT'd applications, which hurts both startup and UX, you can feel JIT doing work when there are animations / click on buttons, and installation is slow because it copies a shit ton of DLLs and a massive runtime

even more noticeable on 120hz+ monitors

linux is the worst, people are addicted to python, and god knows how slow it is


👤 gerikson
Obviously "smoothness" means something other than "differentiable everywhere", but I'm at a loss to know what.