> The two main drawbacks of Python from my point of view are (1) there is very little compile-time error analysis and type declaration, even less than Lisp, and (2) execution time is much slower than Lisp, often by a factor of 10 (sometimes by 100 and sometimes by 1).

Both have been improved on - in particular (1), with `typing` module, type annotations, mypy and so on. With (2), Python's speed has increased somewhat since, but then again, you won't be doing large-scale math without numpy, and for non-vectorizeable numeric computations you'd probably use something like jit-compiled numba or the like.

The big thing that has allowed Python to flourish is the fact that it has a good foreign function interface and was easy to use to the point that both academics and web developers would learn it. It really got a second wind as ML got more and more popular. Not many languages can be used to create an ML application end to end (but building on the shoulders of Google and or other large big tech / ad tech companies).

Python had their smearing campaign claiming TIOOWTDI against Perl's TIMTOWTDI, and dubious claim's of sigils (`@$`) hurt readability. But once Python had the ecosystem going, it brought back `@`, `{}`, numerous `_`, fanciful `:=`. And, of course, there always is more than one way to do it in Python.

Python's "easy to use" is just a lie, https://github.com/satwikkansal/wtfpython

The common lisp CFFI module is nothing short of Python's.

But, I know, people hate to put their `(` in front of their function names, and people hate to omit `,` between there function arguments.