Why after X years we still not have an easy way to port python 2 to python 3 ? The languages are mostly the same , so there is no reasons to not be able to do it . As you say The languages are mostly the same . The differences are , frankly , too hard to port automatically and require the programmer to rewrite them . Zed points are , if your VM is legit , you should be have to compile python 2 and 3 to byte code and run it , mostly seamless . That what the CLR do with totally different language C # F # VB , do does LLVM . The current version of the CLR can ' t run old versions of CLR bytecode . That ' s what Zed is asking for that the python 3 interpreter run python 2 bytecode , or that python 2 code automatically compiles to python 3 bytecode which is not doable by a machine and need user input . If we are able to transfrom CC code to JS , why would not it be the same for python 23 ? Because it ' s a lot of effort for no gain ? unlike C did with C developers . Interesting choice . You know there are valid C constructs that won ' t compile in C ? Yet you don ' t hear anyone saying But why aren ' t they compatible ? Why hasn ' t someone written a compatibility layer ! ?. Granted , it ' s called C rather than C 2 or something and is written by a separate committee , but the point is still the same that there ' s a breaking change between them , so deal with it . Anyone , tell me why nobody thought it would be a good idea to have 2 to 3 really works 99 % of the times , or have the python VM to actually run pythonS ? Have . Like Zed you believe that 2 to 3 is deliberately limited by some kind of illuminati , rather than simply being a hard technical problem to solve that no one has bothered to solve .