А что если сделать этакий легковесный Python со статической типизацией, а потом написать на нём интерпретатор для Python? А чтобы он был кроссплатформенным, сделать этот язык не компилируемым, а интерпретируемым. А потом, чтобы интерпретатор работал быстрее, налету скомпилировать отдельные его участки. Ну и раз уж у нас есть компиляция кусков питон-кода (ну, это не совсем питон, да, но всё же), то по схожим механизмам можно ещё компилировать куски интерпретируемого кода. А теперь, чтобы было ещё быстрее, возьмём куски из stackless python, чтобы стандартный стек C нас не тормозил…
Ладно, я и сам не понимаю, как это работает. Но как-то так устроен PyPy. Вообще, питонов много разных, и на хабре даже есть статья об этом: Почему существует так много Питонов?
Я твёрдо намерен попробовать использовать PyPy для своих проектов. Ну, тех, где хорошее покрытие тестами, чтобы без сюрпризов. К слову, есть довольно интересная статья как в 2о18 году сдружить между собой кучу Python-окружений: My Python Development Environment