Guido Van Rossum o criador da linguagem de programação Python, falou na semana passada aos participantes do Language Summit que espera dobrar o desempenho na versão 3.11.
A Linguagem é relativamente lenta em sua implementação CPython padrão, embora existam outras formas de torna-la mais rápida, alternativas orientada para o desempenho como PyPy.
Van Rossum historicamente, parecia despreocupado com o desempenho do Python, favorecendo a simplicidade de um compilador que é menos otimizado.
“Fiquei entediado sentado em casa durante a aposentadoria” disse Rossum. “Candidatei-me à Microsoft e fui contratado. Tive liberdade para escolher um projeto. Decidi voltar às minhas raízes. Esta é a forma da Microsoft de retribuir ao Python.”
Uma “pequena equipe” financiada pela Microsoft comanda o projeto, incluídos nela estão i Eric Snow, desenvolvedor Python Core e engenheiro de software sênior da Microsoft, e Mark Shannon, engenheiro de pesquisa da Semmle, que desenvolve produtos para análise de segurança de código. Semmle faz parte do GitHub desde setembro de 2019, então esta é uma equipe totalmente Microsoft, embora Van Rossum tenha notado que aumentar a equipe.
O projeto possui um repositório GitHub que inclui um fork do CPython, bem como um rastreador de problemas para ideias e ferramentas para fazer analisar o desempenho. De acordo com Van Rossum, “não haverá bifurcações / ramos de longa duração, nenhuma surpresa de 6.000 solicitações de pull de linha” e tudo será de código aberto.
Shannon trabalhou no desempenho do Python por algum tempo, com projetos anteriores HotPy e HotPy (2) para um compilador just-in-time para CPython.
Com seu próprio repositório, Faster CPython escreveu “queremos acelerar o CPython por um fator de 5 nos próximos quatro lançamentos.”
Algumas plataformas, como o iOS da Apple, não permitem a “geração de código em tempo de execução”, mas acredita que mesmo nesses casos uma duplicação da velocidade deve ser possível.
Embora Shannon se vislumbre com um compilador JIT eventualmente, isso não viria até Python 3.12 em seu plano. As alterações para Python 3.11 seriam baseadas em “muitos ajustes”, como melhor layout de memória, desempenho aprimorado para números inteiros pequenos, chamadas e retornos mais rápidos e manipulação de exceção de sobrecarga zero.
Como Van Rossum observou em sua palestra existem várias restrições, incluindo não quebrar a compatibilidade estável da ABI (Application Binary Interface), para manter o código compatível e não causar lentidão em casos extremos. Disse que muitas coisas podem ser alteradas com segurança, incluindo o bytecode do Python, o layout do frame da pilha, o compilador e o interpretador. O layout do quadro de pilha descreve como os dados que definem uma função são posicionados na memória.
As notas de Van Rossum parecem combinar bem com as ideias existentes de Shannon. “Há geração de código de máquina em nosso futuro”, disse ele, e como Shannon, refere-se à aceleração de 5x como uma meta de longo prazo, embora “tenhamos que ser criativos”.
Python 3.10, atualmente em beta, está ajustado para lançamento em outubro deste ano. O cronograma de lançamentos é quase anual, talvez podemos ter 3,11 em outubro de 2022.