[Development] Windows 7 support will be dropped in Qt 6

Corey Pendleton Corey.Pendleton at qt.io
Mon Jun 15 19:01:37 CEST 2020

Hi Max,
I get the issues as you present them. Why drop support for the 2nd most popular OS version out there?! This also doubles the effort required for Qt developers who want to target older systems with Qt 6 apps. That is certainly a pain point! There are couple more thoughts I've had after reviewing your excellent metrics.

1. Currently Win 7 usage is declining at a little over 1% per month based on the articles you shared. This indicates that by the time Qt 6.2 (the next LTS) is released next year, Win 7 usage will most likely drop below MacOS, and further, it will be mostly gone by the time 5.15 LTS support ends (IF trends continue). This leads me to believe that the majority of Qt app developers could safely branch, or else delay migration to Qt 6 for a few more months in order to give the majority of their customers time to move with the industry. As a cross-platform framework, we do have to consider the "most common" usage scenarios first. But I can tell you understand this.
2. It may be completely possible for customers to build a version of Qt that still works with Windows 7! The key point would be that the onus moves to the Qt developers who need this support to do their own build. This is extra effort, but there seem to be only a few particular APIs that Qt is looking to remove support for. If an app doesn't use these APIs, this would not be a problem. Or you could revert a few patches and do a custom build for Win7.

Ok, 3 thoughts. 😊
I think it's worth noting in addition to what Eddy shared, the Qt team did a pretty decent job of responding to the concerns raised on that QTBUG in spite of the fact that it was not intended as a feedback mechanism. We recognize that any big shift in support causes pain for the development community. Some more than others. And yet, in order to move forward we must all face the pain of evolution (to wax a little philosophical 😉 ). Making the majority of these breaks happen with a Major version release makes the most sense as it consolidates this pain into one point in time hopefully making the OVERALL experience of developing and maintaining Qt projects over time, as smooth and painless as possible.

Thanks again to all our great developers for all the insightful discussion shared here!
Corey Pendleton
Senior Solutions Engineer, Americas

-----Original Message-----
From: Development <development-bounces at qt-project.org> On Behalf Of Edward Welbourne
Sent: Monday, June 15, 2020 5:35 AM
To: Max Paperno <max-l at wdg.us>
Cc: development at qt-project.org; interest at qt-project.org
Subject: Re: [Development] Windows 7 support will be dropped in Qt 6

Max Paperno (13 June 2020 03:28) wrote:
> I would restate my objection by pointing out again [1] that Win 7 is 
> still the 2nd most popular desktop OS in the world, with 3x more users 
> than all MacOS versions combined.  Never mind Linux, which is on par 
> with Win XP users (the previous "known good" Windows version prior to 
> 7).

How many of those Win 7 users are routinely upgrading the software on their systems ?  Given that they're not updating the O/S, it seems reasonable to presume that they are, at least, somewhat conservative about upgrades; they don't want the shiny new features the folk you dismiss as "cool kids" are upgrading for, so why would they care if the Qt apps they're using are upgraded to Qt 6 ?  Surely such conservative users are likely to *prefer* to have such updates as they do take in contain only security fixes - i.e. the sorts of change that happen on an LTS version of Qt, rather than the radical change that comes with a new major version.

For reference, at home I'm one of those conservative users - albeit on Linux - using Debian/stable and often sliding into Debian/old-stable rather than update, just because there's a newer stable available.  I like the stability and don't care so much about the shiny new things; so don't try accusing me of looking down on those who stick with the tried and trusted things they have; and don't try telling me that software developers should make sure their newest versions work on those stable systems, because I - like many such conservative users - don't want shiny new versions, I only want security fixes to stable versions, sacrificing shiny new features in favour of reliability.

