Hacker News new | ask | show | jobs
by arinlen 1354 days ago
> I got laughed at and waved off when asking for the budget needed to buy/licence QT stuff.

This.

Regardless of Qt's technical merit, it's licensing automatically takes it out of the table of most of all potential projects.

https://www.qt.io/pricing

5 comments

They work really hard to hide this, but they do have a LGPL license that applies to most of the framework, and only some parts (charts, etc.) are GPL/commercial only. For those old enough to remember, this license issue was at the heart of the Gnome/KDE schism.

From their site <https://www.qt.io/download-open-source>: LGPL – Any modification to a Qt component covered by the GNU Lesser General Public License must be contributed back to the community. This is the primary open source Qt license, which covers the majority of Qt modules.

If you're not familiar, in practice, the difference between GPL and LGPL is that LGPL does allow dynamically linking a library with a closed source program, without requiring that the program also becomes GPL/LGPL. This is compatible with most development as long as you either don't modify Qt, or are ok with those modifications becoming open source.

LGPL3 is a no-go for a lot of embedded projects, as OP is probably finding.

The anti-tivoization clauses mean you need to provide a way to install user-built Qt libraries on the target device. You might think that's not a big deal until you go to work for an automotive or medical company and meet up with the massive wall of lawyers that tell you no fucking way.

But those projects should have the budget for a real license, so that's not a real issue.

The problem is typically people not bothering to understand the L in LGPL.

> But those projects should have the budget for a real license, so that's not a real issue.

You're missing the whole point.

It's irrelevant whether projects should have a budget or not.

The whole point is that there are plenty of alternatives that do not require thousands of dollars per year*developer, nor do require lawyers to audit releases.

As others said, there aren't that many alternatives that work as well as Qt in a crossplatform way or in the embedded space.

On the desktop you can go Electron, but you then pay penalties in performance that not everyone is willing to endure.

In the embedded space there is little or no alternative.

There isn't so many alternatives that works so well in the embedded space. (in the kind of device where a web browser is not an option)
Now I'm curious what you think are the "plenty of alternatives" for embedded that are obviously a better choice.
Not if you also want decent performances
The anti-tivoization clause only applies to consumer devices. There is no issues with using the LGPL in a medical device since the customer is usually commercial.
If you have more documentation to back that up I'd love to see it. From my discussions with the walls of lawyers, the interpretation varies by jurisdiction.

The actual LGPLv3 text has zero instances of the word "commercial" or the word "consumer" so interpretation is all we can go by.

Search again. The LGPLv3 is just referencing the GPL. The GPLv3 paragraph 6 define in which conditions you need to provide the installation information, and explicitly say it is only for user product:

> A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling.

http://radar.oreilly.com/2007/03/gplv3-user-products-clause....

The FSF felt that consumers needed protected from tivoization but commercial users did not since they had the financial resources to fight for themselves with contract law.

A commercial customer has the same right as everyone else using LGPL software.
They do not. http://radar.oreilly.com/2007/03/gplv3-user-products-clause....

The FSF felt that consumers needed protected from tivoization but commercial users did not since they had the financial resources to fight for themselves with contract law.

> They work really hard to hide this, but they do have a LGPL license that applies to most of the framework (...)

No, LGPL also excludes projects from most commercial software.

Also, keep in mind that this is not a choice between Qt with a paid license or Qt with LGPL. It's a choice between Qt and any other framework, and licensing alone makes Qt a very poor choice.

Which frameworks though ? WxWidgets, GTK and Electron need compliance with LGPL, and I don't know any other that would be comparable in terms of features with Qt
Feature-wise, wxwidgets and gtk+ are a joke compared to Qt.

Electron is not just a joke but a fat pig.

Truth is there's nothing comparable to Qt in the cross plataform world today, unless you are willing to take the risk of Flutter, JUCE, some web technology (which would be regarded as obsolete by the time you ship your product), etc.

Sure, I agree haha. They are the closest but they aren't comparable (although likely for GTK+ one would mention the entire glib stack which is I think comparable to Qt in scope)
The whole glib would be just a subset of QtCore. Not comparable.
OP is talking embedded, so things like TouchGFX.

https://www.st.com/content/st_com/en/campaigns/touchgfx-adva...

That's perhaps an advantage that Flutter has over Qt.

See: https://github.com/flutter/flutter/blob/master/LICENSE

The API span of flutter is ridiculously small compared to Qt. Does it even have a proper tree view? I only see stuff comparable to Qt Quick there: https://gallery.flutter.dev/ ; nothing to make a complete desktop UI.

