Versão 3.11.0 do Python já está disponível.

Como todos já sabem Python é a linguagem de programação mais popular dos últimos tempos, e acaba de ganhar uma nova versão, o Python 3.11, que possui vários recursos  importantes. Um incremento no desempenho de até 60%, está entre os seus novos atributos. O outro é a exibição de mensagens de erro mais objetivas, que apontam com clareza a expressão problemática.

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

Pablo Galindo Salgado, integrante do conselho da linguagem, através do Twitter, 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.”

 

60% mais rápido

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 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

O desenvolvedor tem que gastar neurônios para descobrir onde, 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.

 

O desenvolvedor Ned Batchelder no Twitter, 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:

 

 

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.