Will Python 3.x ever become the actual standard?

D

dufriz

I am starting to have doubts as to whether Python 3.x will ever be actuallyadopted 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 updatedfor v3.x. 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.
 
C

Chris Angelico

OMG. Please provide their names. We'll send Doug & Dinsdale.

Who and who?

Re the subject line: As far as I'm concerned, it already is. Just use
it, now it's standard. That's what it takes... and that's all it
takes.

ChrisA
 
M

Mark Lawrence

OMG. Please provide their names. We'll send Doug & Dinsdale.

Please ensure that they're accompanied by the chief constable carrying
the tactical thermonuclear missile just in case of trouble as sometimes
the combination of nailing heads to coffee tables and sarcasm just isn't
enough.
 
R

Roy Smith

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.
 
C

Colin J. Williams

Years have passed, and a LARGE number of Python programmers has not
even bothered learning version 3.x.

The changes aren't large enough to worry a Python programmer so
effectively there's nothing to learn, other than how to run 2to3.
...there is no sign of their being updated for v3.x.

Could have fooled me. The number is growing all the time. The biggest
problem is likely (IMHO) to be the sheer size of the code base and
limitations on manpower.
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 agree with this technical aspect, other than the disastrous flexible
string representation, which has been repeatedly shot to pieces by, er,
one idiot :) As for adaption we'll get there so please don't do a
Captain Mainwearing[1] and panic. People should also be pursuaded by
watching this from Brett Cannon

Just my 2 pence worth.

[1] From the extremely popular BBC TV series "Dad's Army" of the late
60s and 70s.
It would be good if more of the packages were available, for Python 3.3,
in binary for the Windows user.

I am currently wrestling with Pandas, lxml etc.

Colin W.
 
T

Tim Golden

Years have passed, and a LARGE number of Python programmers has not
even bothered learning version 3.x.

The changes aren't large enough to worry a Python programmer so
effectively there's nothing to learn, other than how to run 2to3.
...there is no sign of their being updated for v3.x.

Could have fooled me. The number is growing all the time. The biggest
problem is likely (IMHO) to be the sheer size of the code base and
limitations on manpower.
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 agree with this technical aspect, other than the disastrous flexible
string representation, which has been repeatedly shot to pieces by, er,
one idiot :) As for adaption we'll get there so please don't do a
Captain Mainwearing[1] and panic. People should also be pursuaded by
watching this from Brett Cannon

Just my 2 pence worth.

[1] From the extremely popular BBC TV series "Dad's Army" of the late
60s and 70s.
It would be good if more of the packages were available, for Python 3.3,
in binary for the Windows user.

I am currently wrestling with Pandas, lxml etc.

Can I assume you're aware of the industrious Christopher Gohlke?

http://www.lfd.uci.edu/~gohlke/pythonlibs/

TJG
 
T

Tim Golden

And we can't understand how you can put up without source. :) Also,
Unix isn't one platform like Windows, ABI incompatibility and all.

Really, for most things these days it's just

pip install foo

Disregarding Mark's tongue-in-cheek rhetoric for now... perhaps you
didn't realise that, on Windows, you can't pip install a binary (that's
a problem the new wheel format is solving). And, even if you have the
correct compiler toolchain, building more complex packages from source
can be daunting, essentially because of the lack of standard source
layout on Windows.

TJG
 
M

Mark Lawrence

And we can't understand how you can put up without source. :) Also,
Unix isn't one platform like Windows, ABI incompatibility and all.

Really, for most things these days it's just

pip install foo

Skip

Which on Windows often ends up telling you that it can't find
vcvarsall.bat, i.e. you don't have the appropriate version (if any) of
the compiler installed. You then realise your mistake, go to the
bookmarked link Tim Golden referred to earlier, and a minute or two
later job done.
 
S

Skip Montanaro

Tim:
Disregarding Mark's tongue-in-cheek rhetoric for now... perhaps you
didn't realise that, on Windows, you can't pip install a binary
Mark:

Which on Windows often ends up telling you that it can't find vcvarsall.bat

I am well aware that Windows users rarely have compilers available.
Perhaps neither of you realized that I was responding to Mark's
comment that, "I confess I don't understand how *nix people endure
having to compile code instead of having a binary install."

On Unix systems most of the time people never invoke a compiler
directly to install from source. Heck, they often don't need to
download directly, as "pip install <whatever>" takes care of all that
drudgery.

Skip
 
T

Tim Golden

Tim:


I am well aware that Windows users rarely have compilers available.
Perhaps neither of you realized that I was responding to Mark's
comment that, "I confess I don't understand how *nix people endure
having to compile code instead of having a binary install."

On Unix systems most of the time people never invoke a compiler
directly to install from source. Heck, they often don't need to
download directly, as "pip install <whatever>" takes care of all that
drudgery.

Fair enough -- I thought you were implying that pip install had
magically solved all problems of source or binary installation. Clearly
you weren't, so my points about the problems still faced on Windows are
rather moot. :)

