[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