
Updated Packages – Python 3.3 - Goranek
https://wiki.ubuntu.com/RaringRingtail/TechnicalOverview#Python_3.3
======
ancarda
I don't code Python so as an outsider it always seemed strange that almost all
code was written for Python 2.x - like 3 was unanimously rejected from the
community. Can anyone shed light on why this is/was the case?

~~~
FooBarWidget
As a Rubyist it also seemed strange to me. As soon as Ruby 1.9 became stable,
it was embraced by the community fairly quickly. Ruby 2.0 has only been out
for a month and there are already projects that require 2.0. In contrast,
Python 3 adoption _still_ isn't finished, and Python 3 has been around for
several years longer than Ruby 1.9.

I guess that the incompatible changes in Python 3 don't really help. Ruby 1.9
introduced incompatibilities but they were fairly minor and easy to resolve.
The biggest incompatibility was probably the introduction of string encodings.
Python 3 introduced a stricter string encoding system and changed syntax in
some ways. Some of the syntax changes make it very difficult to write code
that is compatible with 2.6, 2.7 and 3.0.

~~~
wisty
The next version of Django (Python's largest web framework) will
experimentally support Python 3.0 _next_ release. They did so because
maintaining two branches would be a pain, and they didn't want to dump their
existing community. Not too long ago, matplotlib (the plotting library) didn't
have ports for some versions. They were slow to port because they were waiting
for scipy and numpy. Anything which deals heavily in string processing needs a
major re-write. Libraries were waiting for other libraries, which where
waiting for other libraries to be ported.

If Rails didn't support Ruby 1.9, I'd imagine the migration would have been
slower.

~~~
tshepang
The word "re-write" is overkill, and if there are examples, I haven't heard of
them. That isn't to say supporting Python 3 isn't a big job (for a lot of
projects).

------
levesque
Been happily running Ubuntu 13.04 with Python 3.3 for a few weeks. Sure some
packages will break, but it will initiate a real migration, and in the end
Python3 will be the default Python. All in all, there's no way to make this
transition without breaking stuff, it just needs to be done.

------
antihero
Arch has been using Python 3 for quite a long while, now.

However, any push that allows us to use 3.3 is a great thing. I've been
reading the 3.3 docs and being like, neat feature! Then switching back to the
2.7 docs and realising I can't use it :(

~~~
eliben
Yep, after the feature freeze between 3.1 and 3.2, 3.3 was a significant jump
forward.

------
d0m
Bha, I still believe that's a mistake. Breaking already existing and working
tools for the sake of having python3. Thousands of scripts use "python" as
default, instead of "python2". They will all break. The problem isn't when
it's your own stuff. but mostly when you're using a automatically build system
that use "python" _somewhere_. And then, that thing crashes because it's now
expecting python2.. or that the 10 years old package would automatically be
ported to python3.

As far as I'm concerned, I would have preferred Python to be Python2.x, and a
new code name for Python3, i.e. Cobra.

~~~
tshepang
Nothing will break (in the sense you mention). Python 2 will remain
/usr/bin/python while Python 3 is /usr/bin/python3.

~~~
d0m
Ha, ok thank you. With archlinux, /usr/bin/python is now linking to
/usr/bin/python3..

~~~
tshepang
Yeah, and I don't know of anyone else doing this.

------
rwmj
Python 3.3 was added to Fedora in August 2012. Source:

[http://koji.fedoraproject.org/koji/packageinfo?packageID=978...](http://koji.fedoraproject.org/koji/packageinfo?packageID=9781)

~~~
bluedino
Fedora is more of a bleeding-edge (or at least developer-focused) distro -
they also ship with Ruby 1.9 instead of 1.8.

~~~
kokey
Interesting, until last year I used to use Ubuntu when I wanted a bleeding
edge and lightweight OS for, say, working with new hardware. How things
change.

~~~
yogo
In its lifetime Ubuntu has never been bleeding edge nor lightweight compared
to many other distros. I'm an Arch user all the way but I still take other
distros for a test drive every so often and it amazes me the crap distros
bundle together in packages when so many things could be made to be optional
dependencies. I guess it all depends on your standard for lightweight :).

------
taude
Interesting. Maybe as the push to Python 3 gets more forced, more active-
legacy code will be upgraded?

~~~
joemaller1
Let's hope so, there's got to be a tipping point.

------
zurn
Previous discussion: <https://news.ycombinator.com/item?id=4486608>

This was around Ubuntu 12.10, references Ubuntu wiki with nearly the same text
back then.

------
ubersoldat2k7
I think it's good that they "force" a little for devs to start using Python3.

------
niggler
When will perl6 become the standard perl?

~~~
chimeracoder
Perl 6 is a different language from Perl 5, and both are being developed
actively. Perl 5 was at version 15, last I checked.

Python 2 is not being developed actively, aside from security updates, so it
is permanently frozen at 2.7, with the intent of removing support entirely
eventually (though not for a while).

It's not really a like comparison to compare the two.

~~~
lmm
>Perl 6 is a different language from Perl 5, and both are being developed
actively. Perl 5 was at version 15, last I checked.

It wasn't always that way, however much certain luminaries try to retcon.
Perl6 was originally intended to be, well, the next version of perl; it was
only after the community's rejection that the decision to continue perl5
happened. It's not beyond the realms of possibility that the same thing could
happen to python (though I certainly hope not, and stories like this suggest
we're reaching the tipping point).

~~~
chromatic
_it was only after the community's rejection that the decision to continue
perl5 happened._

The lack of any usable Perl 6 implementation by the time of Perl 5.12 did more
to promote the continuation of Perl 5 as its own project than any specific
_rejection_ of Perl 6. When the plan was for Perl 6 to replace Perl 5, the
idea that Perl 5.12 would migrate to Parrot as a VM so that Perl 5 and Perl 6
code could run in the same process.

------
stefantalpalaru
There's always Linux Mint[1].

[1] <http://www.linuxmint.com/about.php>

------
xtc
Ubuntu also thinks Unity is a good idea.

------
smoyer
I like Python, but keeping both 2 and 3 alive for so long has caused problems
that make it hard to justify for serious projects. What will your boss decide
when half his developers say that the two branch is right for a task and half
say the three branch should be used? He'll pick another language.

I'm not sure I'm willing to trust Ubuntu to decide this for me ... they also
thought Unity was in my best interest, and foisted the Amazon store upon my
desktop. Good luck Ubuntu ... I'm outta here.

~~~
mseebach
Python 2 and 3 are in most practical senses two very closely related, but
different, languages. So your scenario is not very different from the two
groups of developers suggesting Python and Ruby.

By the way, assuming either language satisfies the external requirements for
the project, any half-way competent boss would say "Figure it out. Bring me
your decision by the end of the day(/week/whatever). KTHXBYE."

~~~
masklinn
> Python 2 and 3 are in most practical senses two very closely related, but
> different, languages.

They're so closely related you can write code compatible with both (and that's
the path many — if not most — libraries are taking)

