aliquote.org

March 17, 2026

The usual suspects are the GIL, interpretation, and dynamic typing. All three matter, but none of them is the real story. The real story is that Python is designed to be maximally dynamic – you can monkey-patch methods at runtime, replace builtins, change a class’s inheritance chain while instances exist – and that design makes it fundamentally hard to optimize. The Optimization Ladder