[HN Gopher] Do Not Sign the Qt License Agreement Unchanged
       ___________________________________________________________________
        
       Do Not Sign the Qt License Agreement Unchanged
        
       Author : LorenDB
       Score  : 147 points
       Date   : 2024-09-16 18:08 UTC (4 hours ago)
        
 (HTM) web link (burkhardstubert.substack.com)
 (TXT) w3m dump (burkhardstubert.substack.com)
        
       | synergy20 wrote:
       | "ten thousands of companies have built fantastic products with
       | it"(LGPL Qt) -- any data to back this up? I doubt it myself.
       | 
       | the license mess at Qt is why I never touched it over the years.
        
         | dubcanada wrote:
         | Doubt what? QT is very popular. Just look at video game
         | launchers, Battle.net, EA Origins, all use it. VLC, teamviewer,
         | telegram, tesla UI, etc all use it. I can list about 100
         | different apps without even trying.
        
           | anthk wrote:
           | Google Earth (sadly propietary), and I wish KDE/QT Marble had
           | bindings to display Street View _data_ as 3D projections.
           | 
           | Also, Virtualbox...
        
         | wormlord wrote:
         | Anecdotally I can name 2:
         | 
         | https://slint.dev/success/sksignet-evcharger#story
         | 
         | https://www.qt.io/blog/2015/12/15/ableton-push-qt-in-music-m...
        
         | nabla9 wrote:
         | Qt is amazing business. Somebody is buying. Double digit growth
         | rate year after year.                 - EUR200M net sales
         | - 1.5M developers,        - 3,500 commercial customers       =
         | EUR150 per developer/year       = EUR60,000 per customer/year
         | - EUR2.2B market cap.
        
           | nottorp wrote:
           | Well, it's easy when you're the only decent [1] cross
           | platform UI library left on the face of the earth that does
           | not instantiate a browser. Also the only option to get a lot
           | of infrastructure pre done for embedded projects.
           | 
           | [1] My friends who still do Qt whine occasionally about
           | quality going down, but it's not like they have other
           | options.
        
             | throwway120385 wrote:
             | These guys were pretty good when I used them:
             | https://www.cranksoftware.com/storyboard.
        
               | joezydeco wrote:
               | I used to look down on Crank like it was the next coming
               | of Flash Lite, but after finishing a project in QML and
               | realizing most of the heavy lifting was connecting the
               | Javascript components to business logic C++ code running
               | underneath through their clunky interface methods... it's
               | pretty much the same thing.
               | 
               | And I bet Crank will actually run on a Cortex-M3.
        
               | not_the_fda wrote:
               | Crank doesn't scale. The project is a binary file. You
               | can't have multiple people developing screens. Its fine
               | for small projects, anything big and it falls apart.
        
               | CamperBob2 wrote:
               | "Get a quote." Cue Bugs Bunny: "Nooooo."
        
           | bigfatkitten wrote:
           | "Someone" in this case is almost the entire automotive
           | industry, among others.
        
       | bsenftner wrote:
       | That license is, in my opinion, why wxWidgets is still around,
       | despite wxWidgets looking like 90's desktops.
        
         | Pesthuf wrote:
         | For me the main issue with wxWidgets isn't that software made
         | in it looks dated - that's fine, at least it's not mobile first
         | on desktop, with huge margins and whatever those new Windows 10
         | date pickers are - but that the development experience feels
         | like it's straight from the 90s.
        
           | wiz21c wrote:
           | and it's definitely inferior to Qt. Sure, for 80% of things
           | thy are mostly on par (provided you can bear the 90's look).
           | But after that, there's a world between the two.
        
           | dubcanada wrote:
           | wxWidgets is an abstraction of different presentation layers,
           | QT is a presentation layer. They focus on completely
           | different layers.
        
         | ryandrake wrote:
         | I remember Slashdot arguments from all the way back in 1998
         | about the Qt license--over 25 years ago! Kind of astonishing to
         | realize that controversy around licensing has been with this
         | company for most of my adult life. To the point where when I
         | see "Qt" the first thing that comes to my mind is "License
         | Tomfoolery."
        
           | treyd wrote:
           | I don't see why people lose their minds about the
           | "tomfoolery". It's very clear what the Qt company wants, and
           | how that's good for everyone. If you want to use Qt, you have
           | to support the free software movement either directly (by
           | making your code foss) or indirectly (by paying for the non-
           | LGPL use and supporting Qt).
        
             | nottorp wrote:
             | > If you want to use Qt, you have to support the free
             | software movement either directly (by making your code
             | foss)
             | 
             | That's the problem. No matter how many times Digia
             | threatens you, the LGPL does not require you to make your
             | code open source.
             | 
             | You're either confusing the L and non L GPL licenses, or
             | you remember the situation from before Nokia bought Qt.
             | Trolltech Qt was indeed GPL (without the L) plus commercial
             | and what you said would have applied. However, it does not
             | apply now.
        
           | anthk wrote:
           | Imagine a world were GNUstep was pushed instead of GTK. Today
           | GIMP would be rebased into Cocoa and made multiplatform with
           | ease. It would be the GNUstep Image Manipulation Program.
           | 
           | Even legacy systems could be running a GNUStep desktop thanks
           | to having multiple settings: a modern one a la OSX/Etoile;
           | and another one with classical NeXT widgets without fancy
           | effects.
        
         | anthk wrote:
         | Heh, a lot of wx/c++ software has been ported to QT for obvious
         | reasons.
        
       | rectang wrote:
       | > _All these companies have in common that they didn't read the
       | Qt license agreement thoroughly and they didn't evaluate
       | alternatives to the QtDC license. They only have to blame
       | themselves for their calamity._
       | 
       | Well, no. I'm allowed to think that the Qt company had something
       | to do with it, even if you always have to be on guard when
       | negotiating or signing legal agreements.
       | 
       | I'd counsel small businesses who do not have infinite time or
       | legal resources to prefer Open Source products because evaluating
       | the legal risk is cost-effective compared to evaluating
       | proprietary alternatives. It's similar advice to what you get in
       | this blog post, even though I'm not so cynical as to think
       | "companies gonna evil" is a universal truism.
        
       | dtquad wrote:
       | Big companies like Autodesk and Tesla are using the LGPL version
       | of Qt without paying a cent to the Qt company.
       | 
       | It was a business mistake by the Nokia in 2009 to offer the non-
       | commercial version of Qt as LGPL. They should just have continued
       | using GPL.
        
         | ronsor wrote:
         | Well, they keep making the commercial license worse, so if Qt
         | were GPL, companies would probably just use something else.
        
         | johnny22 wrote:
         | isn't that at least partially due to the kde agreement?
         | https://kde.org/community/whatiskde/kdefreeqtfoundation/
         | 
         | >> The core libraries of Qt (Essentials) and all existing LGPL-
         | licensed Qt add-ons must continue to be available under the
         | LGPLv3.
        
           | dtquad wrote:
           | The original Qt-KDE agreement from 2000 was GPLv2.
        
             | johnny22 wrote:
             | might wanna add some context as to how that's relevant to
             | the current time frame and situation
        
         | nottorp wrote:
         | > It was a business mistake by the Nokia in 2009 to offer the
         | non-commercial version of Qt as LGPL.
         | 
         | I don't think so. At the time I'm sure their goal was to have
         | Qt as the development platform for all their phone hardware in
         | time, while the profit would have come from phone sales. Using
         | LGPL would have encouraged adoption by all developers.
         | 
         | What they didn't know in 2009 was that their hardware business
         | will collapse. Or be collapsed.
        
         | thebruce87m wrote:
         | I'm no expert, but this link says that you have to include
         | install instructions:
         | 
         | https://www.tldrlegal.com/license/gnu-lesser-general-public-...
         | 
         | How are Tesla using it? If it's in their cars, how do they
         | comply with this?
        
         | jdboyd wrote:
         | I worked at a small company that used Qt using the LGPL version
         | of Qt with paying a cent to Qt. I thought we should probably
         | pay for it, but the terms of the commercial device license made
         | that unbearable.
         | 
         | While Autodesk is a big company, I could see trying to use a
         | commercial licence as impractical for them. If they tried, what
         | would it mean for their no cost editions, what would it mean
         | for their plugin developers, what would it mean for their
         | customers who do custom development on to of it? I think the
         | paid licenses would be a disaster in all cases.
        
       | aftbit wrote:
       | >Clause 11.3.2. The developers must also delete all installed
       | copies of commercial Qt tools and Qt libraries. Qt customer can
       | keep some developer licenses to continue the support of their End
       | Customers. Bug fixing is OK. Adding new features is not OK.
       | 
       | Jeez I'd hate to be the engineer who has to explain in court that
       | my change was a bug fix and not a feature improvement.
       | 
       | Why do people even buy QT Commercial? LGPL is a very easy license
       | to comply with. Are there better tools for commercial users or
       | something?
        
         | ghosty141 wrote:
         | > Are there better tools for commercial users or something?
         | 
         | Some software components are only available via the commercial
         | license (QtQuick3D is a big one, Qt3D is _very_ barebones and
         | you basically have to do everything via shaders). Also you get
         | "support" which can be nice for new developers but doesn't get
         | you very in-depth technical answers, at least from my
         | experience. Booking support time/workshops directly via KDAB or
         | Qt to adress specific issues is a better investment than paying
         | the commercial license just for that.
        
         | ndiddy wrote:
         | >Why do people even buy QT Commercial? LGPL is a very easy
         | license to comply with.
         | 
         | Qt is used a lot on embedded devices (i.e. car infotainment
         | systems, smart TVs, smart appliances, etc). Complying with
         | LGPLv3 means that the user must be allowed to reverse engineer
         | the product and upload a modified version of the software to
         | the product. This blocks practices such as firmware signing, so
         | a lot of companies would rather pay for Qt than comply with
         | LGPLv3.
        
           | spookie wrote:
           | GPL 2 with the Classpath/Linking Exception? Still, not many
           | do this.
        
           | riedel wrote:
           | Why would you need to allow modifications the binary und er
           | LGPL? You will need to ship the source of qt and all mods you
           | made to it, but that is it. Or am I missing sth?
        
             | bramblerose wrote:
             | You also have to allow the end user to make changes to the
             | LGPL software running on the device.
        
             | seba_dos1 wrote:
             | Yes, you're missing the ability for the user to install and
             | use the modified code, which is one of the main things that
             | LGPLv3 introduced over LGPLv2.1.
        
           | Rochus wrote:
           | LeanQt still has LGPL 2; never saw a need or advantage to
           | switch to more recent versions.
        
           | azalemeth wrote:
           | That frankly makes me just wish it was legislated to be true.
           | Sigh. Reverse engineering iot devices that are supposed to
           | help you shouldn't be a necessary step but it looks like it
           | increasingly is...
        
       | ghosty141 wrote:
       | Tangential Qt rant:
       | 
       | After having worked with Qt (QML) on a daily basis (and quite in-
       | depth, from using the scenegraph api to creating controls that
       | with complex touch interfacing) I have to say I wouldn't pay a
       | dime for the stuff you get with Qt. And even what they sell is
       | almost never even close to worth it.
       | 
       | The underlying technology is pretty good, so the Qv4 engine, the
       | OS-abstractions (sockets, networking etc) and so on. But all the
       | library code ontop can be _very_ hit or miss.
       | 
       | For example, they introduced new ways of handling touch events
       | (DragHandler, TapHanderl, PinchHandler etc. etc.) which work
       | GREAT! But they lack any way to stop propagation of events
       | leading to them becoming utterly unusable if you have any custom
       | "popup" things. There are also a lot of bugs with them which
       | haven't gotten fixed in years even though they cannot be worked
       | around. Paying for the product doesn't seem to even get you any
       | further in that regard.
       | 
       | Using the open source Qt is the best option in my opinion, worst
       | case you buy support sessions to adress specific problems but
       | that's about it.
        
         | dubcanada wrote:
         | I mean every UI software, even the ones built into the
         | different OS's has bugs like these. So what is the alternative?
         | Throw Chromium into the code and build the UI with HTML and C++
         | backend? JUCE or some other UI package?
         | 
         | There really is not a ton of other options.
         | 
         | I think for most companies, paying for QT and maybe a few extra
         | for bug fixes as needed makes sense. And lets you tone down the
         | hardware expenses that say Chromium would require.
        
           | ghosty141 wrote:
           | It obviously depends on your needs, if your software needs
           | complex controls, responsive layouting and tries to achieve a
           | smartphone-type UI, then yes I using chromium is the way to
           | go with a c++ backend that does the heavy lifting.
           | 
           | Qt has a big advantage if your content is rather static and
           | you can just top-down layout everything via anchors and
           | rather fixed positions. But in those cases you also generally
           | don't use complex controls that layer ontop of each other.
           | 
           | In my opinion it should be communicated quite clearly that
           | QML is very good for "small" embedded UIs like for general
           | home appliances, but if you are planning to create a rather
           | complex application with demands like responsive layouting,
           | custom data structures, interfacing with existing apis, then
           | you far better off just using chromium with a custom backend.
           | That has far less UI-breaking bugs.
           | 
           | Qt accidentally COMPLETELY broke lighting in Qt3d:
           | https://bugreports.qt.io/browse/QTBUG-100402
           | 
           | That's something I find completely unacceptable and I haven't
           | encountered something that application-breaking in chromium
           | (yet).
        
             | zerr wrote:
             | Or just use Qt Widgets? Yes, the default sizes and styling
             | might not be suitable but these are easily and fully
             | customizable. The one disadvantage is that Widgets is not
             | hardware accelerated.
        
               | ghosty141 wrote:
               | Widgets seem far more robust and tested but from what
               | I've gathered pretty suboptimal for touch-first UIs and
               | more modern design.
               | 
               | For the desktop I would 100% use Widgets over QML.
        
           | lukeh wrote:
           | Flutter is another option for embedded.
        
             | joezydeco wrote:
             | Google continually lets the embedded community down. You
             | can promise this time won't be the same, but I don't trust
             | them anymore.
        
           | tempcommenttt wrote:
           | If youre a python dev, pygame is an often overlooked option,
           | it's quite nice if you're targeting a specific screen
           | resolution. I'm using it in production....
        
       | ogoffart wrote:
       | (Shameless plug) If you're looking to go away from Qt, you can
       | check out Slint https://slint.dev Being inspired from QML, Qt
       | users should feel at ease. The license model is hopefully less
       | constraining than the Qt one.
        
         | duped wrote:
         | I played around with it for awhile but the generated code was
         | awful for compile times. Have you looked into writing a proper
         | interpreter instead of compiling to Rust, or optimizing the
         | generated code for compile times?
        
           | ogoffart wrote:
           | Yes, we'd like to improve on that: https://github.com/slint-
           | ui/slint/issues/4128
        
         | bb88 wrote:
         | GPLv3 only. Qt at least has an LGPL option. So it seems more
         | constraining.
        
           | ogoffart wrote:
           | There are 3 license: 1. GPL 2. Royalty-free (free of charge
           | for desktop) 3. Paid license (which we hope is less
           | constraining than the Qt commercial one)
        
           | drpossum wrote:
           | That's a lot more than "seems" if it's GPL. That is "you need
           | to release your source code entirely under GPL if you even
           | link to this"
        
           | kelnos wrote:
           | I think GP's point was that slint's commercial licensing is
           | less of a minefield than Qt's, and the terms are
           | straightforward and reasonable.
           | 
           | (I haven't verified this; this is just how I read the GP's
           | comment.)
        
       | phkahler wrote:
       | One thing both for and against GTK as an alternative to Qt is
       | that Qt is not just a GUI framework, it's an application
       | development framework. That means if you depend too heavily on it
       | and later want to switch to GTK, you'll have to rip up a lot more
       | than just your GUI code and you'll find that GTK doesn't provide
       | alternative to those other things. IMHO GTK being limited to the
       | GUI is a good thing and my main complaint is lack of respect for
       | API stability as a key feature.
        
       | Decabytes wrote:
       | TBH for the GUI work I do, Flutter has been fantastic. Really
       | great developer experience with hot reload and hot restart even
       | on Linux. It's a great technology and I think more people should
       | give it a try
        
         | jdboyd wrote:
         | How is flutter when I already have an extensive c/c++ code
         | base?
        
       | ugh123 wrote:
       | At what point do companies consider Android Open Source Project
       | (AOSP, non Googled), primarily using Apache 2 license, over QT?
        
         | throwway120385 wrote:
         | AOSP is an entire operating system with a GUI layered on top of
         | it. Qt is a relatively straightforward tool for building
         | embedded and desktop GUIs that happens to also have some cross-
         | platform library support built in to ease the construction of
         | these GUI applications.
         | 
         | It's like asking whether fish can breathe benzene when they are
         | out of water.
        
           | joezydeco wrote:
           | To be fair, Qt also needs a POSIX API running underneath it
           | just like AOSP does. So you're still on Linux for embedded
           | devices.
           | 
           | I've tried building an embedded product with AOSP that isn't
           | a phone or web browser. It was a massive pain in the ass. I
           | hate the JNI.
        
       | Rochus wrote:
       | I prefer to not sign this agreement at all (not even the
       | contributor agreement) and recommend anyone asking not to do so;
       | everything I need from Qt was there when it was made LGPL by
       | Nokia. Today I work with LeanQt which still has the LGPL 2
       | licence version which is easier to handle (especially for
       | embedded systems) than the more recent ones.
        
       ___________________________________________________________________
       (page generated 2024-09-16 23:01 UTC)