LeanQt – a stripped-down Qt version easy to build from source and to inte (cont)
github.com
github.com
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.
Curious how flutter compares to Qt in terms of performance if you've got intense 2D rendering.
i mean, threads, IO abstraction, collections... i have always wondered why Qt has a tendency of re-inventing everything.
anyways, i hope it works out for their Oberon project.
Qt is a very well known cross-platform application development framework.
Qt does not reinvent everything, it just provides basic cross-platform modules, much like Java, and modules that leverage Qt's basic features such as their signals-slots, event loop, multithreading support, etc.
10 MB (LeanQt) vs. 230 MB (Qt 5.6.3) source tree?
Personally I'm not sure I see the utility in this if something as baseline to typical Qt applications as QtWidgets is only a "long-term plan."
But then again, I had experienced modifying some hardware SDK example that is just a console program, yet heavily dependent on Qt. Can't deny that there are a lot of useful non-GUI functionalities also bundled in Qt.