8 de fevereiro de 2016

Eu devo usar Python 2 ou Python 3?


Afinal, qual Python usar?

Se você vai começar a estudar Python agora ou iniciar um projeto novo, escolha Python 3 e leia Por onde começar com Python?

Nesse artigo vou citar alguns motivos para não usar Python 2, quais são as diferenças entre o Python 2 o Python 3 e como saber se as ferramentas que você pretende usar são compatíveis com Python 3.

Python 2 já vem sendo chamado de "Python legado" ou "Python antigo". Nesse artigo, usarei esses termos para fazer referência ao Python 2 sempre que possível.

Quando devo usar Python 3?

Na verdade, a pergunta correta seria: "quando devo usar Python antigo?"

A resposta curta é "só use Python antigo quando você não tiver escolha". Por exemplo:
  1. Você trabalha em um projeto que já usa Python antigo e migrar não é uma alternativa no momento.
    Essa situação é a mais complicada de todas! Nem sempre você tem autonomia para migrar o sistema. Mas lembre sempre aos seus colegas que essa deve ser uma preocupação constante.
  2. Você precisa de uma biblioteca que só funciona em Python antigo.
    Busque alternativas. Evite ao máximo usar ferramentas que ainda não migraram nem estão em processo de mudança para o Python 3. Eu já apanhei com isso!
  3. O servidor que você vai usar só permite usar Python antigo.
    Procure outro serviço de hospedagem. Só use esse servidor se realmente não houver alternativa.

A comunidade Python está em franca atividade para fazer a migração da enorme base de código existente para Python 3.

O site oficial de Python explica em mais detalhes esse assunto, no artigo Should I use Python 2 or Python 3 for my development activity?

Você vai encontrar muito material sobre o Python antigo na internet. Não se preocupe. Para um iniciante as diferenças são pouquíssimas.

Como saber se uma biblioteca que pretendo usar está disponível para Python 3?

 Alguns sites listam os pacotes compatíveis com Python 3:
Dica: se você pretende programar para web, os principais frameworks já funcionam plenamente em Python 3. Exemplos: Django, Flask, Pyramid, Bottle.

Quais são as diferenças básicas do Python 2 para o Python 3?

Você pode ler o guia oficial What's new in Python 3, mas para iniciantes a leitura é muito densa. Aqui, tentei listar alguns itens importantes em linguagem mais simples. Veja:

print é uma função

No Python antigo:
print "Teste"

No Python 3:
print ("Teste")

Divisão de números decimais

No Python antigo:
>>> 5 / 2
2
>>> 5 / 2.0
2.5

No Python 3:
>>> 5 / 2
2.5

Classes herdando de object

Para desfrutar de todos os recursos de orientação a objetos do Python antigo, suas classes precisavam herdar de object, assim:
class MinhaClasse(object):
    def soma(self, a, b):
        return a + b

No Python 3:
class MinhaClasse:
    def soma(self, a, b):
        return a + b

raw_input() foi renomeado para input()

No Python antigo:
nome = raw_input("Digite seu nome:")
No Python 3:
nome = input("Digite seu nome:")

Como eu disse, essa lista não esgota o assunto. Ela é apenas um resumo prático para iniciantes. Existem muitas melhorias no Python 3 que não impactam tanto quem está começando na linguagem.

Eu sou Vinicius Assef, um programador do século passado que gosta de Python, pratica Lean Development e acredita em Deus. Você pode me contactar por email ou twitter.

Um comentário:

Marcadores