TJG
 
K

Kevin Walzer

Years have passed, and a LARGE number of Python programmers has not even bothered learning version 3.x.

That's true for me. My own projects run just fine with 2.7.

I have no specific issue with 3.x, nor phobia of it, but my time as a
developer is limited, and I'd rather use it to add features to my apps
using the stable base of 2.7 rather than go through the headaches of
modifying my codebase to accommodate the differences with 3.x.

This is something that's On My List to Do Someday, but right now there's
no real upside to it for my apps. As long as 2.7 is supported, I'll
probably continue to use it.

--Kevin
 
N

Neil Cerutti

Thankfully I am. I confess I don't understand how *nix people
endure having to compile code instead of having a binary
install. To me it's like going to the garage to buy a new car,
being shown the parts and the tool kit and being told to get on
with it. Perhaps it's a case of second class treatment for
users of a second class OS? Ducks and runs for cover :)

They usually don't. Users of most distributions have an awesome
device called a package manager.
 
D

Dan Stromberg

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. 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.


When 3.x came out, the python-dev folks practically commanded us to wait a
while before diving in. I think things are mostly going according to plan.

I think some little-used libraries will never get moved over.

We've been seeing that 2to3 and 3to2 aren't really the main way of moving
things to 3.x; instead, we're seeing a lot of code written to run,
unmodified on both 2.x and 3.x. This was a bit of a surprise, I think. A
document I wrote about how to do this is at
http://stromberg.dnsalias.org/~dstromberg/Intro-to-Python/

I find the differences between 2.x and 3.x rather small, actually. If some
people keep chanting "never going to happen", it probably won't - for them.

Personally, I've been coding greenfield projects in 3.x only and liking it,
and I wrote one ~10,000 line project to run on both:
http://stromberg.dnsalias.org/~strombrg/backshift/

HTH
 
D

Dennis Lee Bieber

I can send Mr. Wendt and Mr. Kidd. Or are those guys dead?

I could swear one of them is taking part in a smartphone commercial...
22 seconds in...


There's always their look-alikes from "Codename: Kids Next Door": Mr.
Wink and Mr. Fibb
 
G

Gene Heskett

I could swear one of them is taking part in a smartphone commercial...
22 seconds in...


There's always their look-alikes from "Codename: Kids Next Door": Mr.
Wink and Mr. Fibb

Just one more question: Did Antony and Luigi, from the amiga days, retire?

Cheers, Gene
--
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)

Q: Why did Menachem Begin invade Lebanon?
A: To impress Jodie Foster.
A pen in the hand of this president is far more
dangerous than 200 million guns in the hands of
law-abiding citizens.
 
S

Steven D'Aprano

I confess I don't understand how *nix people endure having to compile
code instead of having a binary install.

Because it's trivially easy under Unix? Three commands:

../configure
make
make install

will generally do the job. Unless it doesn't work, in which case it's a
world of pain. But that's no different from Windows, except that somebody
else has already worked through the pain for you.
 
S

Steven D'Aprano

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.

Of course it will. Python 2.7 is the last of the 2 series. It will be
given extended support, but eventually -- probably another five years or
so -- it will be no longer supported, just like Python 1.5 is no longer
supported.

Years have passed, and a LARGE number of Python programmers has not even
bothered learning version 3.x.

It's not like the differences are hard to learn. Even a mediocre
programmer can learn the differences in semantics and syntax in about
five minutes -- if you remember "print is a function", you're about half-
way there. Differences to the standard library are more extensive, but
still easy to learn.

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.

What do you call a "lot"? A million? Ten?
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.

Don't panic, the plan was always that the migration from 2 to 3 would
take about a decade. We're only half-way through it, and the migration is
proceeding according to plan:

- the majority of packages on PyPI now support Python 3, so the
"Wall of Shame" is now renamed the "Wall of Superpowers":

https://python3wos.appspot.com/

- big, important projects like numpy, scipy, django, zope, docutils etc.
now have either full Python 3 support, partial support, or are actively
working on it

- As of June this year, 39 of the top 50 downloaded projects from PyPI
had Python 3 support:

http://py3ksupport.appspot.com/

- It's not just CPython, other implementations like Nuitika, PyPy and
Cython have partial or full support for Python 3.


So don't worry about it.
 
P

Peter Cacioppi

It's an interesting issue. Back compatibility was broken with 3.x, which is always a risky move. Even Bill F*ng Gates was reluctant to break back compatibility, and he basically ruled the world (for about 20 minutes or so, but still).

Moreover, you get a lot of the good stuff with 2.7. Along with more library support. So the smart decision is to code your project 2.7, even though the best thing for Pythonistan would be for us all to voluntarily migrate to 3.x.

At least that's my read on it. Feel free to flame if I'm out of my depth here, it wouldn't be the first time.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,057
Latest member
KetoBeezACVGummies

Latest Threads

Top