Live data from Hacker News

Ask HN: Why are there 2 Pythons? (2.7 & 3.1.2)

news.ycombinator.com

21–29 of 29 posts

Re: Ask HN: Why are there 2 Pythons? (2.7 & 3.1.2)

#21

Both are stable. Both will continue to be stable for a long time. The main difference lies with third party library support. There are a number of third party libraries that don't work with Python 3 yet. They will get ported eventually. If you want to use a library that doesn't support 3, then the choice is made for you. The second difference lies with Linux distributions. On most distros you can just install the "py…

> They will get ported eventually. This is what worries me about Python: Python3 has been stable for a long while now, yet major projects (SciPy, Django) remain on 2.x, with no clear deadline for being ported to Python 3. Contrast this to Ruby, where Rails 3 is 1.8-compatible but recommends 1.9. Ruby 1.9 is being used in production even though it's not completely stable yet. In short, Ruby is clearly evolving, major…

I don't think the circumstances compare.

Python 3.x is different in a bunch of little ways from 2.x. Just like you say Rails 3 runs on Ruby 1.8 and 1.9, most Python libraries will run on 2.5, 2.6, or 2.7 (often 2.4 as well) without modification. Python 3.x breaks these libraries. Python 2.7 is also several months newer than Python 3.1.

It reminds me of the 2.4 -> 2.6 transition for the Linux kernel. People were using 2.4 for a long time. Heck, you can still find Linux 2.4 in the wild.

Re: Ask HN: Why are there 2 Pythons? (2.7 & 3.1.2)

#22
Speculatively, there are more than 2 Pythons. Python, like perl has become a family of languages. Some time ago Perl Mongers accepted that Perl 6 was not the next version of Perl but a new language in the Perl family. I suspect Python 3 is to Python 2 as Perl 6 is to Perl 5. Google's Go is also a language in the python family I think.

Re: Ask HN: Why are there 2 Pythons? (2.7 & 3.1.2)

#23

Both are stable. Both will continue to be stable for a long time. The main difference lies with third party library support. There are a number of third party libraries that don't work with Python 3 yet. They will get ported eventually. If you want to use a library that doesn't support 3, then the choice is made for you. The second difference lies with Linux distributions. On most distros you can just install the "py…

> They will get ported eventually. This is what worries me about Python: Python3 has been stable for a long while now, yet major projects (SciPy, Django) remain on 2.x, with no clear deadline for being ported to Python 3. Contrast this to Ruby, where Rails 3 is 1.8-compatible but recommends 1.9. Ruby 1.9 is being used in production even though it's not completely stable yet. In short, Ruby is clearly evolving, major…

>Ruby 1.9 is being used in production even though it's not completely stable yet

That's the difference. Without being insulting, Ruby is used for web sites that don't matter - if your twitter feed about twilight goes down nobody cares.

Python also gets used for stuff where a lot of $$$ dissapear if it goes too wrong

Re: Ask HN: Why are there 2 Pythons? (2.7 & 3.1.2)

#25

Speculatively, there are more than 2 Pythons. Python, like perl has become a family of languages. Some time ago Perl Mongers accepted that Perl 6 was not the next version of Perl but a new language in the Perl family. I suspect Python 3 is to Python 2 as Perl 6 is to Perl 5. Google's Go is also a language in the python family I think.

> Google's Go is also a language in the python family I think.

I can't imagine how that statement could be true. Please explain.

Re: Ask HN: Why are there 2 Pythons? (2.7 & 3.1.2)

#27
post #13

My rule of thumb as to when to use Python 3: once django is ported.

Great rule of thumb, but this also goes for a whole bunch of auxiliary Django applications and libraries like Piston, Evolution, South etc.

I think that once the Django team announces their intention to port most of the auxiliary applications will take notice and follow suit. I base this on how the (better) auxiliaries have been pretty good at keeping in sync with Django's releases.

Re: Ask HN: Why are there 2 Pythons? (2.7 & 3.1.2)

#29

Speculatively, there are more than 2 Pythons. Python, like perl has become a family of languages. Some time ago Perl Mongers accepted that Perl 6 was not the next version of Perl but a new language in the Perl family. I suspect Python 3 is to Python 2 as Perl 6 is to Perl 5. Google's Go is also a language in the python family I think.

> Google's Go is also a language in the python family I think. I can't imagine how that statement could be true. Please explain.

C, C++, Java, Javascript are all members of the C family of languages... even if created by different people for different reasons.
Post reply on HN