Comment Re:Also... (Score 0) 433
Versions X and Y of a DLL will be flat-out incompatible if that DLL is written in C++ and the author has changed the number of attributes in an interface class
....
Why would any developer do that? Why not create a new class with the added bits, and make the old class use the new one, passing in default values for the additions. That is backwards compatibility.
And the fact that Microsoft is so good at preserving application backward compatibility
Not for 3rd-party application code (which is nothing to do with them), but for the Windows OS code used by applications. And, from what I've heard, a lot of the "difficulties" here have been because Microsoft has lots of undocumented calls (so that MS products can do things that others "can't") which then non-MS applications start to use in other ways. If MS did have a fully-documented OS interface there might be fewer "poor practices". So it's self-inflicted, I fear.