e.g. if I look at what I can find for docking widgets (and I have hardly ever seen an actual useful software for content creation without a whole set of dozens of docks): https://caduandrade.github.io/docking_flutter_demo/#/ like, is this a joke?

Yes, Qt is the best for certain types of desktop UIs and it has a proven-track of years. However, if you're a small business, what options do you have --realistically-- that come with friendly licensing and without having to shell out big bucks?
I see it diferently, when I want to enjoy the work of Qt devs as free beer, my work is also free beer.

When I want to get paid for stuff I develop with the work of Qt devs, then like in other profession, I pay the creators of tools I get money to put bread on the table.

They also need to buy bread, so it is only fair we share the same conditions.

Yes, but sharing the cost with lots of other developers would them enable to bring the price down.

For me, it seems like Jetbrains vs. Borland/Inprise/Codegear/Embarcadero. Jetbrains always had reasonable prices, but a huge amount of customers. Embarcadero tries to milk the few customers that remain.

Qt is like Embarcadero.

Embarcadero Delphi and C++ Builder are used for legacy stuff, it's maintenance mode and Idera (owners of Embarcadero) are following the same model as Broadcom, Microfocus and others: milk enterprise customers because they are too invested and they are not going to rewrite those applications. I don't think anyone has started any meaningful project in Delphi or C++ for at least 10-15 years.

Qt on the other hand is used a lot and new projects are started with Qt everyday. Qt is not Embarcadero.

They are still quite strong on the German, market and Microsoft is still clueless in making anything that can beat C++ Builder, the best they could do was C++/CX and internal politics killed without any regards for the customers using it.

C++/WinRT is a joy to use for anyone whose maximum of productivity was using Visual C++ 6.0 for COM development, exactly the same Visual Studio tooling. /s

So plenty of enterprises do new projects in C++ Builder, and Delphi comes for the ride.

https://entwickler-konferenz.de/

I know of a company in Belgium that does laboratory automation software in Delphi, because they don't want to use languages like C and C++, and .NET lacked the low level coding and native compilation that they want.

For them it isn't legacy, rather from their point of view the alternatives suck, and they will keep at it as long as they can.

*C++Builder, not C++ in general
That is the usual speech, yet when they offered cheaper packages about 10 years ago, everyone wanted free beer, hence why they turned into those that actually pay.

When everyone wants free beer, in the end they get Electron.

> When everyone wants free beer, in the end they get Electron.

Which uses webkit, which is LGPL :D

It seems all the people here who complain about QT's license never bothered to read the license of anything else.

Well, it's their business, so fair enough. But that means that lots of projects can't and won't even look into using Qt.
> it's licensing automatically takes it out of the table of most of all potential projects.

maybe consider licensing that "potential project" under a license that allows you to use the OpenSource Qt version?

Seriously! That licensing is a feature for the public, not a bug. Make your project open source.
> Seriously! That licensing is a feature for the public, not a bug. Make your project open source.

It's ok for activists to feel that free software is the solution to every problem in the world, but back in the real world there are projects for which open source is not an option and parroting activist mantras is not helpful.

So in the real world, you don't get to have that nice gui library for free if you aren't willing to reciprocate and offer your own source for free as well. How terrible.
What you're describing is obligations under GPL'd code, not LGPL'd code. Qt is mostly LGPL'd code.
So why expect the library for free then? Saying open source is not an option but not being willing to pay for the licencing cost of the "commercial" Version is quite hypocritical no?
Not at all hypocritical. The people who authored the code release most of it under LGPL, the intention of which is to allow closed-source dynamic linking against the LGPL'd library. I didn't decide this. The users didn't decide this. The people who actually wrote the code decided this.
But people still complain that using it for free is too restrictive and want static linking and freedom to modify the sources and not share the changes, all for free.
Or... comply with the LGPL with regard to dynamic linking and the other LGPL requirements and don't use any GPL'd components.
You can use almost all of QT even in close source, provided you only link dynamically.
I'm pretty sure you could even link statically, as long as you provide the necessary .a / .o files to rebuild against a different version of the LGPL library. But of course dynamic linking is the safer approach.
I believe you are correct.

You'd have to provide a way to relink.

I seriously can't see a judge ever being able or willing to understand what's at stake here in case this ever gets to court.

Woof, those prices are so enterprise.
It's used a lot in cars…
I am aware. But I have a certain problem with enterprise pricing and the idea that so much money is put into software in all aspects of a company. I work in the car industry though, so we have much much more expensive applications.