15 ms·
I work with a couple of Qt-based applications on a day to day basis, and every time I interact with the applications engineers or R&D, it makes me think that Qt
by kayson 4y ago
I work with a couple of Qt-based applications on a day to day basis, and every time I interact with the applications engineers or R&D, it makes me think that Qt is a huge pain to work with. They take the forever to make any improvements or add new features, and the core application is still horribly buggy and unstable. Am I on the right track with Qt as the culprit or is it more of a legacy code or poor PM type thing? Curious what kind of experience HN folks have had using Qt.
- neodypsis 4y agoQt is one of the most decent frameworks for developing quality Desktop GUIs. It probably is due to legacy or PM issues. That said, if I needed to develop a Desktop app nowadays, I'd probably give Flutter a try (https://flutter.dev/multi-platform/desktop https://flutter.dev/multi-platform/desktop).
- kayson 4y agoI've been interested in flutter but it's still so new I'd be hesitant to commit to it. And the Google influence seems similarly risky to me, though if Go is any indication it hasn't been catastrophic. Curious how flutter compares to Qt in terms of performance if you've got intense 2D rendering.
- saidinesh5 4y agoIt's probably the old codebase. I have seen this kind of thing happen more often with old C++ codebases in general. Typically, the symptoms are: * They have no unit tests. No linters or other code quality checks. No CI at all. Gui testing is usually not automated in most places I worked at, but skipping out on CI tends to make the code suck extra hard in the long term. * They have to manually run 4-5 steps everytime to build and test the code they're working on. This kills the developer productivity instantly. * They don't manage the memory properly. They sprinkle new/malloc, delete/free everywhere. They use shared pointers everywhere. They probably implemented their own auto_ptr classes. It's hard to figure out who owns and frees an object in such code. It usually leads to very buggy and unstable applications. Qt complicates this even more because it comes with automatic life time management of QObjects (if you delete a parent, all the children get deleted). For me, I've worked with Qt on and off over the last 11 years or so. It's a mixed bag. For describing GUIs on embedded systems, i haven't seen anything better than QML/QtQuick so far. But because of the licensing situation with Qt, a lot of companies I've worked at still choose an old and outdated version of Qt (just like the above project which uses Qt 5.6), which means we reimplement the same functionality again and again. For cross platform desktop applications, Qt/C++ is still the most mature framework ice seen. I don't have that many complaints with Qt itself here. But C++ projects don't have a proper way to manage dependencies. No standardized build system. So I've seen annoying "solutions" like electron having less friction than Qt/C++ projects. Modern C++ and tooling solves a lot of these headaches. But you still have to use a lot of good but old C++ code that doesn't come with any of those goodies. So is say it's a mixed bag.
- intelVISA 4y agoAs a complete novice to Qt6 I managed to make a decent modern (ish) multi-page GUI CRUD app in a day, I would say the framework is pretty solid in spite of lots of reinventing the wheel (QObject??) and even has some nice parts like CMake integration and an okay DSL (QML)
- detaro 4y ago"more of a legacy code or poor PM type thing" most of the time, with the caveat that making bad choices around how to use Qt can exaggerate problems. It's powerful enough to give you enough opportunities to hurt yourself (as does C++), and given the age of many Qt codebases "this seemed the right choice a decade ago, but things have changed a lot" can easily happen.