The whole Python versioning fiasco is simply baffling to me as an outsider.  Why not mark Python 3 modules with a tag, or different file extension, or <i>anything</i>, and require the Python 3 interpreter to be able to interpret Python 2 code as well as Python 3 code?<p>This is e.g. how the (roughly analogous) split between C and C++ is handled, and it works fine for the most part.  No bizarre polyglot code games.<p>Edit: Just to be clear, C++ is <i>not</i> a superset of C: <a href="http:&#x2F;&#x2F;stackoverflow.com&#x2F;a&#x2F;1201840&#x2F;270610" rel="nofollow">http:&#x2F;&#x2F;stackoverflow.com&#x2F;a&#x2F;1201840&#x2F;270610</a>