[Development] Deprecation/removal model going into Qt 6
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.
More information about the Development