Are the critiques in "All the things I hate about Python" valid?

Ben Finney ben+python at benfinney.id.au
Fri Feb 16 23:05:34 EST 2018


boB Stepp <robertvstepp at gmail.com> writes:

> https://medium.com/@natemurthy/all-the-things-i-hate-about-python-5c5ff5fda95e

> As I currently do not have the necessary technical knowledge to
> properly evaluate his claims, I thought I would ask those of you who
> do.

Thank you for asking. The author makes many mistakes.

He blithely conflates “weakly typed” (Python objects are not weakly, but
very strongly typed) with “dynamically typed” (yes, Python's name
binding is dynamically typed). Those are two, orthognal dimensions to
describe a language.

All the assertions about “strongly typed” should instead be read as
“statically typed”. I do not think the author understands the
differences, nor the trade-offs involved, in the weak–strong dimension
nor the static–dynamic dimension.

The author conflates the Python language, which has many different
implementations and interpreters on very different technologies, with
one particular implementation (CPython). Python does not have fast or
strong performance; the performance is entirely a property of a specific
implementation.

All the arguments about performance should be read as criticisms of
whatever implementation the author is using. He doesn't say which, so we
can't know how justified those complaints are.

A strong hint is in the complaint about the Global Interpreter Lock.
This is a property of only one implementation: the CPython
implementation. It is a known limitation and many people have worked for
many years to ameliorate it; it is unclear whether the author knows of
anything done in recent years (the only specific information cited is
for 2012; a reminder, that's *six years ago*, a aeon in platform
development).

The author also uses very old information when complaining about Python
2 versus Python 3. The citation of grave fears is to a 2014 article. The
author shows no signs of awareness that the Python 3 ecosystem is very
healthy today compared to Python 2.

The complaint about abstractions makes another silly conflation; the
author seems to think any language that does object-orientation
differently from Java, is obviously wrong. The author may benefit from
reading <URL:http://dirtsimple.org/2004/12/python-is-not-java.html>
(advice which is no less relevant than in 2004). But maybe not.

The complaint about Python's build system and packaging tools is
accurate enough, though pretty parochial (the author has a strong bias
to existing Fortran packages). The Python build and packaging ecosystem
has been improving steadily for many years now, but yes, it still needs
a lot of improvement.

The author acknowledges in the conclusion that “nothing I’ve said is
new”. I would argue that most of what is said is not even true; the
article should not be referenced at all, IMO.

-- 
 \       “We jealously reserve the right to be mistaken in our view of |
  `\      what exists, given that theories often change under pressure |
_o__)              from further investigation.” —Thomas W. Clark, 2009 |
Ben Finney




More information about the Python-list mailing list