14 de junho de 2009

Diferencas entre o Python 3 vs Python 2.x

Na universidade que eu faço, a UFRPE, nós temos a tradição de usar o python como linguagem "oficial". Portanto eu tenho usado Python a pelo menos 3 anos e a 2 profissionalmente, a algum tempo (+- 6 meses atrás) saiu uma nova versão do Python a 3 ou 3000 ou 3k (escolha o nome que achar melhor), e as opiniões são as mais variadas possíveis, algumas mudanças a tempos era discutida e os caminhos que a linguagem seguia pedia algumas dessas mudanças, e o "Ditador Benevolente do Python" vulgo Guido van Rossum juntamente com os hacker do python após grande discussões chegaram a várias mudanças, algumas, mesmo na versão 3.0, ainda não estão totalmente implementadas e alguns problemas de desempenho ainda existem.
Entre as mudanças mais pedidas e que não foram colocadas no python 3 é o polémico self obrigatório em todos os métodos de uma classe, (assunto de post futuro).
O grande problema para a maioria está na não compatibilidade entre as versões, programas pequenos podem ser facilmente alterados, basicamente substituindo print por print() e input() por eval(input()), mas grandes aplicativos, principalmente os que fazem uso de módulos externos, terão grande trabalho para portar seus aplicativos. Agora é principalmente o momento de portar módulos, vai demorar um tempo até termos tomos os módulos devidamente portados, por esses e outros motivos a comunidade vai continuar por aproximadamente 3 anos mantendo e desenvolvendo em paralelo a versão 2.x, agora na versão 2.6 e que tem certo a saída de uma versão 2.7 (talvez até uma 2.8), com o objetivo de "suavizar" a transição do python 2.x pro 3.

Não era minha intenção falar sobre isso, mas devido as duvidas (minhas e de outros), resolvi dar uma estudada sobre o assunto e vou colocar por aqui as minhas impressões sempre que possível.

Ficarei atualizando este post com os novas postagens ficando um índice para os posts sobre esse assunto:
  1. Vantagens do print no Python 3
  2. O input do python 3
mais posts sobre Python:
- Edje / QEdje (usando Python)- Receitas com Python
- Mini Curso PyGame - JED 2008

Mais informações sobre as "novidades" do python 3 no site oficial

Um comentário:

Krix Apolinário disse...

Estou estudando Python e usando a versão 2.6, mas ainda não havia parado para ler sobre essas direfenças, com certeza estarei, acompanhando as atualizações do post. :)