The number of compatible packages is irrelevant. All it takes is one critical package to be stuck on 2.7.
It's not like I can just decide to drop the dependency on boto and twisted from all my work code and migrate to something else.
I understand that these are opensource projects and I should be submitting patches to make the migration faster, but from a business point of view, I have absolutely nothing to gain by doing that instead of just sticking with 2.7.
You are correct, but the number of blockers is getting smaller. I sympathize with your situation, boto is a pretty big blocker (PIL was too until I switched to Pillow) and it impacts several of my projects, but thankfully I can work on porting my code to 3.x with six https://pypi.python.org/pypi/six and still deploy on 2.7 until boto gets there.
The disaster that is unicode in Python 2.7.x is enough for me to use Python 3 for anything I do in the future. And as you said there are enough compatible packages now to make this doable so yay for Python 3, and I say that as a former Python 3 skeptic.
A bit off topic, but what exactly makes boto so hard to port to Python 3? Whenever I look at this page I am puzzled by it still not supporting Python 3
There is a port in the works [0], and apparently they decided to go with a rewrite instead of just a port. I'm not sure of the exact reasoning, but that could explain why it takes them time.
There has certainly not been a lack of work on porting, there was the neo branch as well, there is some interesting (for some values of interesting) discussion about the approaches to 2.x and 3.x compatibility:
I don't know all the backstory, but when I pip-installed awscli in a py3.4 virtualenv this week, it pulled in "botocore", among others. Everything seems to work fine, so at least botocore works on version 3. Since awscli is a very complete AWS interface, it may be just a matter of documentation or a very thin API layer before everything one needs in boto works fine on v3.
I thought 2.7 has always been the bugfix branch and no new features would be ported to the 2.x branch after 2.7 was released? Some things were backported from 3.x to 2.x but that was done with 2.6 and 2.7.
bullshit. i have several large Django code bases to maintain and all of them could move to py3 if needed if it wasn't for boto. As soon as they are ready porting boto my next projects will all be py3.
Python 3 compatibility far outnumbers incompatible packages now: http://python3wos.appspot.com