[Development] Qt 5 types under consideration for deprecation / removal in Qt 6
Kevin Kofler
kevin.kofler at chello.at
Sun Jun 9 00:00:27 CEST 2019
Giuseppe D'Angelo via Development wrote:
> In other words, the advantages of keeping the Qt equivalents start to be
> (seriously) questioned. We're therefore left with the question of what
> to do with these equivalents.
>
> * We could play the catch-up game, but that requires a development
> investment that is simply not there any more, and is even questionable
> (is it the job of people developing Qt to rewrite algorithms widely
> available elsewhere?).
>
> * We could move the Qt equivalents into a "support library", maybe with
> deprecation warnings, maybe without. I'm not sure of the traction of
> this idea these days, but IIRC having "Qt4Support" was frowned upon when
> Qt 5 was being shaped. (Thus QtAlgorithms was left in QtCore, deprecated.)
>
> * We could just deprecate and tell people to migrate away. That's kind
> of the whole point of this thread, and comes with all the annoyances,
> and people reimplementing them downstream because they still want the
> convenience of a qSort(vector) over std::sort(vector.begin(),
> vector.end()).
>
> * We could keep things where they are, supported, thus offering the
> easier APIs; but simply reimplement them on top of the "upstream"
> equivalents. (Ignore the possible ABI break.)
There is one option missing:
* We could just keep the Qt equivalent as is, without adding the features
of the STL equivalent if there is no manpower to port them to the Qt
equivalent. Developers using the Qt version are happy with the Qt version
as is, and those that are not can always go and use the STL. There is no
point in deprecating or splitting out those classes, they should just
remain in QtCore where they belong.
> Here's where the "extension" bites us: if the Qt equivalent offered
> something that upstream is not offering, and we can't reimplement it,
> then what do we do? Dropping support for it would be, at best, an API
> break; and at worst, a _silent_ behavioural change.
That's why you should just not do that, and instead keep the Qt
implementation. Let the users decide for themselves whether they prefer the
advantages of one (Qt) or the other (STL) implementation.
I, for one, don't give a darn about all those new C++11/14/whatever STL
features. I don't want to touch the STL with a 10-foot pole! The best thing
Qt can do with the STL is pretend it doesn't exist. (I wish QT_NO_STL were
still supported!)
Kevin Kofler
More information about the Development
mailing list