What do you do when a value passes between major versions which have different implementations of its type?  What do you do with the `int` type, which was actually two separate types in Python 2?  What do you do when the binary representation of strings changes (as it did in the 3 series) and you want to pass that into Python 2 land?  What do you do about extension modules written in C, which many popular Python libraries use to speed up hot code?  Do you include copies of both standard libraries, meaning you now have duplicate modules and may get one or the other depending on the tag in your file?  Which version of Python 2 do you target?  What happens when there&#x27;s a bug in one Python 2 implementation but not the other?  How do you handle having two C APIs at the same time?<p>You mention C++ as though it worked out great, but C++ is <i>still</i> full of sharp edges and features that interact weirdly with its C legacy, and it has never completely replaced C (especially for libraries).  And that&#x27;s despite having a few advantages that made it possible in the first place, like having a completely different stdlib built on top of the C stdlib, and producing machine code rather than compiling for a VM on the fly.