[Development] Deprecation/removal model going into Qt 6

Kevin Kofler kevin.kofler at chello.at
Mon Jun 3 01:27:26 CEST 2019

Manuel Bergler wrote:
> I fully disagree with the sentiment in that blog post. If you don't
> want to port, fine, but then also use whatever version of Qt you were
> using before and don't try to use the latest and greatest.

But that is a luxury we simply do not have in the Free Software world where 
Qt gets upgraded system-wide for an entire distribution and all applications 
are expected to get ported to the latest version whether they actually need 
it or not. (Even if the distribution ships old versions of Qt as 
compatibility libraries, applications depending on them get frowned upon and 
sooner or later end up dropped from, e.g., live CD/DVD/USB media, so that 
the media has to ship only 1 version of Qt.) You are thinking purely from 
the perspective of a proprietary commercial application where the developing 
company just picks a version of Qt and bundles it. This is simply not how 
things work for a large section of the Qt ecosystem.

> Technology evolves, deal with it. With hardware no one seems to have the
> expectation that you can take your 10 year old desktop computer and
> just replace the CPU with a state-of-the-art version.

But we do have the expectation that the CPU will still run our 10-year-old 
code without having to recompile it. Modern CPUs are backwards-compatible 
with restrictions (e.g., you cannot use 16-bit code from a 64-bit OS, at 
least not without dangerous hacks) all the way to the 8080 from 1974, and 
fully backwards-compatible all the way to the 80386 from 1985! Qt does not 
even come close to that level of backwards compatibility.

As for just replacing the CPU without having to replace all the other 
hardware, that used to be much easier in the past, where socket architecture 
did not change so frequently, and where there were also "overdrive" 
solutions for new CPUs on old sockets. This has been deliberately broken by 
hardware vendors as a means of lock-in, to force you to buy at least a new 
motherboard (including a new chipset from the CPU vendor, so extra profit 
for them) along with your new CPU (and then that, in turn, may force you to 
replace some more hardware due to incompatible interfaces).

But even in hardware, there are good examples, such as USB, where you even 
have forward&backwards compatibility: you can use USB 1 or 2 peripherals on 
a USB 3 port or the other way round. It will automatically negotiate the 
best possible speed for you. This is how things should always work!

> Why should software be different? Why should everyone have to pay just so
> some people unwilling to invest minimal effort to maintain their 10+ year
> old code-base can use the newest version of Qt?

Because it allows entire software distributions to ship only one version of 
Qt, the latest, and have all their software work on it no matter what 
version each upstream developed with.

        Kevin Kofler

More information about the Development mailing list