Meanwhile, at work, I use shiny new things so that I can deliver shiny new things to those who *do* want them; and I fix bugs in old things so that those who want stability get it.  Because software developers should cater to what their users want - some of them care more about stability, others about shiny new things.  In the end, giving the latter what they want today is the way to ensure the former get what they'll be wanting in a few years time (once the shiny new things have been tried, tested, fixed and made stable, while those using them have found which of them live up to their shininess and which fade too fast to be worth caring about).  So we have stable versions and we make new versions that break old stuff in order to deliver new things - and stay relevant.

> Any software publisher not catering exclusively to the "cool kids"
> with the "latest and greatest" mentality would be shooting themselves 
> in the foot by dropping Win 7 support at this point.  That's millions 
> of potential users.  Depending on one's market, of course.

And Qt won't be dropping support for Win 7, it'll still be supported by 5.15, which will have the types of change that conservative users and sysadmins are willing to take in on the machines whose O/S they're not willing to upgrade.

> I would bet Qt could save a lot more resources by dropping MacOS/Linux 
> support entirely.  Not saying that's a good idea, but dropping the 2nd 
> most popular OS instead doesn't make any sense to me either.

Any saving is only meaningful in terms of what it lets you get instead.
A platform with more *users* isn't necessarily a platform with more downloads of software previously absent from that platform, or upgrades of software previously in use.  A platform whose users routinely upgrade their O/S is also a platform on which one can reasonably expect users to routinely upgrade their other software.  Numbers of users are only relevant via their contribution to numbers of downloads / installs / upgrades.

> Yes, anyone needing to support Win 7 can still use Qt 5, which is 
> what's going to happen for several more years at least.

... and that's what most users of Win 7 are likely to want; the only updates they want are security fixes.  If they wanted shiny new features, they'd be upgrading the O/S, too.

> I though one of the goals for Qt 6 was quicker adaptation than the Qt
> 4 -> 5 migration.

That's adaptation by the app developers in their "new release" versions; we understand perfectly well that app maintainers (in so far as *they* care to continue supporting legacy versions of any O/S) also *want* to have a stable version, whose security and stability they know well from experience; which means sticking with LTS versions of the libraries they use.  Just as we have our stable branches and our shiny new version, app maintainers who care about supporting legacy platforms used by conservative users have their stable versions, that they maintain atop stable versions of their prerequisites.

> From this move, and everything I've seen discussed on the devs list 
> lately, I just don't see that happening. Seems like one breaking 
> change after another (even if each individual one is relatively minor, 
> they add up quickly).

If we *never* allow ourselves breaking changes, we'd still have a nice stable product that worked great on an O/S or two from the last century.
Qt would thus be irrelevant.  So we have major versions, at which we are prepared to make breaking changes, though we do try not to over-do them, and to make them easy to sort out, for those they affect (e.g. by ensuring the compiler will tell them what they need to change, as far as possible).  Fossils get buried; if you want to stay current, you have to be ready to change and leave some of your past behind.

By the time the current Win 7 users are interested in apps that (are stable and) make use of the shiny new features of Qt 6, there shall be an LTS version of Qt 6, in use by the (by then) tried and tested versions of apps catering to conservative users; and the versions of their O/S more recent than Win 7 shall have seen a few years of use in the field, so they'll be able to see which of those is stable enough for their needs, thereby allowing them the benefits of the newer O/S and app versions at only a modest price in risk from the upgrades - some of which, at least, shall be compensated for by the fact that they'll be back (for a while) to using a supported version of the O/S.

> There was plenty of negative feedback left on QTBUG-74687, but it was 
> all either ignored or dismissed. Why bother even asking people's 
> opinion if the decision had already been made?

Just had a quick look at that issue; and I note that it *didn't* ask your opinion, it set out to evaluate how practical it would be to drop Win 7.  It wasn't a popularity contest; and such a Jira ticket would not be a statistically meaningful way to conduct one - way too much selection bias.  The folk who want shiny new features, and are willing to upgrade the software on their computers to get them, aren't watching our Jira for mentions of a legacy O/S, so that they know to jump in and say what they think of dropping it.

Development mailing list
Development at qt-project.org

More information about the Development mailing list