
Python 3.0 makes a big break - soundsop
http://www.linux.com/feature/150399
======
nihilocrat
Even though I'm a Python veteran, I see 3.0 as being a big boon for newcomers.
Even though Python is pretty popular now, removing any barriers to adoption
would only help it more, and one of the best ways to do this is to adopt non-
programmers. The fixed design flaws make the language more "pure", which in
the eyes of a beginner mean there are less gotchas that make no sense, such as
1/2 = 0. It's a 'very high level language' so it needs to start acting like
one.

One of the links in the story sums this up in a much better way than I could
do in a comment: <http://www.comp.leeds.ac.uk/nde/papers/teachpy3.html>

~~~
cabalamat
Yeah, like there's thousands of people holding off using Python because print
is a keyword and not a function.

~~~
scott_s
The less inconsistencies in a programming language, the easier it is to teach.

~~~
cabalamat
I agree. If I was designing a programming language, then appending to the end
of a file, appending to the end of a string, and writing to stdout would all
look the same.

Actually, I am designing a programming language, and they look like this:

    
    
      fileHandle << data;
      aString << data;
      out << data;

------
dmpayton
I'm interested to see how the distro's manage this. Ubuntu seems to always
have the latest and greatest, but I can't see them upgrading to Py3k any time
soon. There's just still too much that relies on 2.x.

GvR said that new stuff should be built on py3k, but I'm betting it will be
quite some time before anyone develops anything of significance on it. At
work, even though we're in the early stages of developing our product, we're
still sticking with 2.5 for the foreseeable future.

I imagine the adoption rate for Py3k will be worse than PHP5.

~~~
neovive
The comparison to PHP5 is definitely interesting. PHP5 was released around
2004 with significant upgrades to the language with a high degree of
backwards-compatibility and it still hasn't reached complete adoption. Only
now with official support coming to an end and more web host support, will it
become the standard.

The adoption of Python 3 will likely differ, since Python is not a standard
feature of low-cost web hosts and has a wide range of uses outside of web
development. It should be interesting to see how this plays out.

------
d0mine
Py3k offers almost no immediate advantages compared to Python 2.x -> that
slows down an adaptation rate -> long term advantages are eaten by a burden of
supporting two incompatible language versions -> by the time Python 3.0 gains
sufficient momentum it will be already obsolete.

The Zen of Python is violated: practicality is bitten by purity.

------
scott_s
Breaking compatibility is easier now than it will be in the future. In ESR's
"The Art of Unix Programming," Stuart Feldman explains his decision to use
tabs in make:

 _Why the tab in column 1? Yacc was new, Lex was brand new. I hadn't tried
either, so I figured this would be a good excuse to learn. After getting
myself snarled up with my first stab at Lex, I just did something simple with
the pattern newline-tab. It worked, it stayed. And then a few weeks later I
had a user population of about a dozen, most of them friends, and I didn't
want to screw up my embedded base. The rest, sadly, is history._

Beware the argument that life will be harder tomorrow, or even for the next
year. Sometimes that's better than living with your mistakes for 30 years.

------
newt0311
It seems bad but most of the changes can be taken care of using the 2to3 tool
written GvR. The changes are really not that bad and quite a few of them are
_very_ long overdue.

~~~
jdunck
Which sizable codebase have you migrated using 2to3?

------
cabalamat
Indeed it will break every existing non-trivial Python program.

I hope someone big and important like Ubuntu or Red Hat does a fork for
compatibility (they could call the fork "Real Python", and start version
numbers at 4.0). Oh well, at least it gives me an incentive to learn Ruby.

~~~
alexkay
I attended a Python3000 talk by Anthony Baxter last month (Anthony is the
release manager for Python).

He mentioned that Python 2.x is will be supported for a very long time. They
definitely expect to have 2.7 and may be even 2.8. They are also going to
backport important features and security fixes from 3.x

Google has a very large codebase written in Python 2.x, it's in their interest
to support the language for as long as needed.

~~~
bockris
I didn't get a chance to attend the OSCON talk by Anthony Baxter but I saved
the link to the PDF.

[http://www.interlink.com.au/anthony/tech/talks/OSCON2008/por...](http://www.interlink.com.au/anthony/tech/talks/OSCON2008/porting3.pdf)

~~~
alexkay
That's the talk, although I watched the SyPy version of it.

