scott at towel42.com
Fri May 17 19:47:10 CEST 2019
On Friday, 17 May 2019 09:38:05 PDT Marco Bubke wrote:
> Thiago, you partially implying that BC is still needed but with
> technologies like flatpak or snappy this will maybe not common use
> case anymore. They provide even behaviour compatibility if you stay with the same runtime.
> Something which is not provided by binary compability. I personally
> think if the behaviour is changed it should not even compile anymore
> so you can fix it easily.
Some level of compatibility is of course required, unless you're proposing we provide a certain level of bugfixing for ALL releases for a number of years.
That is, if 6.2 isn't source-compatible with 6.1, then 6.1 needs to be supported for 3+ years with bugfixes for code that was ported to 6.1 but hasn't been ported further to 6.2.
If we're still keeping source compatibility but not binary, the problem is not as big as above. But it still exists if you're not in a position to recompile all modules (think third party's component).
Im just going to throw out my 2 bits on this....
Please don’t underestimate (and Im not hearing Thiago say this) the pain, of breaking source compatibility. Even on Major (5->6) version changes.
Qt lost a lot of momentum, but eventually gained it back, in the 3-4 transition. And it was more than just "the code didn’t compile" it was also, lost functionality that was take from 3, a hack added in 4.1 (missing in 4.0 IIRC) and then fully replaced in 4.4.. And Im talking about the Graphics Scene/View...
We have a similar issue, even if it has been 2-3 years already, with the change in web viewer... I know of more than one project, including my product, that is stuck on an old version of Qt, simply because the new web view, is missing some functionality. And building the old browser classes is a less than "wonderful" solution.
When the Qt team, decides to make these changes, it hurts a lot of developers, who have to justify to their company, I need to spend X number of months figuring out a solution, to replicate code that was already working fine...
From a utopic point of view, Id be fine with, if every Qt container, and class that has been "mostly" implemented in STL, or the native language was thrown out.. But as I tell my employees, just because its in the language now, doesn’t mean we should go through our 2.5 million lines of code, and re-write every one to use modern C++...
To replace out every container, that works today? And in the process, break probably billions of lines of existing Qt code, which would have to be re-written using the new containers??? Please don’t.... Even for 6.0... Some form of transition would be great.
Maybe, line in the Qt3->4 transition timeframe, have a macro, to "Allow Qt Containers", as well as code that does the autoconversion from Qt to STL, so developer code builds when the flag is on.
More information about the Development