On Wed, Sep 12, 2012 at 12:49 PM, James Stroud <[email protected]> wrote: > Also, python (aka python 2) and python 3000 (aka python 3) are considered > two different languages. It's not reasonable to consider them one language > and then complain that they are incompatible. Python 3 was created as a new > language (and should be treated as such) precisely because it breaks > compatibility with python 2. That was the intent of the language authors.
Actually, despite having endorsed Python, I have to agree with the complaints about Python 3, for several reasons: 1) It doesn't actually introduce many fundamentally new features that would have changed how we code for it. (Like getting rid of "self" or the Global Interpreter Lock, or writing the interpreter in C++ and improving the API for writing extensions.) The only really huge change is Unicode support, which is probably good but doesn't really make it a different programming language. 2) The changes that really break code compatibility - like getting rid of the print statement - seem to have been done on a whim rather than because of any pressing need. Maybe this was done to try to force everyone to migrate immediately (since module developers couldn't easily maintain code that works with 2.x and 3.x), but it has had the opposite effect. 3) Development on Python 2 is being shut down. Despite all this, I would still choose Python over nearly anything else for scripting (and most other purposes, but eventually C++ will be necessary too). > You blame the authors for recognizing limitations of a language and > inventing a new one to overcome those limitations. > If the FORTRAN authors would have done that about 30 years ago, we all might > be programming in FORTRAN. I think this is what Fortran 90 was supposed to do (unsuccessfully, at least in the world of crystallography) - but F77 code is still valid F90 code, just like ANSI C is still valid C++. -Nat
