Future of Pypy?

Laura Creighton lac at openend.se
Sun Feb 22 12:22:01 EST 2015


In a message of Sun, 22 Feb 2015 15:36:42 +0000, Dave Farrance writes:
>Laura Creighton <lac at openend.se> wrote:
>
>>I don't understand 'an interpreter rather than a JIT'.  PyPy has a
>>JIT, that sort of is the whole point.
>
>Yes.  I meant that from my end-user, non-software-engineer perspective, it
>looked as though CPython was proceeding with leaps and bounds and that
>PyPy remained mostly a proof-of-concept after several years.

Oh no, that was the state of the world about 8 years ago.  PyPy works
great, and more and more people are using it in production all the
time.

>But thanks for your description of the issues.  So once the core issues
>are sorted out, if enough people can be found to work on it, then
>hopefully the library conversions will follow apace.

Well, most libraries just run, of course. It's the ones that are written
in C that cause most of the problems.

One of the problems, from a pure Have-PyPy-Take-Over-the-World
perspective is that as things were moving along quite merrily,
the CPython core developers decided to invent Python 3.0.  This
meant that everybody on the planet, who wanted their library to
work with Python 3.0 had to convert it to work there.

There was, and still is, an enormous amount of resentment about this.
For a lot of people, the perception was, and still is that the benefits
of Python 3.x over Python 2.x was not worth breaking backwards
compatibility.  And there still are plenty of places whose plan is
to use Python 2.7 indefinitely into the far future.  I've got 15
years worth of commerical python code out there in the world, and
nobody wants it converted enough to pay me to do so.  Their position
is that it runs quite well enough as it is.  I'm sure not
going to convert the stuff for fun.  Practically every Python consultant on
the planet is in the same boat.

Things will get converted when there is a compelling business argument
to do so, but not before, and for a lot of code the answer is never.

Given the nature of this political problem, it is not surprising that
the proponents of Python 3.0 spent a lot of effort talking about the
benefits, and praising the people who converted their stuff, and
making a huge effort in the public relations lines.  The whole thing
could have blown up in their faces, as is quite common when you decide
to make the 'second version' of a language.  It happened to Perl.  So
this creates buzz and warm feelings about Python 3.0.

In contrast, on the PyPy team, there is nobody who doesn't consider
public relations and marketing and 'creating the warm fuzzy feelings in
the users' somewhere between 'unpleasant duty' and 'sheer torture'.
The set of human skills you need to have to be good as this sort of
thing is not a set that we have, either collectively or in individuals.
We're much more into 'letting the code speak for itself', which, of
course, it does not do.

A lot of us, indeed were raised on a philosophy that it is morally wrong
to try to influence people.  You can give them options, and you can
even explain the options that you are giving them, and you can argue
with others in favour of certain options, but when it comes right down to
it, everybody has to make their own decision.

This is all well and virtuous, but the fact of the matter is that a large
number of people aren't competant to make their own decisions, and even
among those that are there exist a large number who very
much don't want to do such a thing.  If you are trying to get such people
to adopt your software, you need to provide a completely different
experience.  They need to feel comfortable, and safe, and among a
large community, and, well, I don't know what else they want.  That is
part of the problem.  I am pretty sure that what they want is something
that I never pay a lot of attention to. I mean  I'm a charter member of
the 'always-sacrifice-comfort-in-order-to-have-fun-and-interesting-times'
club.  And my marketing skills, such as they are, are much above average
for the PyPy gang - though some members are learning a bit, slowly, through
necessity.  But you notice that we have only 1 blog, and things are added
to it very slowly.  There are people all over planet python who blog about
things every week, for fun.  There is no way we can compete with them.

So, until some people with such skills decide to take an interest in
PyPy, our marketing effort is going to limp. And I personally feel
pretty bad about asking some poor soul who has just made his C extension
work with 3.0 go back and do it _again_ in a more PyPy friendly way.

But if Armin gets the Transactional Memory to be usable in a robust
way, (as opposed to now where it is only a bit more than a proof of
concept) then things could rocket off again.  Because one thing we
do know is that people who are completely and utterly ignorant about
whether having multiple cores will improve their code still want to
use a language that lets them use the multiple processors.  If the
TM dream of having that just happen, seemlessly (again, no promises)
is proven to be true, well ....  we think that the hordes will suddenly
be interested in PyPy.

But you never know.  Lots of people were doing
-complain-complain-python-is-too-slow, and wouldn't take the argument
that developer time is worth more than CPU time and the like. We
made them PyPy.  They've stopped complaining about the speed, but they
aren't using PyPy either.  Seems they didn't really need the speed,
after all.  It is tempting to believe that they just liked
complaining.  So maybe the 'cannot use all my cores' complaint is
fueled by other people who complain for the fun of it.  Then there
will be no hordes even when we crack that nut too.

But it is very, very interesting and a whole lot of fun.

Laura



More information about the Python-list mailing list