[Python-ideas] Why CPython is still behind in performance for some widely used patterns ?

Brendan Barnwell brenbarn at brenbarn.net
Tue Jan 30 00:58:10 EST 2018


On 2018-01-29 20:24, Barry Warsaw wrote:
> But there's something else that's very important to consider, which
> rarely comes up in these discussions, and that's the developer's
> productivity and programming experience.  One of the things that makes
> Python so popular and effective I think, is that it scales well in the
> human dimension, meaning that it's a great language for one person, a
> small team, and scales all the way up to very large organizations.  I've
> become convinced that things like type annotations helps immensely at
> those upper human scales; a well annotated code base can help ramp up
> developer productivity very quickly, and tools and IDEs are available
> that help quite a bit with that.
>
> This is often undervalued, but shouldn't be!  Moore's Law doesn't apply
> to humans, and you can't effectively or cost efficiently scale up by
> throwing more bodies at a project.  Python is one of the best languages
> (and ecosystems!) that make the development experience fun, high
> quality, and very efficient.

	You are quite right.  I think, however, that that is precisely why it's 
important to improve the speed of Python.  It's easier to make a good 
language fast than it is to make a fast language good.  It's easier to 
hack a compiler or an interpreter to run slow code faster than it is to 
hack the human brain to understand confusing code more easily.  So I 
think the smart move is to take the languages that have intrinsically 
good design from cognitive/semantic perspective (such as Python) and 
support that good design with performant implementations.

	To be clear, this is just me philosophizing since I don't have the 
ability to do that myself.  And I imagine many people on this list 
already think that anyone who is spending time making JavaScript faster 
would do better to make Python faster instead! :-)  But I think it's an 
important corollary to the above.  Python's excellence in developer-time 
"speed" is a sort of latent force multiplier that makes execution-time 
improvements all the more powerful.

-- 
Brendan Barnwell
"Do not follow where the path may lead.  Go, instead, where there is no 
path, and leave a trail."
    --author unknown


More information about the Python-ideas mailing list