Saiu o Python 3 – e agora?

Python 3 is out – now what?
Autor original: Jonathan Corbet
Publicado originalmente no:
lwn.net
Tradução: Roberto Bechtlufft

Há alguns anos a comunidade de desenvolvedores do Python vem falando no “Python 3000”, uma versão a ser lançada em um futuro distante e que permitiria que a linguagem de programação fosse completamente repensada, corrigindo vários probleminhas chatos que se acumularam com o tempo. No dia 3 de dezembro essa idéia se tornou realidade com o lançamento do Python 3.0. A nova versão é o resultado de muita reflexão e desenvolvimento; ela representa a visão de Guido van Rossum e companhia para a linguagem por tempo indeterminado. Agora que ela saiu, a comunidade do Python de um modo geral parece viver um momento de “e agora?”.

A ampla comunidade de desenvolvedores parece dividida em três grupos quanto ao Python 3.0, numa situação que curiosamente lembra a história de cachinhos dourados e os três ursos. Um grupo (o “grande demais”) parece achar que uma versão incompatível do Python jamais deveria ter sido lançada, e que as linguagens devem permanecer compatíveis para sempre. Outro grupo (o “pequeno demais”) aceita a idéia de uma transição incompatível, mas acha que a comunidade do Python deveria ter acrescentado mais recursos interessantes à linguagem. E, obviamente, a turma do “está ótimo” defende a posição de que as mudanças no Python 3 são exatamente as que deveriam ser. Veja este debate iniciado por James Bennett para uma boa exposição da postura “está ótimo”.

O tempo dirá qual posição mais se aproxima da realidade. Se o grupo “grande demais” estiver certo, o Python 3 (ou o Python de modo geral) vai começar a sumir, e os desenvolvedores, insatisfeitos com a quebra da compatibilidade, vão migrar para outra linguagem que acharem melhor. Se o Python 3 for pequeno demais, vai haver pressão para um lançamento rápido do Python 4. Mas eu acho que a comunidade do Python chegou bem perto de acertar a mão. Tudo o que realmente precisava ser acertado foi acertado, mas os desenvolvedores do Python resistiram à tentação de tentar fazer mais do que deveriam. Eles observaram de uma distância segura o que aconteceu com as reescritas do Firefox e do Perl 6, e concluíram sabiamente que suas vidas, e a vida dos usuários do Python, seriam melhores se eles evitassem uma experiência semelhante. Com isso, limitaram seus objetivos e conseguiram concluir o trabalho em um tempo razoável.

Exceto, é claro, pelo fato do trabalho não ter, de fato, acabado. Para começar, a presença de algumas poucas dificuldades na versão 3.0 não deve surpreender a ninguém. Os desenvolvedores esqueceram de remover a função obsoleta cmp(), e com isso pode haver código recém-convertido que dependa dela. Há uns problemas com o desempenho. Alguns outros recursos não estão funcionando muito bem. Acertar de vez as contas com o Unicode pode levar mais um tempo – problema este que não é exclusividade do Python. A lista parece bem pequena dado o tamanho da nova versão dessa complexa linguagem de programação, mas ainda há o que consertar. Por isso, é quase certo que teremos uma versão 3.0.1 até o fim do ano, e uma 3.0.2 por volta de fevereiro.

Enquanto isso, os hackers do Python deixam claro que a versão 2.x da linguagem ainda vai ser suportada por alguns anos. A versão 2.6, que está disponível no momento, inclui vários recursos que visam a facilitar a eventual passagem para a versão 3.0. Enquanto os projetos de transição vão ficando sérios, outras maneiras de contribuir com esse processo vão se tornar claras; haverá uma eventual versão 2.7 que vai incorporar as lições aprendidas de todas as maneiras possíveis. Uma futura versão 2.8 não foi descartada. O plano atual parece ser manter o Python 2.x por pelo menos mais três anos.

Isso é bom porque muitos desenvolvedores do Python acham que ainda não chegou a hora de migrar para a versão 3.0. O núcleo da linguagem parece estar relativamente em forma, mas uma linguagem como o Python envolve muito mais do que o núcleo. A maioria dos códigos não triviais faz uso pesado da ampla variedade de bibliotecas do Python, e a maioria dessas bibliotecas não oferece suporte ao Python 3. Agora é uma boa hora para os mantenedores de bibliotecas pensarem na migração para o Python 3.0, mas os desenvolvedores de aplicativos que tentarem portar código agora provavelmente vão ter sua dose de frustração. Portar programas menores ou subsistemas como exercício de aprendizado da nova linguagem pode fazer sentido, mas a adaptação de aplicativos complexos vai ter que esperar mais um pouco.

O que os distribuidores devem fazer já é outra história. Por enquanto, parece que só o Fedora está debatendo publicamente a transição para o Python 3 – veja esta discussão – e eles ainda não sabem o que vão fazer. Os mantenedores do Fedora, pelo visto, preferem permanecer com o Python 2 por tempo indeterminado; as chances do Python 3 aparecer no Fedora 11 são bem pequenas. Há fortes opiniões contrárias à manutenção das versões 2.x e 3.x em uma mesma versão da distro; eles preferem migrar de vez.

Eu acho que essa coisa de marcar data para recolher a bandeira de uma versão e hastear a da outra não vai dar certo. Há muitos pacotes que precisam ser portados, e muitas pessoas que fazem esse serviço gostariam de contar com a ajuda do distribuidor. A Red Hat custou muito a migrar para o Python 2, e muitos usuários tiveram que compilar e instalar a nova versão da linguagem por conta própria. Se o Fedora repetir a história com o Python 3 certamente deixará seus usuários frustrados.

Ainda assim, manter as duas versões da linguagem não é tarefa fácil. Instalar uma versão diferente do Python é bem simples. Manter duas versões de todo um conjunto de módulos certamente não é. Isso vale especialmente para o Fedora; algumas outras distribuições (especialmente as derivadas do Debian) têm mecanismos melhores (e mais experiência) para lidar com múltiplas versões de ferramentas que formam o núcleo do sistema. Por isso a relutância dos desenvolvedores do Fedora em mergulhar nesse trabalho não é surpresa. Talvez essa seja uma boa oportunidade para a comunidade do Fedora dar uma ajuda.

Pode até levar alguns anos, mas a transição vai acabar sendo feita, e as pessoas vão se perguntar porque houve essa confusão toda. E quando estiver tudo pronto, poderemos trabalhar com uma versão mais limpa, fácil de manter e melhor adaptada ao Unicode dessa importante linguagem de programação. Isso, eu espero, vai valer as dores de cabeça que teremos a curto prazo.

Créditos a Jonathan Corbetlwn.net
Tradução por Roberto Bechtlufft <roberto at bechtranslations.com>

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X