3 Mitos sobre a Linguagem de Programação Python

Esta obrigação em Python de sempre alinhar os blocos de código me faz lembrar de COBOL!

Programadores já são obrigados a escrever com algum tipo de marcação de blocos de comandos (BEGIN/END ou { }) e alinhar código sempre foi considerado uma boa prática de programação. Python deu um passo à frente e incorporou a estética na sintaxe, o que é bastante aceitável. COBOL exige que certos elementos sintáticos estejam presentes em posição específicas nas colunas, Python exige apenas que os blocos de comandos sejam alinhados de forma consistente: dois, quatro espaços ou tabulações não importa, desde que seja sempre utilizado de maneira uniforme.

Se a linguagem Python roda em um interpretador, então Python é lento como a linguagem BASIC?

Diferente do modelo de transformação (parsing) em tokens e interpretação direta de BASIC, linguagens modernas como o Python fazem uso de uma técnica popularizada nos primeiros interpretadores de PASCAL: a compilação do código fonte em um código de máquina intermediário (bytecode) para uma máquina virtual, que é então executado por esta máquina. Em resumo, todo o fonte em Python é traduzido para uma forma mais simplificada e compactada que é então interpretado. O desempenho de um interpretador está relacionado com a expressividade da linguagem e sua complexidade de implementação, e mais diretamente, com a qualidade do código e os algoritmos escolhidos para implementá-lo.

Ouvi dizer que Python possui um Garbage Collector (GC) para gerenciamento de memória, isto pode ser um problema se meu aplicativo estiver rodando em um ponto crítico e o GC resolver entrar em ação!

Python possui dois mecanismo de gerenciamento de memória: contagem por referências e o GC, muita gente confunde os dois como sendo GC mas não são. Contagem por referências é um mecanismo simples, para cada uso de um objeto é incrementando um contador, quando o objeto não é mais necessário em um escopo, decrementa-se o contador até que a contagem por referências seja zero e então este objeto pode ser removido da memória. O GC entra em cena quando objetos em memória possuem referências cíclica e precisam de um pouco mais de inteligência para serem removidos. É interessante saber que pode-se desligar o GC ou sua coleta automática e assim ter controle manual da ação do GC em momentos mais oportunos.