[Interest] What you don't like about Qt

Roland Hughes roland at logikalsolutions.com
Fri Sep 23 12:50:24 CEST 2016


Tried replying to this earlier, but didn't see the content come up so 
will toss in my 0.0003 cents on this thread.

 >>- C++ is difficult, Qt lacks quality bindings for mainstream languages
- moc (on build systems that don't automate this step)
- FUD around licensing

Well, Digia has itself to thank for FUD. I contacted Digia right after 
they took over Qt for a project I was working on. Yes, yes, we 
definitely needed a license. It was $5000 per developer and there were 
no royalties. Oh, no, you as a consultant cannot buy a commercial 
license and develop a product for a client, whoever's name is on the 
product must own the license. Less than two months later "owner" of the 
product contacted Digia directly. Yes, yes they definitely needed a 
license. It was many thousands of dollars more than what I was quoted 
AND they had to pay royalties. The bickering went back and forth for a 
while. Keep in mind this project was a front end for a service. Anyone 
could download the software but you had to subscribe to the service. 
Finally the person actually funding the project who was rumored to be 
Bill Gates' next door neighbor, contacted some lawyers who contacted 
Digia. No, No you don't need a license, go with God my child.

Not an isolated case. Client after client tells the same story. The 
licensing team at Digia must be paid on commission because _every_ use 
requires a license when you first contact them.


What I don't like right now about Qt is the 3-legged arthritic dog 
running in deep snow called QML. It was a bastardized concept when first 
conceived and it hasn't gotten any better. Nokia started that concept 
which explains why they are non-existent in the phone market today.

The desperate grab for licensing revenue has them trying to make Qt all 
things to all people serving multiple masters. It will fail as 
everything which came before failed. You have to focus on one or two 
things and do them well. Remember how Java was going to cure cancer and 
end world hunger being used within every embedded device on the planet? 
The VM got so bloated trying to be all things to all people it can't 
even FIT on the embedded targets which were its original target. Don't 
tell me about how well it works on a Pi with 1-2Gig of RAM. It was 
originally targeted at single CPU (not multi-core) embedded processors 
with under 512Meg of RAM. Before you quibble there are millions of those 
things shipping in products every year. Not long ago I worked on such a 
device. It will ship 5-7 million in the next 3 years because it is the 
replacement/upgrade for multiple devices, one of which has an installed 
base of 10+ million globally.

 >> FUD you say? From what I see, IPTV industry is massively switching 
away from Qt because LGPL3 is incompatible with clients' requirements.


A great many reqs hitting my desk are switching to OpenGL and straight 
C++ because of this attempt to squeeze licensing and royalties out of 
the general public. I highly suspect the LGPL3 move was done to help 
squeeze the orange.

Given the current push for licensing revenue Qt will not be a marketable 
skill for consultants or employees within 3 years. NOBODY will pay 
royalties, period. Many will pay for reasonably priced development 
packages. Some will pay for support/maintenance. None will pay royalties.

 >> * The goddamn 4.8 documentation still popping up prior to any other in
google search.

I actually find that really handy. There is a _ton_ of 4.8 development 
and support going on.

 >>* Features being QML-only instead of being usable from C++. I like coding
in C++ (but I agree it's hard).

That should __never__ happen. It screams lack of commitment to the C++ 
world.

Some features not really cross-platform (e.g. in QtMultimedia, 
QAudioDecoder does not work everywhere, same for the 3D audio classes 
when there is no OpenAL).

That is a true violation of Qt culture, at least as I understood it when 
I started with Qt. The whole philosophy of cross-compile-and-go is 
violated there. This brought down many other tool sets over the decades. 
Remember Zinc? Cross platform between MAC, Windows, DOS and OS/2. Then 
it wasn't quite so cross, then it wasn't stand alone, Wind River 
consumed them to build their own proprietary framework.

 >> On the other hand you consider waiting periods of 3-4 months for a 
Qt release already as problematic for your way of working. How does that 
fit?

Releases in general are a problem. This is another one of the multiple 
masters Qt is trying to serve and failing for both.

_Most_ serious embedded projects want one proven and stable release. 
This is why you still see so many people hitting 4.8 documentation 
keeping the link high. Due to regulatory and testing requirements some 
of these systems can take up to 7 years before they can legally sell the 
first unit (think surgical robot and clinical trials.) During that time 
period the tool set cannot change. Heck, I posted a link in here to a 
contract looking for Qt 3.3 developers which was less than a month old 
not too far back. Once a tool set is chosen it cannot be changed without 
starting much of the regulatory and testing process over again.

The "disposable" world, cell phone apps, Web stuff, etc., wants the 
latest and greatest bleeding edge. The skill level in that world has 
gotten so shabby many can only use scripting "tools" which place a 
massive burden on both processor and RAM, dramatically shortening 
battery life.

At some point in the very near future Digia will have to determine if it 
is going to serve script kiddies or serve the C++ embedded market. If it 
doesn't the market will end up deciding for it.

Over the past 5 months I have seen at least 3 C++ OpenGL reqs in my 
inbox for every C++ Qt req. Most of these are coming from sites which 
used to send out C++ Qt reqs. The situation has gotten so bad people are 
once again started to work with polyForth.

http://raspberryalphaomega.org.uk/2013/02/03/memory-map-thoughts-for-a-bare-metal-system/

I haven't seen polyForth since the 80s but it's coming back.






More information about the Interest mailing list