D: Se PyPy è in grado di risolvere queste grandi sfide (velocità, consumo di memoria, parallelismo) rispetto a CPython, quali sono i suoi punti deboli che impediscono un'adozione più ampia?
A: Innanzitutto, ci sono poche prove che il team PyPy possa risolvere il problema della velocità in generale . Le prove a lungo termine mostrano che PyPy esegue alcuni codici Python più lentamente di CPython e questo inconveniente sembra essere profondamente radicato in PyPy.
In secondo luogo, l'attuale versione di PyPy consuma molta più memoria rispetto a CPython in una serie piuttosto ampia di casi. Quindi PyPy non ha ancora risolto il problema del consumo di memoria.
Se PyPy risolve le grandi sfide menzionate e in generale sarà più veloce, meno affamato di memoria e più amichevole al parallelismo rispetto a CPython è una domanda aperta che non può essere risolta a breve termine. Alcune persone scommettono che PyPy non sarà mai in grado di offrire una soluzione generale che gli consenta di dominare CPython 2.7 e 3.3 in tutti i casi.
Se PyPy riesce a essere migliore di CPython in generale, il che è discutibile, la principale debolezza che influenza la sua adozione più ampia sarà la sua compatibilità con CPython. Esistono anche problemi come il fatto che CPython funzioni su una gamma più ampia di CPU e sistemi operativi, ma questi problemi sono molto meno importanti rispetto alle prestazioni di PyPy e agli obiettivi di compatibilità di CPython.
D: Perché non posso interrompere subito la sostituzione di CPython con PyPy?
A: PyPy non è compatibile al 100% con CPython perché non simula CPython sotto il cofano. Alcuni programmi possono ancora dipendere dalle caratteristiche uniche di CPython che sono assenti in PyPy come i collegamenti C, le implementazioni C dell'oggetto e dei metodi Python o la natura incrementale del garbage collector di CPython.