Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I agree. Python 3 fixes a lot of warts (range() defaults to xrange(), input() is the default) and does make the language overall more elegant (arbitrary head and tail unpacking with splat) but unfortunately it's not really worth a full switch. At least not for me.


A lot of the goodies from 3.3 were back ported into python 2.7, to ease portability. Python 3.4 makes it more backwards compatible still (whilst staying elegant). However, now there are also some new features that are not getting back ported.

Using argument annotations for type checking is quite useful in IDEs and for statically checking your code.

Asyncio, and yield from have been in the design phase for many years by Guido and the community. This is seriously well thought out concurrency done by people with lots of experience. It's the 4th generation async framework for python.

The better unittest framework saves me time, and helps me with error handling.

pip installed everywhere is a serious productivity improvement.

Function dispatch based on type (ie, pattern matching like some functional languages) is something I've missed for years. It was originally planned for py3k, and I think is the main missing piece from the original design docs.

Importlib is much improved, so you can do some really interesting things with importing code. If you're working on IDEs, or other apps like games this is pretty cool stuff.

Little things like the enum module make APIs that tiny bit cleaner and more intuitive to use.

Speaking of nicer APIs, the Documentation got a lot of fixups too in Python 3.4.

Want to track down memory leaks? Python 3.4 has a whole new set of memory debugging primitives to make this much easier.

There were also a lot of security improvements for 3.4 that have not been backported.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: