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.