Re:Qt Creator 7 Released
by saidinesh5 on Saturday March 26, 2022 @06:08AM
(#30810585)
It's still free under lgpl. Their open source version anyway. [1]
Just that the Qt company lately has been trying everything to scare / annoy people into getting licenses, sign up for their online accounts etc... So they're just not advertising their open source offerings as much.
Re:Qt Creator 7 Released
by saidinesh5 on Saturday March 26, 2022 @06:47AM
(#30810737)
I honestly don't know. I mean i routinely see so many GPL violations too and all i had to do was grep the binaries/update packages for strings like GPL.
All i can tell you is most of the small-medium sized companies i worked for over the last few years are still using the very old and outdated Qt 5.6 just to avoid the newer LGPLv3 license. In fact i haven't heard of anyone who purchased a Qt Commercial license to date.
Re:Qt Creator 7 Released
by joezydeco on Saturday March 26, 2022 @08:44AM
(#30811358)
I'm a licensed commercial Qt developer, been so for about a decade now. My current org is still on 5.15 (the latest LTS release) and that's as far as we're going. I'm relieved they at least offered to go beyond 4.8 (the LGPL3 switchover) but that's mostly because other projects were already doing it.
We're never going to Qt6, the newer licensing terms are just too much for us. Calling v5 old and outdated is subjective - we develop 2D interfaces on Linux framebuffer and that's good enough for the task. It's a bit sad that Qt is focused on 3D stacks and particle effects and acceleration and - mein gott in himmel - I just got an email about in-app advertising coming to Qt6. While core features and deficiencies in the system have gone unaddressed for years, sometimes nearly a decade.
Sadly the next generation of our products will be going to React or Electron. So now we need to beef up our hardware and burn millions of unnecessary watts over the decades because we will need Node or some other backend server running on our little devices.
Re:Qt Creator 7 Released
by saidinesh5 on Saturday March 26, 2022 @09:26AM
(#30811605)
I feel you. In fact after a decade of mostly C++ / Qt jobs, I've realized it's time to move away to other tech. More companies i worked with are avoiding Qt where they can. And even i was getting tired of creating the same QtQuick controls over and over again.
Tbh Qt 5.15 is still plenty good for most embedded Linux use cases. Just that organizations i worked with are stuck with Qt 5.6 (last lgpl v2 version?) And it was a pain to keep backporting fixes to it. The 3D stack rewrites were also unavoidable when trying to write cross platform applications because the underlying graphics stack changed. OpenGL isn't getting much support from the drivers and ANGLE was a pain for them to integrate/maintain apparently.
Qt 6 is available in LGPLv3 right? If you're already using 5.15, what would stop you from using Qt6?
Interestingly, flutter seems to be taking off even in the embedded world where QtQuick used to work really well. You might want to consider that if you're averse to electron. (Eg. Flutter-pi).
Re:Qt Creator 7 Released
by joezydeco on Saturday March 26, 2022 @10:56AM
(#30812374)
Qt 6 is available in LGPLv3 right? If you're already using 5.15, what would stop you from using Qt6?
We're commercial distribution so we don't care about LGPLv3 for Qt. The problem is more about the previous contract we have in place with Qt that gives us some favorable terms. Qt wants us to drop that contract to go to Qt6, and we won't do it. Qt will get their customers on their subscription model eventually, and the rest will be learning how to write for embedded webkit. Like us.
On a purely personal/professional angle I won't use Flutter. I have a blanket policy of refusing to use any Google-developed project for embedded devices, including Android.
Re:Qt Creator 7 Released
by saidinesh5 on Saturday March 26, 2022 @12:02PM
(#30813023)
Oh that sucks. Yeah Qt has gotten really aggressive with their licensing headaches. They broke so many of our CI scripts when they made it mandatory for you to log in to use their Qt installer even for online version.
And yep. Relying on just Google can be a death sentence. I was hoping to use Android things for a quick demo last month only to find out that it is discontinued. What made me look at flutter was because companies like Sony are driving forward it's development on embedded space ( https://github.com/sony/flutter-embedded-linux ). Tbh I am still looking for something that was as nice as QtQuick on embedded devices, but with a permissive license.
Re:Qt Creator 7 Released
by joezydeco on Saturday March 26, 2022 @12:56PM
(#30813416)
I don't see many other options.
For 1 slint/flutter/lvgl expert in the field I can find 100 experts in React or Node. I try to design systems where it's easier (management translation: cheaper) to hire developers instead of making it harder. Or finding someone that claims to be an expert in Qt or Flutter and the best they can do is a flashier version of the examples off of Github.
Perhaps Flutter will survive Google and become something useful. But I really don't need to learn another language right now.
Slint does look interesting, however. Kind of feels like QML in a number of ways. But, again, GPLV3 or commercial so it's going to be a lot of work to move.
Re:Qt Creator 7 Released
by ldiracdelta on Saturday March 26, 2022 @09:04AM
(#30811476)
I've used qt professionally for years and have been slowly coming to the same position, but I'm wondering about going the other direction with performance and using lvgl.io for GUI only and all the backend server communication and business logic in rust. Lvgl.io is beautiful and it runs all the way down to esp32-connected devices.
Re:Qt Creator 7 Released
by saidinesh5 on Saturday March 26, 2022 @09:47AM
(#30811747)
With QML/QtQuick all/most of the ui is rendered on the GPU though. That leaves the CPU free to perform other tasks. Even at 1080p 60 fps your CPU usage sits under 10% on cheap iMX6 devices.
With lvgl it looks like it doesn't utilize that GPU much, so as you move to higher resolutions, your performance and fps drops hard. If you're doing video rendering etc... That will be a pain. (Take a look at CPU usage on their YouTube videos)
Re:Qt Creator 7 Released
by jollybean on Saturday March 26, 2022 @11:50AM
(#30812895)
QML comes with gigantically more memory usage and it's very inefficient at rendering text. If you want to render something that looks like a wikipedia page, prepare to pay a heavy price.
GPU were designed for graphics, not UIs, we can certainly make them work within constraints, but it's not always a huge andvantage, and has drawbacks. 99% of what you use a UI for doesn't really get that much advantage from the GPU.
That said, I think there is advantage there, we just have to learn how to use it well.
Re:Qt Creator 7 Released
by saidinesh5 on Saturday March 26, 2022 @12:12PM
(#30813089)
Oh of course. I was talking about embedded use cases (Automotive dashboards etc..), where it is just mostly moving around various textures, playing with colors/opacity etc... (Basically the GUI lvgl youtube videos are showing off: https://www.youtube.com/watch?v=EqTG-3NHHAs would be a lot smoother and less CPU hungry in QtQuick )
For desktop I mostly suggest QWidget based UIs for more than one reason.
Re:Qt Creator 7 Released
by ldiracdelta on Saturday March 26, 2022 @10:42AM
(#30812246)
Yeah, I think you would use other native technology for videos, but for simple UIs? If it can work on an ESP-32, it can work on x86 big-iron. ( I don't have a dog in this fight, yet, so tell me how I'm wrong.)
Re:Qt Creator 7 Released
by saidinesh5 on Saturday March 26, 2022 @11:44AM
(#30812852)
Oh it really depends on your use case and the hardware you use for embedded devices. If all you need are some buttons and some kind of static lists, lvgl should be fine too.
But for anything where you want things like smooth scrolling/higher resolutions you probably want to use the GPU.
For eg. A badly implemented "speedometer widget" was making our whole embedded GUI stutter at 15-20 fps and 100% cpu usage (which caused other problems like overheating, timing problems etc...). 5 lines of change to make the GPU do most of the work and we were back to smooth 60fps and low cpu usage.
At my last job, the requirements were like: you might as well directly target embedded linux socs instead of microcontrollers like ESP-32, because the price difference between them is not that much for the number of these devices we wish to sell.
Re:Qt Creator 7 Released
by saidinesh5 on Saturday March 26, 2022 @09:55AM
(#30811790)
The main problem with LGPLv3 is the anti-tivoization clause. That means you should basically provide the end user a way to replace the Qt libraries with their own. On embedded systems this can mean headaches for companies releasing commercial products.
Re:Qt Creator 7 Released
by IshKebab on Sunday March 27, 2022 @01:26PM
(#30822075)
I don't see why an audit would make any difference. If you're developing internal software you are free to use the LGPL version without revealing any code publicly.
And if you're developing external software there's no real way you can hide the fact that you're using Qt. They wouldn't need to audit you.
Re:Qt Creator 7 Released
by flohofwoe on Saturday March 26, 2022 @06:11AM
(#30810599)
QtCreator comes bundled with the Qt SDK, and that's dual licensed (LGPL vs paid). The Qt Company has been tightening the screws in recent years though, if you're a company and use Qt under the LGPL license, expect frequent audits and some 'pressuse' to switch to the commercial license even if your project is LGPL compliant.
Re:Qt Creator 7 Released
by flohofwoe on Saturday March 26, 2022 @06:14AM
(#30810621)
It's one of the oldest and most robust cross-platform C++ UI frameworks. The only caveat is that the company that's now behind Qt seems to have different goals than the (traditional) user community for the last decade or so.
Re:Qt Creator 7 Released
by saidinesh5 on Saturday March 26, 2022 @06:40AM
(#30810707)
I've used Qt for developing a few desktop apps, a couple of mobile apps and while working on a few embedded systems.
The good:
1. Their QWidgets library is very stable and mature for cross platform desktop applications and i can still recommend it very much. I don't think there's a good enough alternative to it tbh.
2. For embedded systems in certain sectors (automotive, house appliances etc..) their QtQuick (with QML) is almost like the defacto standard. It is kind of like flutter but with a much better GUI describing language and very nice integration with C++.
3. Their C++ libraries and tools are also kind of nice when developing non GUI applications (networking, cli tools etc..), but these days C++ ecosystem has much nicer alternatives. Qt Creator is still my fav. C++ IDE though.
The bad:
1. Using QtQuick for mobile application development is fine until it isn't. The ecosystem is a lot smaller than say flutter, react native etc... So you end up hand rolling various integrations yourself.
2. The licensing situation can be a bit of a headache when developing a commercial product. For eg. You cannot easily statically link your application with the open source offering, and you need to statically link when targeting iOS.
3. Licensing can be very expensive, even on embedded systems. LGPLv3 means you need to provide the end user a way to replace your Qt libraries and for many companies, that's a no go. So even today, i see a lot of companies still using the very old Qt 5.6 (when there was an LGPL v2 offering). If you're developing a desktop or Android application or an open source application, none of the licensing headaches should apply to you though.
4. With QtQuick, Qt Multimedia etc... things changed a lot during the last 5-6 years, so a lot of times the 3rd party libraries you find aren't that useful to you or are just half baked in the ecosystem.
I'd still use Qt for my personal projects, but with all the licensing headaches i see more and more companies trying other alternatives. If you want to try out, try out QML: https://doc.qt.io/qt-5/qmlfirststeps.html
Re:Qt Creator 7 Released
by joezydeco on Saturday March 26, 2022 @08:53AM
(#30811397)
QML has finally become useful and efficient enough that developing on it is...kind of fun, actually.
Sadly, like you mention, the rest of the ecosystem is languishing and the company's attention is elsewhere. Licensing has become a major headache (not just cost but terms) and I've grown tired of spending weeks and months trying to get it through management and explained properly.
Re:Qt Creator 7 Released
by IshKebab on Sunday March 27, 2022 @01:30PM
(#30822109)
It's by far the best desktop GUI toolkit. By a very wide margin.
The main downside is that realistically you have to use C++, and it doesn't run nicely on the web like e.g. an Electron app would (something like Slack for example).
Also QML is not very good - QtWidgets is much better unless you really need animations, but unfortunately QtWidgets is in maintenance mode.
Hmm, i could have sworn that years ago Qt Creator was free? But maybe i'm misremembering things...
Just that the Qt company lately has been trying everything to scare / annoy people into getting licenses, sign up for their online accounts etc... So they're just not advertising their open source offerings as much.
1. https://www.qt.io/download-open-source
All i can tell you is most of the small-medium sized companies i worked for over the last few years are still using the very old and outdated Qt 5.6 just to avoid the newer LGPLv3 license. In fact i haven't heard of anyone who purchased a Qt Commercial license to date.
We're never going to Qt6, the newer licensing terms are just too much for us. Calling v5 old and outdated is subjective - we develop 2D interfaces on Linux framebuffer and that's good enough for the task. It's a bit sad that Qt is focused on 3D stacks and particle effects and acceleration and - mein gott in himmel - I just got an email about in-app advertising coming to Qt6. While core features and deficiencies in the system have gone unaddressed for years, sometimes nearly a decade.
Sadly the next generation of our products will be going to React or Electron. So now we need to beef up our hardware and burn millions of unnecessary watts over the decades because we will need Node or some other backend server running on our little devices.
They've won, and I'm sad about it.
Tbh Qt 5.15 is still plenty good for most embedded Linux use cases. Just that organizations i worked with are stuck with Qt 5.6 (last lgpl v2 version?) And it was a pain to keep backporting fixes to it. The 3D stack rewrites were also unavoidable when trying to write cross platform applications because the underlying graphics stack changed. OpenGL isn't getting much support from the drivers and ANGLE was a pain for them to integrate/maintain apparently.
Qt 6 is available in LGPLv3 right? If you're already using 5.15, what would stop you from using Qt6?
Interestingly, flutter seems to be taking off even in the embedded world where QtQuick used to work really well. You might want to consider that if you're averse to electron. (Eg. Flutter-pi).
We're commercial distribution so we don't care about LGPLv3 for Qt. The problem is more about the previous contract we have in place with Qt that gives us some favorable terms. Qt wants us to drop that contract to go to Qt6, and we won't do it. Qt will get their customers on their subscription model eventually, and the rest will be learning how to write for embedded webkit. Like us.
On a purely personal/professional angle I won't use Flutter. I have a blanket policy of refusing to use any Google-developed project for embedded devices, including Android.
And yep. Relying on just Google can be a death sentence. I was hoping to use Android things for a quick demo last month only to find out that it is discontinued. What made me look at flutter was because companies like Sony are driving forward it's development on embedded space ( https://github.com/sony/flutter-embedded-linux ). Tbh I am still looking for something that was as nice as QtQuick on embedded devices, but with a permissive license.
So other than electron, what options do you see moving forward? All i see is slint ( https://github.com/slint-ui/slint/ ).
For 1 slint/flutter/lvgl expert in the field I can find 100 experts in React or Node. I try to design systems where it's easier (management translation: cheaper) to hire developers instead of making it harder. Or finding someone that claims to be an expert in Qt or Flutter and the best they can do is a flashier version of the examples off of Github.
Perhaps Flutter will survive Google and become something useful. But I really don't need to learn another language right now.
Slint does look interesting, however. Kind of feels like QML in a number of ways. But, again, GPLV3 or commercial so it's going to be a lot of work to move.
With lvgl it looks like it doesn't utilize that GPU much, so as you move to higher resolutions, your performance and fps drops hard. If you're doing video rendering etc... That will be a pain. (Take a look at CPU usage on their YouTube videos)
GPU were designed for graphics, not UIs, we can certainly make them work within constraints, but it's not always a huge andvantage, and has drawbacks. 99% of what you use a UI for doesn't really get that much advantage from the GPU.
That said, I think there is advantage there, we just have to learn how to use it well.
For desktop I mostly suggest QWidget based UIs for more than one reason.
For eg. A badly implemented "speedometer widget" was making our whole embedded GUI stutter at 15-20 fps and 100% cpu usage (which caused other problems like overheating, timing problems etc...). 5 lines of change to make the GPU do most of the work and we were back to smooth 60fps and low cpu usage.
At my last job, the requirements were like: you might as well directly target embedded linux socs instead of microcontrollers like ESP-32, because the price difference between them is not that much for the number of these devices we wish to sell.
It's not the same if you go commercial. See above.
Is Qt under LGPL 2.1? Were the changes so drastic?
More details: https://embeddeduse.com/2016/04/10/using-qt-5-6-and-later-un...
Qt from 4.8(?) To 5.6 offered an LGPL2 license too but after that it's mostly LGPLv3 i think.
And if you're developing external software there's no real way you can hide the fact that you're using Qt. They wouldn't need to audit you.
The good:
1. Their QWidgets library is very stable and mature for cross platform desktop applications and i can still recommend it very much. I don't think there's a good enough alternative to it tbh.
2. For embedded systems in certain sectors (automotive, house appliances etc..) their QtQuick (with QML) is almost like the defacto standard. It is kind of like flutter but with a much better GUI describing language and very nice integration with C++.
3. Their C++ libraries and tools are also kind of nice when developing non GUI applications (networking, cli tools etc..), but these days C++ ecosystem has much nicer alternatives. Qt Creator is still my fav. C++ IDE though.
The bad: 1. Using QtQuick for mobile application development is fine until it isn't. The ecosystem is a lot smaller than say flutter, react native etc... So you end up hand rolling various integrations yourself.
2. The licensing situation can be a bit of a headache when developing a commercial product. For eg. You cannot easily statically link your application with the open source offering, and you need to statically link when targeting iOS.
3. Licensing can be very expensive, even on embedded systems. LGPLv3 means you need to provide the end user a way to replace your Qt libraries and for many companies, that's a no go. So even today, i see a lot of companies still using the very old Qt 5.6 (when there was an LGPL v2 offering). If you're developing a desktop or Android application or an open source application, none of the licensing headaches should apply to you though.
4. With QtQuick, Qt Multimedia etc... things changed a lot during the last 5-6 years, so a lot of times the 3rd party libraries you find aren't that useful to you or are just half baked in the ecosystem.
I'd still use Qt for my personal projects, but with all the licensing headaches i see more and more companies trying other alternatives. If you want to try out, try out QML: https://doc.qt.io/qt-5/qmlfirststeps.html
Sadly, like you mention, the rest of the ecosystem is languishing and the company's attention is elsewhere. Licensing has become a major headache (not just cost but terms) and I've grown tired of spending weeks and months trying to get it through management and explained properly.
I assume you mean companies developing interfaces/applications for closed-down end-user systems like set-top boxes?
Sailfish OS was stuck on Qt5.6 for a long time because of this.
As far as UI programming goes, it's very slow moving. Once you get the right flavour chosen, it's not so bad.
If you are making an app for a Kiosk, like a ticket console, that's not going to change every day, Qt is a good choice, it's well supported.
For other things it's a tougher decision.
The main downside is that realistically you have to use C++, and it doesn't run nicely on the web like e.g. an Electron app would (something like Slack for example).
Also QML is not very good - QtWidgets is much better unless you really need animations, but unfortunately QtWidgets is in maintenance mode.