
Python 3.3.5 has been released - adamnemecek
http://docs.python.org/3.3/whatsnew/changelog.html
======
daGrevis
I started new project on Python 3 yesterday and I can say that there hasn't
been any problems so far. Libraries I needed to use were compatible with
Python 3: toml, markdown and Jinja2. I'm looking forward to use clint for
better CLI as well! Everything was solid and production-ready. It's good to
know that some really weird things are fixed in new Python. I can't think of
any reason not to start new app in Python 3! :)

~~~
mildtrepidation
_I can 't think of any reason not to start new app in Python 3!_

Sorry, but my recent experience has not matched yours, so the fact that _this
particular project_ had no library compatibility issues does not mean they no
longer exist.

I'm glad you found a project you can use it on. That just doesn't mean much to
those of us who are still hitting the same familiar issues with it.

~~~
daGrevis
Yes, libraries that you may need may not be compatible yet. But it is fair to
say that situation is getting better.

Also, here's a great tool that checks if you can use Python 3:
[https://caniusepython3.com/](https://caniusepython3.com/) .

------
null_ptr
So what's the deal with Python these days? Do people still write for 2.7 which
is the default "python" in most (all?) Linux distributions, or is it safe to
write for python3 now?

~~~
viraptor
> Do people still write for 2.7

Yes.

> which is the default "python" in most (all?) Linux distributions

Most distributions ship both 2.x and 3.x at the same time. Ubuntu ported most
(all?) of its tools to 3.x already.

> is it safe to write for python3 now?

What do you mean by safe? It's been stable for a long time now. As long as you
verify all your dependencies work, you should be fine. The only annoying thing
you may run into is a situation where only one of the versions is provided:
for example if you want to drive ufw (3.x only) from salt (2.x only), you'll
have to resort to some kind of IPC instead.

There was a poll about the current state a month or two ago on HN.

~~~
wfn
Also, python3 is the default in archlinux:
[https://wiki.archlinux.org/index.php/python](https://wiki.archlinux.org/index.php/python)

~~~
stefantalpalaru
Arch Linux is an exception because they blindly follow upstream.

------
hit8run
Python 3.4.0 final: March 16, 2014

I think I'll wait for 3.4 to land in a few days and from then on use py3
instead of 2.7 :)

~~~
agumonkey
I forgot how close to the release date we were already. Joy.

------
eddd
Guido can release python 7, and still minority will use it, since many libs
([https://python3wos.appspot.com/](https://python3wos.appspot.com/)) are not
ported to python 3.

~~~
makmanalp
That list sure is turning greener and greener every day. It's getting harder
to use that as an excuse. I think my next project, I'll start using py3. The
main big ones I see are boto (has a partial 3k fork that isn't official yet)
and mysql-python (looks pretty dead, shame).

Quite a few others like Gevent and supervisor, for example, have py3k ports
nearly done, and mostly await merging.

~~~
rodelrod
MysqlDB was holding me back from Python3, but that problem was settled with
Oracle releasing a Python connector for MySQL [1] that works for both Python
2.x and 3.x. It's a solid and very complete library and it's DB-API compliant,
so that migrating from MysqlDB can be pratically seamless.

[1]
[https://dev.mysql.com/downloads/connector/python/](https://dev.mysql.com/downloads/connector/python/)

~~~
makmanalp
I've looked into that, have you seen any performance regression due to the
fact that it's pure python?

~~~
rodelrod
That's a very good point. I tend to drop down quickly from the ORM to do SQL
level optimization on hot spots, and that is the case of the applications
where I have used this connector. Also, we are talking about entreprise
applications with relatively low number of requests, albeit a lot of them
resource intensive. In this context, the performance of the connector is not
critical. I can tell you that it is good enough that I didn't have to change
my usual architecture choices for performance reasons. Your case may be
different.

edit: changed grammar for clarity

~~~
makmanalp
This is good to hear. I'm leaning more towards using postgres on my next
project, but for the sake of science, let me think it out a bit more:

Your average interactive webapp is reasonably query-heavy, some of which is
alleviated by reasonable caching.

The performance of the connector comes into play when someone hits an uncached
page which requires tens of queries. This matters the most when it drastically
affects load time. It's really a shitty experience when a user comes to a
page, waits more than a second for the page to load. I do find, though, that a
large portion of my query overhead comes from round trip time to the db
server, and not intermediate processing.

So I figure for low to medium traffic sites with reasonable caching (and cache
priming when needed), this probably won't be a bit hit, like you say.

There is of course the interesting benefit that if you're using a JIT
implementation like pypy, then everything within a pure python db adapter is
up for auto-optimization. This is interesting because it could effectively
provide something close to application-specific hand optimization of the
connector, which tends to be a pain in the ass that not many people would
bother with.

------
est
I hope CPython could introduce more performance improvements, not just bug
fixes and alternative features.

~~~
alialkhatib
That'd be nice, but since CPython is supposed to serve as a reference
implementation (and not necessarily be the bleeding edge of speed) I don't
hold much hope of performance improvements becoming a top priority (except to
make Python3 more compelling than Python 2.x strictly on performance criteria,
which they've largely accomplished if I understand correctly).

~~~
est
So CPython think performance is about politics, but tell you what, it's also
about competition. Every new Ruby release has some kind of performance tweak,
Rubinius got rid of GIL entirely, Nodejs and V8 is significantly faster than
pure Python, Go is one of the fastest.

------
cm127
Wanna get people to really start using Python 3? Make it the default version
on Ubuntu LTS.

[https://wiki.ubuntu.com/Python/3](https://wiki.ubuntu.com/Python/3)

~~~
rlpb
Python 3 is already available by default on Ubuntu. The page you link to
refers to the removal of Python 2 by default, which is a separate thing, since
both can be installed at once.

As for making Python 3 the default if you type "python", this is unlikely to
happen, for compatibility reasons:
[http://legacy.python.org/dev/peps/pep-0394/](http://legacy.python.org/dev/peps/pep-0394/)

~~~
rcxdude
Yeah, Arch does this and it breaks so many things (any PKGBUILD which involves
python will have some hack or another to fix things).

