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

Reply via email to