Will Python 3.x ever become the actual standard?

Roy Smith roy at panix.com
Wed Oct 23 08:57:18 EDT 2013


In article <6e0bbc6b-9435-4a4b-8840-8a46cc4e0cc5 at googlegroups.com>,
 dufriz at gmail.com wrote:

> I am starting to have doubts as to whether Python 3.x will ever be actually 
> adopted by the Python community at large as their standard. Years have 
> passed, and a LARGE number of Python programmers has not even bothered 
> learning version 3.x. Why am I bothered by this? Because of lot of good 
> libraries are still only for version 2.x, and there is no sign of their being 
> updated for v3.x.

It's a chicken-and-egg thing.  People aren't moving because the 
libraries they depend on don't yet support P3, so there's not a lot of 
people using P3, so there's not a lot of pressure for libraries to 
support it, etc.

Here's our list of external Python dependencies (mostly installed with 
pip, a few of the harder to build ones we install as binaries with 
apt-get).  I'll annotate them with what P3 support is available.  I'm 
doing this quickly, so may not be 100% accurate (and I ran out of time, 
so I started just looking at the major ones):

argparse==1.2.1           # included in P3
beanstalkc==0.3.0         # no support
blinker==1.2              # P3 supported
boto==2.5.1               # no support
dateglob==0.1             # no support, probably not critical
decorator==3.3.3          # P3 supported
django==1.4.5             # P3 support in 1.6 (RC just released)
django-multi-sessions==0.1.0    # no support, probably not critical
django-timedeltafield==0.7.0    # no support, probably not critical
dnspython==1.11.0         # P3 supported
elasticsearch==0.4.2      # no support (unclear)
Fabric==1.7.0             # "eventual Python 3.x compatibility"
gevent==0.13.8            # no support
grequests==0.2.0          # no support
gunicorn==0.17.4          # P3 supported
jellyfish==0.2.0          # no support
Jinja2==2.7.1             # "upcoming" support for P3
leveldb==0.19             # no support
lxml==2.2.4               # P3 supported
markdown==2.3.1
MarkupSafe==0.18
mongoengine==0.7.10       # P3 support on the roadmap for 0.9 release
mrjob==0.4
msgpack-python==0.3.0
nose==1.3.0
numpy==1.6.1     # "some [...] packages still only work on Python 2"
pandas==0.9.1
paramiko==1.11.0
Paste==1.7.2
PIL==1.1.7
prettytable==0.7
psycopg2==2.5
pyasn1==0.1.7
pymongo==2.5.2           # P3 supported
pyparsing==1.5.2
pysnmp==4.2.3
python-cjson==1.0.5
python-dateutil==1.4.1
python-memcached==1.53
pytz==2010b
pyzmq==13.1.0
requests==1.2.0           # P3 supported
rpclib==2.7.0-beta
scipy==0.9.0
setproctitle==1.1.6
statsd==2.0.3
suds==0.4
tornado==3.1
ujson==1.23
Unidecode==0.04.5
unittest2==0.5.1

> I get the impression as if 3.x, despite being better and 
> more advanced than 2.x from the technical point of view, is a bit of a 
> letdown in terms of adoption.

I would agree.  I think the handwriting is on the wall that we'll get 
there eventually, but it's taking a lot longer than I would have 
expected.

I think we're at the point where most major projects either already 
support P3, or at least have it on their roadmaps, and people learning 
Python in school are starting to be taught P3 instead of P2.  But I 
think we're not going to see P3 be the predominant version for several 
more years.



More information about the Python-list mailing list