9 Reasons Python Sucks
This is a list of reasons why I think Python is a terrible programming language. Naturally, none of them apply to other programming languages.
-
It's impossible to determine at compile time whether a Python program can terminate.
-
While strings in Python 3 are significantly better than strings in Python 2, they consist of a series of "code points" instead of characters, so there's no way to reference the third character of a Python string. For ASCII strings, this works fine in C, so I prefer writing in C. Python claims to support Unicode but can't even get this right.
-
If I compile a Python module on Linux, it doesn't work on a Mac. This is a shocking oversight for a so-called "cross-platform" language.
-
The
os.link
function does not let you create a hard link to a directory. -
The standard library sorting function takes at least O(n log n) time. I understand dynamic languages are slow, but why is it this slow?
-
The
cryptography
module claims to implement public-key cryptography, but mathematicians have so far been unable to prove that one-way functions, a prerequisite of public-key cryptography, even exist. It's surprising that the Python ecosystem is of such low quality and holds to dubious scientific standards. -
When you compile NumPy or SciPy from source, you need to build FORTRAN code, and FORTRAN sucks which is clearly Python's fault.
-
If you're running two Python programs from different users on the same machine, a speculative load in one program might be able to learn information from the other program based on cache timing side channels.
-
Python is unable to reverse entropy.