Python 3.11 é até 60% mais rápido e traz mensagens de erro mais claras

Nova versão da linguagem de programação Python aumenta desempenho, aponta erros com precisão e lida melhor com grupos de exceções

Emerson Alecrim
Por

Uma das linguagens de programação mais populares dos últimos tempos acaba de ganhar uma versão com vários recursos importantes. Falo do Python 3.11. Entre os seus novos atributos está um incremento no desempenho de até 60%. Outra é a exibição de mensagens de erro mais objetivas, que apontam com clareza a expressão problemática.

Python (imagem ilustrativa: Pexels/Christina Morillo)
Python (imagem ilustrativa: Pexels/Christina Morillo)

A lista mais recente do índice Tiobe coloca o Python como a linguagem de programação mais popular do momento, à frente do C, Java, C++ e C#. Logo, melhorar a experiência dos desenvolvedores que trabalham com o Python é, sobretudo, questão de comprometimento com a comunidade.

Via Twitter, Pablo Galindo Salgado, integrante do conselho da linguagem, tratou de deixar claro que esse comprometimento é levado a sério:

Na equipe de lançamento do CPython, nos esforçamos bastante para fazer a 3.11 a melhor versão possível do Python. Rastreamentos melhorados, Python mais rápido, grupos de exceção e expect*, avanços na digitação e muito mais.

Python até 60% mais rápido

Comecemos pela novidade mais relevante. Em relação à versão 3.10, o Python 3.11 é entre 10% e 60% mais rápido no trabalho com certas instâncias. Em outras, pode não haver ganho perceptível de desempenho. Mas, de modo geral, é de se esperar que o desenvolvedor que trabalha regularmente com a linguagem note a diferença.

Falando especificamente do CPython (a principal implementação da linguagem), o ganho médio de desempenho é de 25% na comparação com a versão anterior. Esse resultado foi alcançado no pyperformance (ferramenta de benchmark) com o CPython 3.11 compilado via GCC no Ubuntu Linux.

Há vários fatores que contribuem para isso. Por exemplo, as chamadas de função agora demandam menos memória. Além disso, o interpretador do Python agora inicializa mais rapidamente — algo entre 10% e 15% mais rápido em relação à versão 3.10.

Mensagens de erro mais claras

Mensagens de erro são exibidas para alertar que alguma coisa está errada, obviamente. Mas, não raramente, o desenvolvedor tem que gastar neurônios para descobrir onde, exatamente, está a falha.

Talvez esse problema continue existindo no Python 3.11 de alguma forma, mas em uma escala muito menor. Isso porque a nova versão traz mensagens de erro projetadas para indicar o local do erro com precisão.

No Twitter, o desenvolvedor Ned Batchelder mostra como isso faz diferença. Repare que, no segundo código do exemplo dado por ele, em Python 3.11, os caracteres ~ e ^ são usados para indicar em qual expressão está a falha. Na primeira parte, em Python 3.10, a mensagem de erro não é acompanhada dessa indicação:

Mensagens de erro no Python 3.10 e 3.11 (imagem: Twitter/Ned Batchelder)
Mensagens de erro no Python 3.10 e 3.11 (imagem: Twitter/Ned Batchelder)

Eis outro exemplo simples, este extraído da página de novidades do Python 3.11:

Traceback (most recent call last):
  File "calculation.py", line 54, in <module>
    result = (x / y / z) * (a / b / c)
              ~~~~~~^~~
ZeroDivisionError: division by zero

Outras novidades

O ganho de desempenho e as mensagens de erro mais objetivas são os principais atributos do Python 3.11, mas não os únicos. Entre os demais estão:

  • tratamento de grupos de exceções por meio da nova sintaxe except* e o novo tipo de exceção ExceptionGroup;
  • inclusão do módulo tomllib para que a linguagem possa ler ou anaslisar arquivos no formato TOML (Tom’s Obvious Minimal Language);
  • remoção de “baterias mortas”, isto é, de módulos obsoletos da biblioteca padrão do Python;
  • CPython agora com suporte nativo para WebAssembly, ainda que experimental.

Todos os detalhes podem ser encontrados na lista oficial de novidades do Python 3.11. Já o endereço para download da linguagem é este.

Relacionados

Relacionados