If PyPy gets good enough, some of the need for C extensions should go away. Things such as &quot;numpy&quot; are written in C because numbers in Python are always boxed, that is, contained in a object.  PyPy tries to figure out when that&#x27;s not necessary, so it can use hardware arithmetic.<p>PyPy has to work very hard to do this, because you can muck with almost anything from anywhere with &quot;setattr()&quot;  Even from other threads.  So any guess PyPy makes has to be un-doable at any time. Python, the language, is what a naive interpreter such as CPython can do easily. In CPython, almost everything is a dictionary, and there are a lot of lookups.  PyPy gets rid of much of that overhead. I&#x27;m enormously impressed that the PyPy crowd got it to work as well as they did.