Qt 6.0
qt.io
qt.io
On the technical side, the qt quick desktop styling is intriguing. My main use case for Qt is for desktop applications and while qt quick is often recommended I usually go for qwidgets instead. 9/10 times I need a traditional interface with menu bars, forms and tables. While qt quick lets me make nice looking UI, I often need something that just works similarly to how a traditional desktop application works, looks be damned. Im curious if they'll manage to close that gap in qt6 but I'm skeptical which means I'll probably stay on widgets for the foreseeable future.
https://www.gnu.org/licenses/gpl-faq.en.html#LGPLStaticVsDyn...
I've used Qt for over 15 years and I've never once wanted/needed to statically link it since dynamic linking has always worked just fine for the type of apps I've worked on.
It feels like every six months they completely revamp the licensing program, and the LGPL version always seems to suffer from a corporate sword of Damocles
- For CLI apps, Rust has a better event loop, better language, more libraries, and is easier to deploy
- QWidgets seems like it's not "cool" anymore, and I don't feel like learning QML. I liked QWidgets because it was mostly the same from Qt 4.0 through Qt 5.0.
- The commercial side has no financial interest in adding cool new features to the LGPL code
- So how long will volunteers keep fixing the LGPL side, when their work is funding a business that does not help them?
- I'm waiting to see how Copperspice (A Qt fork that cuts off support for older C++ versions and uses STL and UTF-8 aggressively) turns out
About 10 years ago, Qt was my _jam_. I did everything in Qt. Games, CLI, GUI, IRC bots. I think I tried to build a Qt web server a couple times. For a kid who hated Windows and web stuff, it was my gateway to event loops and modern programming concepts. I just quit loving it. It's still in use at work, but I'm making plans to back out of it. Oh well.
Copperspice forked at the time of Qt 4.8 and has had since then a couple thousands commits from a dozen contributors - in the meantime Qt itself had literally tens of thousands of commits, bugfixes, new features, etc from hundreds of contributors
As far as I know, it's not 'indy devs' supporting the LPGL, rather the LPGL is merely a term of release of the regular, mainline branch. It's the 'same code'. Am I missing something?
It's been around for 7 years and is maintained by two people as opposed to a publicly traded corporation (Qt) with hundreds of employees. It has already turned out.
There is no alternative to Qt. It is the best in its class.
But you don't need it. You don't need Electron either. Just build a .NET application for Windows, a SwiftUI one for Mac, and a ncurses one for Linux. They can all share the same business logic code (if it has any), either via C ABI, IPC, or RPC. Your application will always be at the bleeding edge with the latest security patches and accessibility this way, as opposed to waiting for the next Qt/Electron release which is guaranteed to be later than the OS bugfix. Imagine if desktop OSes release, in addition to dark mode, a pink mode. Do you want your application to stand out as the ugly duckling?
Nurses as an alternative to a QtWidgets GUI app? I'm not sure you're serious.
I've been using linux both professionally and for personal use for over a decade and, with the exception of working over ssh, the thought of using ncurses apps over good old GUI apps is so outlandish that it doesn't even register in the realm of possibility.
Your comment sounds like a meme of how linux users are detached from the real world with regards to usability.
It seems really weird to me how "but teh licenz" is brought up every time with Qt, when Qt itself is available under the same licenses as all the other toolkits like Gtk, wxWidgets etc.
This doesn't quite apply for embedded development (as LGPL's Tivoization clause might start to bite), but 1.) neither Gtk nor wxWidgets are viable in that space anyway 2.) considering that other people here found that Tesla manages to ship their car firmware with LGPL Qt - well. Can't be that hard to comply with it. Also, 3.) while we're used to free tools and libraries for desktop development, it's much more common to pay for tools in embedded development.
Why would you say GTK isn't a good option for non-Linux use? And would you say that it is a good option for Linux?
You need something like MSYS2 to even use GTK on Windows, and I've looked at what it takes to package and distribute GTK applications to Windows users without MSYS2, and it's headache inducing.
When it comes to Linux, it's pretty good. Getting its GObject Introspection dependencies compiled is another story, though. I've always had to rely on my distribution's package manager to install them.
FOX is really fast and looks OK, but I don't think it's very actively developed, and binding to C++ seems like a pain. And I'm not sure it supports CJK input methods.
I looked at EFL out of desperation, but that's pure style over substance and the complete opposite of what I'd want.
Theoretically, the LPGL should enable commercial use, right?
Are there specific barbs in the wire that Qt has placed, or is it merely a situation of lawyers afraid of grey areas?
Pay for Qt or pay for developer time to maintain multiple versions of your UI. Your pick. Qt is probably cheaper in most cases.
My concern is that I don't trust Qt Company now to not change the rules on me later, or hike the price, etc. I would choose Qt for commercial solely because I already know it from building FLOSS apps. If I need to learn something else for FLOSS, I'm not going to stick with Qt. There's limited space in my brain for expertise and I want something that will meet all needs.
Qt is amazing and I love it, but an amazing thing I love but can't use/rely on isn't worth much.
CEF is geared toward native C++ and is probably more of a Qt alternative than Electron in that regard.
When I run command "ldd" on my Spotify GNU/Linux client binary, I see "libcef.so". And, I can see:
$ ls -l /usr/share/spotify/libcef.so
-rw-rw-r-- 1 root root 147980856 Sep 15 06:13 /usr/share/spotify/libcef.so
That's a big library!
What they have done in last year is to retreat to the minimum they need to do to comply. They can't stop distributing the LGPL version or alter the deal anymore.
Unlike what you hear you can make commercial closed source software and link LGPL binaries dynamically or statically, makes no difference. You just need to have to provide linkable object files to comply. Just stuff them into some /gpl_comply/ directory and be done with it.
1. When was this entered into
2. What there "good and valuable consideration" exchanged and what was it?
3. Are there any other projects in an agreement like this?
Edit: Great resource, still reading through it and the many links: https://kde.org/community/whatiskde/kdefreeqtfoundation/
It's not hard at all. You can add them to some directory with your app, or they can be behind some url, or you can mail them physically in a USB stick to anyone who requests them by mail or phone.
You just have to be able to provide them if somebody wants them. In reality nobody ever wants them. It's just some directory with gpl-stuff/ you add to your software.
How hard it is to have some binaries lying around?
You mentioned LTO. Don't the LLVM and GCC LTO implementations currently involve outputting compiler IR to object files, then running the optimization passes against the full collection of object files prior to linking? So they inherently collect all the object files together in a linkable form.
(Of course, it's probably more efficient to just dynamically link Qt and pay for a license if you want to publish for iOS.)
Absolutely when one looks at pure technical side. Their licensing however progressed to the point that feels like extortion to me.
Why would Cmake eliminate the need for Qt's moc? Cmake is a build system/makefile generator. You don't generate c++ from form files or Qt-annotated C++ files out of magic.
They do whatever is needed, mostly with commercial software, and then leave to home, where their hobbies are completely unrelated to coding.
In what concerns Qt 6, I care about the multiple 3D backend, C++17 and the upcoming QML to C++ compiler.
It seems like you somehow think paid shitty software was / is better than free shitty software. Mind that free shitty software has its upsides too.
And counterpoint: People don't hate intellij like they hate oracle or Qt. People hate takeover by suits.
Speaking of which, if eventually Google ends up buying them, lets see how much love is left.
We all know there's a dark matter of enterprise programmers, out of which a good portion is perfectly capable, but just doing it as work 9-5. But that's not what we expect to see on HN/Reddit/open source projects.
You seem to not like that dev tools are not a sustainable business today. That was kind of inevitable. Using paid dev tools alienates contributors in open source development, and students/3rd world can't afford them, and lot of paid tools are specialized to some domains (think SAP). Doesn't help that proprietary vendors try to lock down stuff and lot of rent seeking behavior (Oracle, qt company)..
Atlassian made some steps in lowering this barrier of entry, and built a pretty good business IMO, though not much developer specific.
If there's anything to learn, unless there's an app store like low barrier to entry platform for dev tools with student discounts, free trials etc.. people may learn paying for high quality developer tools.
Somehow a culture of people that feels entitled not to pay for their tools has sprung off, killing a whole industry that naturally only focus on enterprise customers.
Wth everyone trying to kill GPL and its derived licenses, this will eventually be a thing of the past, then everyone will just suck it up with the demo version, BSD/MIT license, or shell out for the commercial version.
Salivate over bullet points on a release announcement when we treat every update as maintenance to a core featureset that's been sufficient since Qt 4.8? Jump into a tangent about the meta object compiler on a release announcement? Talk about the translation system apropos of nothing?
The only things that matter here to me now are if the license details change, if they made breaking design changes or deprecated features.
For instance.
> when we treat every update as maintenance to a core featureset that's been sufficient since Qt 4.8?
Or discuss why this is true for 'we'.
> Talk about the translation system apropos of nothing?
How is that more nothing than license details?
It's annoying how many dump efficient UI design to chase the latest fads. We Vulcans cry.
On the contrary, I think companies are more willing than ever to pay for quality 3rd-party tools and software. The reality is that the Qt licensing costs are a bargain relative to time saved for enterprise customers. It's not even a question at this point.
The complaints usually come from people thinking of lean startups or selling hobby projects, where the licensing overhead is another non-trivial number on your cost of goods sold. Many of the complaints here would only realistically be a problem for someone selling a very small number (<100) of their product per year with very low margin, which is far more rare than people think.
Regardless, Qt still has a separate small business license with a different pricing structure: https://www.qt.io/qt-for-small-business
I've spent some time working on a desktop application I hope to sell, but I wont consider Qt, because I'm not even sure I will follow through and finish the product. When it's just a hobby class side-hustle, my first step isn't giving Qt $200 this month, and $200 next month, while I work on my side project for 2 hours a week after the kids go to sleep.
There is the "small business plan" which reduces it down to $500/year, which isn't outrageous, but it's still $500 for something I probably won't get that value out of because of the likelihood of the project ever finishing.
Instead, I'll find other ways to do it. If Qt was free under $X, $500 under $Y, and $$$ over $Y it's a much more persuasive argument. Unreal manage it :)
I don't think I've ever seen a Mac app which consisted of only one file. The whole idea behind .app apps is that they consist of several files.
I don't know of any applications whose scope would require to use Qt to come as a single file.
The installer (be it dmg, exe, pkg, whatever) will, but then it's not a problem with the LGPL.
I'm not sure how they can prevent you from transitioning from an open source license to a commercial license? You can develop your app for a year either as open source or privately without releasing anything, and then decide to purchase a license? Not sure if I'm missing something, but how does could they prevent this (legally or practically)?
(But you shouldn't. There is little need to distribute closed source software anymore. If you are shipping a binary with valuable trade secrets, then it won't be secret for very long. You can do server-side rendering of all the UI like all the large cap tech companies do then it won't matter if the client application at the edge is open source.)
1. Using Javascript. It's not a good language, especially without Typescript. And it's type system doesn't match C++'s well at all. For example you can't really pass uint64s to QML very easily. Apparently Javascript will be optional in 6.1.
2. The scene graph. A good idea but I'm pretty sure there's still no way to make custom QML widgets that contain text because there's still no public QSGTextNode (at least last time I looked into it). Here's people trying to do it in 2013: https://forum.qt.io/topic/24179/how-to-draw-text-in-qquickit...
I think they've pretty much given up on letting users make custom QML widgets - instead you have to use QPainter and it copies the resulting image across, which seems like a step backwards.
3. The encapsulation is really bad. I honestly never figured out the rules around widget ID scope because it seems like they are all in a global scope so all widgets can refer to any other widget (e.g. children can depend on their parents) which encourages spaghetti. Not sure if they're fixing this.
4. It's really hard to do transient widgets like dialogs. This is kind of the same as in React but it still seems like a step backwards from QtWidgets.
5. Lots of the QtQuick widgets are really lacking features compared to QtWidgets. It's like they got to the MVP and then gave up.
I haven't tried it for a number of years so some of those thing may have improved but I haven't heard about it. I get the impression that 90% of their income comes from car manufacturers using Qt for their software, which is why there is such a focus on fancy 3D UIs.
Again: This only affects the commercial version! Nothing changes if you're using the LGPL version.
See also: (German) https://www.heise.de/news/Qt-6-Abomodell-koennte-zum-Fallstr...
(Google translate/English): https://translate.google.com/translate?hl=en&sl=de&u=https:/...
https://www.qt.io/faq/tag/subscription
EDIT: You also need a license if you only use your software with the commercial Qt6 license.
Seems reasonable? As long as you're getting benefit from Qt by distributing software using it you need to keep paying for it?
Software is copyright literature under licence.
Why? Most businesses are not MS/etc. which have resilient multiple income streams. Many single-app companies either go under, or stop selling that app and so no longer update or support it.
A subscription model ensures that the developer always has a reliable app-specific income stream to justify investment & support.
I want options. Don't tell me what I want.
In any case, "options" sounds good, but it is precisely this short-term economic logic I am claiming many misperceive as being in their interest.
There are many instances of apps (, libraries, etc.) simply disappearing and being frozen in old versions because of no revenue stream against them.
You may "want" something quite different 2yr after you've invested a massive amount in using Qt, only for there to be no future versions and your app becomes uncompetitive with others which are using increasingly modern libraries.
The software subscription business is essentially a huge price hike masked by paying in installments.
>simply disappearing and being frozen in old versions because of no revenue stream against them.
It means that the new features in version X were not good enough to entice new buys or upgrades.
Subscription model is great - for the software companies. It's not a good model for consumers.
The current subscription model will end up being just like Fifa or Madden games, the same thing every year with minor changes because consumers are locked-in and have no alternative.
My JB subscriptions expire at the end of this month, if I don't re-up, I have to downgrade to 2020.1 versions and forego all the improvements and bugfixes in 2020.2 and 2020.3 (2020.3 is the latest release, which I'm currently using).
It's a good thing their products are top notch.
“The little known KDE Free Qt Foundation makes sure that Qt stays free and open-source. It guarantees that all Qt modules currently licensed under LGPLv3 must continue to be available under LGPLv3 in the future. This covers all modules from Qt Essentials and many add-on modules. If The Qt Company discontinued the FOSS version of Qt, the Foundation would have the right to make Qt available under the BSD license. This is a very powerful protection of free and open-source Qt.“
https://www.embeddeduse.com/2019/12/21/safe-guarding-the-lgp...
https://dot.kde.org/2016/01/13/qt-guaranteed-stay-free-and-o...
None of them will ever abuse that dependency to take all of your profit. No, sir.
Now you need a subscription to keep using your tool? You need permanent Internet access, to keep using your tool? You need t keep paying to access you files?
This is why Affinity Photo will probably end up taking more and more market share away from Adobe's products.
If you don't like it, keep using your old version under the old licence.
In most jurisdictions, buying a copy of Photoshop is the purchase of a good.
This may be how you wish things were, but not how they actually are.
Read any software licence and see what you are actually getting for your money.
You can try to find old licenses for CS6, sure, but at some point, but it's a very different purchase and licensing system from what they have now.
A typical proprietary software licence text is irrelevant when it comes to terms of ownership, transfer of ownership, use of the good etc. as the law applies and determines "how [things] actually are". A contract, let alone a unilaterally dictated licence text, is legally unable to take away certain rights the consumer enjoys.
I'm just imagining a scenario where I build something with a subscription library and then 5 years down the line they get acquired by some private equity firm and increase the subscription cost by a factor of ten. Now I'm faced with a choice of either paying license ransom or losing the ability to use all of my own original software and creative effort.
This is just cynical!
I'm not in love with "everything is SaaS," but I recognize that a lot of software businesses really want recurring revenue rather than a rush of orders -- many of which are lower-priced upgrades -- when new releases come out, then a trickle until the next for-pay release (which a subset of your existing customers won't upgrade to). And, in an era where a lot of people have come to see upfront prices of $99+ for applications as outrageously high -- and worse, have been trained by app stores to expect free upgrades indefinitely -- the old model may just not be sustainable.
> I for one appreciate products that evolve and improve.
And I do not. Software updates are a huge pain in the ass for almost no benefit to me
Both sides have their benefits, so to say one is worse than the other seems not right. It’d be nice if there was an option on which model you chose (for example, $5k/seat for perpetual single version or $300/month/seat for subscription), but alas, that’s not available.
> And I do not. Software updates are a huge pain in the ass for almost no benefit to me
Ah, but there is a benefit that you just don’t see: bug and security fixes. Your boss isn’t going to be happy if your company is hacked because your IT department didn’t want to spend effort updating (assuming that’s in the budget).
This obviously ignores 0-days, but there’s not much a downstream user can do there.
Take photoshop... I'm not a professional graphic artist, and I have need for PS maybe once a year at most. Depending on the importance of that need and my desire to own the software it might justify a onetime purchase. But with their subscription model it just isn't worth it.
One of the things I liked about the old model was it put professional tools into the hands of amateurs if they were willing to save up their money. Now, instead, you pay a yearly tax that is not insignificant for no real gain
But the flipside is that $10/month is a lot easier to stomach for most of the general public than a one time cost of $300+.
It’s why there’s monthly payment plans for everything expensive. $40/month for a (24 month) lease-to-own phone is a lot easier to budget for than a one time $900+tax purchase. But when I go to BestBuy or wherever, I have the option to choose the payment plan or upfront. Not with software.
But yes, with subscriptions, it would be cheaper to buy it outright, but not everyone has that luxury. We can argue all day about whether people need Photoshop or whatever, but the best option (IMO) is to allow subscription and purchasing and let the user choose. Then those who can afford the $300+ up front can spend that while those with little disposable income can spend $10/month.
Works for JetBrains.
While the FAQ says 'Maintenance is included', they phrase that as 'access to the latest version' and 'support'. That doesn't place any legal obligation on Qt to fix bugs.
Qt can leave Qt6 to rot, never update, and still get money from subscriptions. Or Qt could be busy with Qt7, and in order to receive said fixes one has to significantly invest and port the application.
Access to support means even less - they could automatically close all tickets and still techinically comply.
You're welcome to argue QT saves more time than its license costs, but I didn't find that to be the case. Also cmake sucks, no bazel support, lame. I have found the QT value proposition questionable at best and have largely abandoned it. YMMV.
New features, sure, ask money for that, fair enough.
Which is why I would be OK with Qt 6 having a new license model, as long as all bugs fixed in 6 are backported to previous stable (at least) ie. 5.x, without 5.x getting relicensed.
No, but neither does the version of Qt in the already compiled and being distributed software, and yet even if no more development is done and no new version of Qt is used, it sounds like the licensing fee still applies.
Maybe to you. To me it reads like: do not ever touch this tool to do anything that has even remote chance to go commercial.
This allows price increases with major changes.
"Free support for life" isn't sustainable, and striking the balance here is hard.
Image-Line (makers of FLStudio) have been pulling it off for a couple of decades now...
"Celebrating Lifetime Free Updates for over 20 years" -- right on their front page
Development, distribution and usage are different things. I don't have much of a problem with selling a subscription for the development environment, but for distribution and usage you should only need a (perpetual) runtime license, which you usually buy in bulk. AFAIK that's how QNX does it, for instance.
Why would we have to pay multiple times for the exact same piece of software, lines of code?
Also given that software is by default sold with defects (as it is "impossible" to write perfect software), it makes sense that the selling price includes, at least, future minor patches. I would consider them as the vendor covering for its own manufacturing defects (because that's what bugs are).
I agree however with charging for new features. That's fine and makes sense.
Yes. I dont quite understand what's the fuss here. So someone please explain to me like I am five.
QT 6 decide to charge money, in this case a commercial license for commercial usage. i.e If your software is making some money using QT6, you will have to pay. Otherwise you can happy use the LGPL License. Seems fair. You might disagree with its pricing, depending on your business model, And may be that business model would not be a good match / fit for using QT6.
But so far all the comments seems to be against the company charging anything. Why?
Nope, you can make a commercial closed-source application that links against LGPL-licensed library. Also, the source code model has nothing to do with "making money". For example, Qt is certainly "making money" with their source code, but did you know that the WebView component in Qt is actually COPIED from Apple's Safari WebKit source code? Yes! So they are STEALING Apple LGPL source code and making money with it! And what more, Apple Safari certainly runs on iPhones and Apple if someone is certainly making some big $$$!
You seem to have misunderstood what changed. No, Qt did not change the licensing terms to charge for "making money" with Qt. They just made more of their previously free support functions exclusive to paying licensees.
So in this case, you'd have to package the software so it doesn't include Qt (in an RPM/deb) so it pulls in the system Qt? Or on Windows, provide them a link so they can download that component manually?
Also, businesses do pay for support as insurance; say tomorrow Windows patches something that screws up a bit of Qt your product depends on, what are you going to do? Waiting for a reply on a random mailing list and hoping someone has time to fix it, is not going to cut it.
No, the reasonable model (as someone how's shipped commercial libraries and researched the market) is that subscription gates support and future updates. So as long as the subscription is active you get updates, patches and support. Once it passes you're kept on old version. It's fair to the seller (keeps a steady revenue stream and most customers will want to keep the subscription for updates anyway) and fair to the customer (they can't be easily extorted with price hikes and their software doesn't get sabotaged by external subscription pricing).
Why expect good faith and dependability with the precedent of their decision to screw KDE?
I gave up ongoing fees for software components I use to develop with Borland Turbo C++. I am not going back now.
My interpretation is that I could switch to LGPL Qt for client software and keep my source code if I dynamically link to Qt.
I may be too strident as a commercial developer in my anti-LGPL 3 rhetoric, but my cloud-apps have been avoiding it assiduously. Client side, I should look for this kind of flexibility.
A PWA? Sure. But a native app with seamless integration? No way.
Instead of Windows, macOS, and various Linux flavors, now you've got Windows, iOS, still macOS (for now), various Android versions, and various Linux flavors (including Chrome OS). Good luck!
(Depending on the type of app, you might also want or need to support various embedded devices or game consoles. I guess QT doesn't help there though.)
https://developer.apple.com/documentation/apple_silicon/runn...
I don't understand your point. In your opinion what's a mobile app that's "backwards compatible with desktop", and what makes that app not a desktop app?
Windows still owns the desktop but they mimic Apple. Also since ca. 2008 the population under 30 has been mostly on Apple. Those people will get older and replace the generation that was brought up on Windows.
The desktop OS would expose the same platform SDK as the mobile OS. (Needless to say, apps depending on the accelerometer, selfie cam, etc. for major functionality would not work.)
This is already the case with the latest generation of Macs. No speculation necessary. It's possible and has been done. Also Chromebooks can run Android apps.
What remains to be seen is when (not if) Windows would mimic what Apple did, as they have been doing for the past decades. I suppose the easiest way would be to run Android (and Google Play) on WSL. Android and Google Play can run on x86–no need for emulation. How clunky this turns out is how willing MS and Google are to work together.
In the end there will just be two platforms you would have to support as a GUI applications developer: iOS and Android.
It's amazing how many people in this thread are not only defending this, but talking about how great this licensing model is.
I'm guessing all these people have startups (or ideas for startups) that rely on gouging customers with never-ending subscription models.
I personally think subscription licensing models is the worst thing to happen to the software industry. I miss being able to purchase and own copies of software. I recently stopped using any Adobe apps and moved my entire workflow over to the Affinity suite. I prefer to support developers who don't rip-off their consumers
I'm an embedded Qt licensee. I don't get any of this at all and now I need to spend hours I don't have with my legal team understanding what the impact is. I suppose we're staying on 5.15 for the lifetime of the product I haven't even launched yet.
I mean, it's a given every time Qt pops up on HN a good 50% of the thread is sucked up with licensing questions and information/misinformation. Getting kind of tired of it all.
What I do recall is that if you let the development license lapse, you're locked into whatever version was latest at the time. So I can't upgrade Qt on any in-field device updates which is usually just fine, especially if you managed to get to a decent LTS version, but any Qt bugfixes after that are off limits.
That is correct. These distribution licenses for shipping Qt with devices were never perpetual in the sense that you can ship as many devices with Qt as you want. But this was a separate license, which AFAIK you also could buy in bulk, which is totally OK. As far as I understand it, you now need a full subscription for distribution with the danger that prices may change any time.
On my 8 GB computer, I used to run in the same time :
- VsCode (700 MB)
- Teams (600 MB),
- PostMan (350 MB !? WTF)
- WhatsApp (consumes almost 600 MB after 1 hour !)
I had to switch to the web version for the last 3...
In contrast, running 25 torrents with qBitTorrent: ~25 mb.
It is just to illustrate the fact that Electron, after all, might be a real problem for native app.
Running with 32 and looking for 64Gb laptop
Having 2Gb is pretty limited
And If I need 32GB and 16-CPU to run 5 or 6 apps...
Asimov was right after all :)
The mantra was : "Yes, pretty slow but don't panic, in a couple of months better hardware will fix that" !!
Hardware matters more than people
Do you really wants to limit your folks in such way for something like $150?
My personal laptop has 8 GB, is 10 years old by now, I am not limited in anything I care about.
I live in France and there are 4GB here too: https://www.ldlc.com/informatique/ordinateur-portable/pc-por...
hell, in one of the biggest online retailers, the second biggest category is 2 gigabytes (number in parentheses is the number of laptop models available with that ram amount)
I would be super happy if I could run several similar engines under one main process, I don't care as much about security concerns when I'm developing my own software, and would not mind some "intraprocess security holes" if I could reduce my memory footprint like that and then turn it off when I want the "security holes" to be closed again.
My experience developing Qt applications for ~20 years (mostly for Windows and Mac) is that it is very well supported on Windows, but less well supported on Mac. I really wish they would concentrate a bit more on making it look more native and be less buggy on the lastest version of macOS, rather than adding new features.
I list a few current issues with Qt 5.15 on macOS 11.0 here: https://successfulsoftware.net/2020/12/07/issues-with-qt-app...
And dialog widget layouts never look quite right on macOS.
I am not aware that Qt 6 fixes any of these issues. I hope they get fixed soon.
https://www.boost.org/doc/libs/1_63_0/doc/html/signals.html
(probably already superseded by more modern C++ constructs)
We were always going to use the commercial version so licensing wasn't a major problem, no worse than any other commercial library.
Nice to see someone on HN trying out StarLeaf by the way.
I love Qt. For all of its warts, it is wildly powerful and doesn't get anywhere near the appreciation it deserves. With that out of the way, don't consider it for new commercial projects unless you're cool with being bled dry every step of the way by The Qt Company. As wonderful as it is, The Qt Company (either by design or ignorance) keeps expanding its expensive and confusing licensing model, and it doesn't look like that is ever going to get any better.
(ps. Most people lamenting the price of Qt have no need for Qt, should not buy Qt. If you have never heard about Kanzi or Telerik, you are not in the market)
I said __embedded__
[1] https://github.com/flutter/engine/blob/080fbcb1759e5916f0d6c...
I'm an entrepreneur with 6 guys working for me. 4 of them write embedded software, 1 uses Qt. I pay for Qt because cost/value is right. I don't develop any more software than I have to. I get a product, I can buy consulting with reasonable price.
Currently, you're exactly right. Google is using Flutter for some of their embedded products, but it's going to be a long time before it's anywhere near as plug-and-play as Qt for the average developer.
The future of Flutter is looking quite promising, though. It's worth keeping an eye on.
Aren't this paid for by the customer which might be priced into the product or for your consulting services?
Maturity and the breadth of the surrounding ecosystem, for one. Flutter is looking very promising long-term, but it's going to take some time to evolve past a mobile app framework.
Qt is most widely known for the UI framework, but it actually has far more functionality under the hood. Qt's core target audience values those features. Most of the people who see Qt as a simple UI framework don't.
Like the parent comment said, most of the people who are complaining about the licensing costs are on the wrong side of the Qt value proposition. They should use simpler, freely available tools like Flutter or Electron.
Kanzi is a cosmic horror in comparison to Qt in terms of low level bugs, which you cannot do anything about.
Kanzi tries to differentiate as a purpose built built HMI environment where you get UI+hardware IO+readymade apps, but sucks greatly at being it. Hardware support is where you don't even try using anything, but reference hardware.
I know nothing of the product but investment analysts say it's the only competitor in embedded.
Qt company is publicly listed for-profit company with zero interest in open source. Their business is growing fast and their stock is up 700% in last 3 years.
Qt is contractually obligated to to provide LGPL version for the core library forever. Recently they just retreated to minimum requirement their legal agreement with KDE foundation requires. Yes, Qt the company does not want to serve those who use LGPL license, but that's just small number of extra hoops for free product you don't have to pay for.
Source: the copyright headers here: https://chromium.googlesource.com/chromium/blink/+/refs/head...
I know they recently provide 'small company license' and ~500usd/year is justified as long it's just hobby project if only your as a dev. The moment you reach $250k as a startup and have to hire few devs and pay $5k/year per each developer is making this less affordable. On top of that if you focusing on mobile devices (android/ios) probably you would need to have Felgo license (to cover some Qt limitations) which is crazily even more expensive.
At this point in few years Flutter, ReactNative, Unity, Unreal Engine and Electron will be slowly stealing more of Qt market.
https://www.qt.io/hs-fs/hubfs/image-png-Nov-09-2020-06-37-27...
If you want something closer to Metro, you can use Qt Quick and https://doc.qt.io/qt-5/qtquickcontrols2-styles.html#universa.... But Qt Widgets does not ship with a Metro-like theme.
Newer Windows 10 apps have Fluent design, including acrylic effects. I don't know if Qt Quick 2 supports that, but I'm not optimistic they've updated the appearance to match.
WinUI sort of has fluent, but it is extremely inconsistent. When should things be rounded vs squared? It’s completely inconsistent internally.
Even if Qt wanted to go fluent they’d have a hard time finding any concrete examples to work off of. I can’t think of any “fluent” apps that are consistent with themselves, consistent with the design system, and not breaking major rules.
Sounds like an opportunity.
https://perezmeyer.blogspot.com/2020/08/stepping-down-as-qt-... https://lists.qt-project.org/pipermail/development/2020-Augu...
(Source: Used to work for Nokia)
EDIT:
(Source2: https://www.qt.io/pricing)
(which is a shitty thing to do when you're not a mom&pop shop but a company like https://news.ycombinator.com/item?id=25344677)
Just like my answer to the other comment, there are a ton of "perfectly reasonable" things that one can do, that are still shitty behaviour.
That's like when someone leaves free books for anyone to take, you'd take one but never put another one for other people. You're not breaking any laws or rules. Still shitty. Especially if you have enough money to build a whole freaking library.
Like, anyone can go to a food bank charity to have a free meal. If you have a 5-digit monthly salary, that is still a very shitty thing to do, even if you and everyone else plays by the rules.
1. Could easily afford it, as you say
2. Presumably aren't releasing their software as Free and Open Source
Why? That's the whole point of LGPL, it doesn't matter how big you are, so long as your users can replace your copy of Qt with a modified copy you can use it under LGPL.
(genuine question, I'm doing a bit of market research in this area)
1) Personal License - free if <50k annual revenue
2) Startup License - keep current price (500usd/month) but
a) allow 1 month subscription commitment instead of paying 1 year upfront
b) when subscription not get extended you should still be allowed to distribute product that is not updated
c) if you payed for 1-2 years of subscriptions and cancelled subscription after 1-2+ year, you should be able to keep using the version of Qt the moment when you first signed for .
3) allow Startup to choose another licensing option. Instead of paying upfront licensing fee, just allow paying annually 5% of revenue from products that keep using Qt.
Qt5: https://doc.qt.io/qt-5.15/qtmodules.html#gpl-licensed-addons
Qt6: https://doc.qt.io/qt-6/qtmodules.html#gpl-licensed-addons
This thread seems to indicate that Win10 style is also possible which would make sense since it uses native elements https://forums.wxwidgets.org/viewtopic.php?t=46574
What about the Tk/Gtk family of products?
Sciter supports same platforms as Qt and uses H/W acceleration (DirectX, OpenGL) in 10 years or so.
Everything that you can do in Qt you can do in Sciter.
Just in case: Sciter.JS that is in alpha/beta now is aimed as a direct ElectronJS replacement as it uses standard JavaScript (ES6). It already supports MithrilJS and Svelte applications running transparently as in SciterJS as in browsers. React (PReact in particular) out of the box support is coming. The main goal of SciterJS is to provide compact (5mb runtime) desktop runtime environment that can use components and designs made for Web.
Yes and no.
Yes, it allows to create declarative UI.
And no, not just declarative UI. It supports immediate mode graphics for example and use of native UI components including existing HWND, GtkWidget, NSView, etc. based ones.
As of other non UI parts of Qt... Sciter does not provide all that beauty, yes. Host application (C/C++, Go, Rust, etc) that uses Sciter UI layer is free to use whatever libraries/runtime they prefer, and usually each runtime is superior to what Qt provides.
That's the cornerstone idea of its design - it is embeddable UI layer. While Qt is a foundation (a.k.a. framework) similar to MFC, Gtk and other frameworks.
At early stages of C++ having things like CList & Co did make sense. But not in recent 10 years. Yet I am silent about Go, Rust, Python and other languages / runtimes that use Sciter.
Sounds super agressive to me, highly unprofessional.
Doomed if you do, doomed if you don't.
So yes, at a certain scale it is a dichotomous choice. Ergo stock images and press-release speak.
* * *
I'll give you an example, right now:
Why "dichotomous"? You could have used "binary" and sounded much less pompous, without any special effort on your part.
See how "funny/interesting" vs "cringy" works on the internet? :-))
Dichotomous was chosen because it was the correct word, not for any other reason.
Regarding the last part, it was just a meant to be a funny jab, don't take it too seriously. I was just trying to prove, using your own words, that on the internet it's really easy for anything to turn into a binary choice.
You chose a less known word, a "fancy" word, and I pretended to be offended by it.
Just like Qt tried to add what they considered some funny lines to their examples, and several people here considered those lines "cringy".
Unless everything you say or present is bland, you can't really escape criticism. That's why many companies don't bother for these situations where being funny/interesting doesn't matter and they just "lorem ipsum" their way to the bank. There's nothing to gain, only to lose.
https://docs.microsoft.com/en-us/lifecycle/products/windows-...
https://docs.microsoft.com/en-us/lifecycle/faq/extended-secu...
Moreover Microsoft just released .NET 5 with Windows 7 support.
https://github.com/dotnet/core/blob/master/release-notes/5.0...
> The Extended Security Update (ESU) program is a last resort option for customers who need to run certain legacy Microsoft products past the end of support.
Windows 7 is EOL. ESU is meant to run legacy applications for some time after OS EOL. By definition, legacy applications will not use Qt 6.0.
That's not correct, unless you count google chrome (and many other programs) as a legacy application.
I mean when you think about it Microsoft is doing pretty much the same thing during the two periods. It's just that past a certain point they are sure you would have moved on if you could and now they can price gouge you. It's a clever way to do pricing differenciation.
It's pretty clever no matter how you frame it. Deciders get a clear deadline, but once they inevitably run into the deadline completely unprepared they still have a way to get another three years transition period. Everyone is happy, and MS is a bit richer.
Microsoft not-supporting Windows 7 doesn't mean you can't use it. That means it keeps working, you can use it as you always did, but they won't make (and push down your throat) any more patches.
A library/app not-supporting a particular OS/version usually means you actually can't use it. And there often is no serious technical reason.
Still, I think it makes sense that Qt 6 requires Windows 10. New development and legacy support are always at odds.
If customers want new software, then they must accept that it has modern requirements. Same situation for continued development and evolution of existing software.
In situations where support for legacy systems is more important than new development, then existing applications can just continue to use Qt 5. I don't see how it would make sense to migrate to Qt 6 in this situation.
KDE, and Gnome are both toolkits flagship projects.
Look at how much developer share KDE gained, and Gnome lost in the time since Gnome 3.0.
The reason is they had few very toxic "thought leaders" who alienated countless developers, and they did not have courage to give them a well deserved kick to the butt, not even an idea that doing so would be right.
Now, if they want to recover, even if they will give a kick to Lennart & Co., how would they do so if they have no normal devs left to deliver that kick, and carry on the project after?
Tk is nice, but also small and very limited in scope, which is great for some use cases, but less so for others. It's like the difference between a desktop environment like GNOME or KDE, which do much more than just "manage windows", and a more basic window manager like i3 or the countless others that are out there.
But without Android support, their chances are at least halved.
Some of these things are pretty hilarious to watch from the outside. For design/UX considerations, Gnome 3 hasn't supported desktop icons in a while now -- so a bunch of distributions ship it with one of the (several) desktop icon extensions, none of which are very functional, along with a bunch of other extensions, like Dash-to-Dock. So every time an unsuspecting user gets a work-issued Ubuntu laptop, you get to watch them trying to figure out how to drag a folder to the desktop, or pin a folder to the dock or whatever.
FWIW, though, KDE has a pretty wide install base in some popular distros, e.g. Arch: https://pkgstats.archlinux.de/fun .
https://www.suse.com/releasenotes/x86_64/SUSE-SLED/15/ https://documentation.suse.com/sled/15-SP2/
You may be thinking of openSUSE.
React (and Svelte, etc.) have completely changed the way we build apps, and typical QT & GTK apps are still being written in a retained mode approach with signals & callbacks like 20 years ago.
QML is quite interesting but it doesn't feel immediate mode enough like React & Svelte.
Flutter, JetPack Compose, Crochet, Fidget, Revery, MakePad, Svelte, etc. all those bring so many new ideas. GTK or QT feel so complicated and hard maintain in comparaison
> www.qt.io (→ 149513g13.secure0130.hubspot.net) is being blocked by NoTrack Tracker Blocklist.