Embora o Python 3.11 seja um grande lançamento e traga melhorias significativas de desempenho, usuários e desenvolvedores podem precisar esperar um pouco mais pelo lançamento estável. A grande expectativa é de que o Python 3.11 pode sair só em dezembro devido a bugs pendentes.
Uma atualização de status referente ao Python 3.11 foi emitida hoje, onde eles podem recorrer ao envio da versão final para dezembro, se a estabilidade não melhorar na próxima semana.
O Python 3.11 Beta 4 está atrasado devido a “um monte de bloqueadores de lançamento pendentes”, mesmo após uma rodada de correção de outros bloqueadores de lançamento. Esses bugs incluem problemas de desempenho, possíveis travamentos e outros problemas de interrupção do show.
Python 3.11 pode sair só em dezembro devido a bugs pendentes
O Python 3.11 já está três semanas atrasado em relação ao cronograma de lançamento e, devido ao infeliz estado dos bugs no momento, eles podem recorrer à emissão de mais dois lançamentos beta que, por sua vez, atrasariam as coisas em dois meses.
Esperava-se que a final do Python 3.11 estreasse por volta de 3 de outubro, enquanto agora, na próxima semana, devemos saber se isso mudará para dezembro. Um atraso de dois meses, em última análise, não é ruim para garantir qualidade extra desta grande atualização do Python, mas o momento lança uma bola curva para as versões de outono da distribuição Linux que pretendiam ser lançadas com o Python 3.11.
O Fedora, por exemplo, já havia começado sua transição para o Python 3.11, mas para o Fedora 37 pode acabar precisando voltar para o Python 3.10, dependendo de como o tempo de lançamento é decidido. O status de versão atual do Python 3.11 pode ser encontrado na lista python-dev.
Expectativa da nova versão estável era para outubro
Uma nova versão do Python deveria sair até o mês de outubro com muitos novos recursos aguardados. Sendo assim, o próximo Python 3.11 terá como principal destaque o melhor desempenho. “O Python 3.11 é até 10-60 por cento mais rápido que o Python 3.10”, afirmam as notas de lançamento. Porém, ao mesmo tempo em que o Python 3.11 ganha maior desempenho, ele passa a consumir também ‘um pouco mais de memória’.
Como isso está sendo feito? Python 3.11 é a primeira versão a se beneficiar de um projeto chamado Faster CPython. Já o CPython é a versão padrão do interpretador.
Faster CPython é um projeto financiado pela Microsoft, cujos membros incluem o inventor do Python Guido van Rossum, o engenheiro de software sênior da Microsoft Eric Snow e Mark Shannon – que está sob contrato com a Microsoft como líder de tecnologia para o projeto.
Uma sessão agendada para o evento EuroPython a ser realizado em Dublin em julho centra-se em algumas das mudanças que permitem a aceleração. Shannon descreverá o “intérprete especializado adaptativo” no Python 3.11, que é o PEP (Python Enhancement Proposal) 659. Isso descreve uma técnica chamada especialização que, explica Shannon, “normalmente é feita no contexto de um compilador JIT [just in time], mas pesquisas mostram que a especialização em um interpretador pode aumentar significativamente o desempenho”.
O interpretador identifica o código que pode se beneficiar da especialização e “uma vez que uma instrução em um objeto de código tenha executado o suficiente, essa instrução será “especializada” substituindo-a por uma nova instrução que deverá ser executada mais rapidamente para essa operação”, afirma o PEP. A aceleração pode ser de “até 50 por cento”.
Shannon também identifica quadros de execução alocados consecutivamente, try-except de custo zero, layout de objeto mais regular e dicionários de objetos criados preguiçosamente em sua prévia da palestra.