Giuseppe D'Angelo explains how the Qt project deprecates APIs, a challenge every library project faces.
by Giuseppe D'Angelo
From the article:
Any product needs to evolve if it wants to remain competitive. If the development bandwidth is finite, from time to time there is the need to drop some ballast. This does not necessarily mean dropping working functionality and leaving users in the cold. At least in Qt most of the time this actually means replacing working functionality with better working functionality.
This process has being going on in Qt since forever, but since Qt 5.0 we’ve started to formalize it in terms of documentation hints and macros in the source code. This was done with a precise purpose: we wanted Qt users to discover if they were using deprecated APIs, and if so, let them know what better alternatives were available.And since the very release of Qt 5.0.0 we’ve officially deprecated hundreds of APIs: a quick grep in QtBase alone reveals over 230 hits (mostly functions, but also entire classes).