terça-feira, 17 de abril de 2007

Python your life

Eu sou um cara esquecido. Eu realmente não lembro certas coisas, mas outras eu não esqueço.
Uma vez, ainda no final dos anos 90, putz esqueci em que ano foi... um amigo de faculdade comentou sobre uma tal linguagem "píton". Ele disse ser super prática, muito boa, mesmo sendo script.

Na época eu já trabalhava com Linux e qualquer coisa para ajudar era bem vinda. Baixei o tal do Python e fiz o tradicional imprima os primos, usando listas, claro! Depois um aplicativo para procurar arquivos repetidos no HD. Foi o suficiente para me libertar de Perl, até então a melhor coisa do mundo script para mim.

Passei um tempo sem usar a linguagem. Acho que até 2002, quando um grupo de amigos do trabalho iniciou uma discussão sobre jogos de computador. Como todos eram técnicos, o assunto não era o jogo em si, mas a tecnologia por trás de um jogo. Especificamente, o que mais interessava ao grupo era escolher a melhor linguagem para se codificar um jogo. Como esse tipo de coisa é tão exato quanto religião ou política... resolvi sugerir que cada um tentasse fazer um jogo simples, com a linguagem que achasse melhor.

Eu não gostava de Java, depois explico o por quê. Comecei a brincar com Delphi, que estava a mão na época. Sempre programei em C e não precisava de outro teste para saber o que eu já sabia: C é bom, mas tem coisa melhor hoje em dia. Lembrei da tal linguagem da cobra, o Python (segundo o criador da linguagem, Guido van Rossum, pronuncia-se "Paiton" filme legenda).

Usando Python e Pygame, iniciei um pequeno "shoot them up", tipo Space Invaders, afinal era pra ser um jogo simples. E se o Space Invaders original rodava num Atari com 1 MHz... rodaria em qualquer linguagem script séria.

Comecei desconfiado, testando a performance do pequeno monstro que estava criando. Fiquei surpreso ao constatar que a performance era mais que suficiente para o que eu queria.

A linguagem é realmente interessante: fácil de aprender, multiplataforma, com acesso a todo tipo de bibliotecas de sistema, banco de dados e até jogos! Continuei fazendo o pequeno jogo. Gráficos, sons, suporte a joystick, alteração dinâmica de resolução e suporte a várias línguas. Um jogo realmente simples. Você pode ver o que eu criei em http://invasores.sourceforge.net/.

Quanto aos outros colegas, um iniciou um jogo em Java, acho que até foi em J2ME... mas não chegou a ter cores. Outras tentativas não deixaram rastros. Agora eu tinha provas que Python era boa, não pela superioridade pura e simples de sua simplicidade, mas porque com ela eu podia fazer mais em menos tempo. Produtividade enfim.

Antes eu havia usado o Python para converter banco de dados e realizar operações com arquivos. Desde a experiência com o jogo, eu uso Python para todo pequeno utilitário que eu preciso. E não me surpreendo quando acho outros programas muito bons escritos na linguagem. Esses tempos mesmo, escrevi utilitários para fazer a carga de arquivos CSV para um banco MySql e gerar tabelas em Latex.

Além do poder da linguagem, sua clareza é realmente impressionante. Os tais blocos por identação atenderam a um desejo que eu tinha há muito tempo. Misturar tabs e espaços é complicado, eu sei, mas quando se consegue fazer certo... consegue-se um programa limpo e fácil de ler. Se você consegue ler, consegue aprender.

Eu ensinei lógica de programação para alunos do ensino médio e para algumas pessoas na faculdade. Era terrível ler um programa "desdentado". Mais difícil ainda convencer as criaturas da importância de um código limpo. Esse problema não existe com Python. Será executado como lá está escrito, ou melhor, como se vê. Eu realmente gosto da linguagem.

Além disso tudo, a linguagem vem com todos os acessórios, incluindo-se uma ativa comunidade lusófona em PythonBrasil. Só não aprende quem não quer.

Eu continuo programando em C++ e Java, mas a outra é Python.

Cada um sabe onde seu calo aperta. Python não é bala de prata. Mas como não existe lobisomem... Python your life!

2 comentários:

Pablo Melo disse...

Não programo em Python, mas parece ser muito interessante. A primeira versão do google foi feita nele, se não me engano.

Hoje o a linguagem que mais gosto é Ruby. Pode não ter a velocidade do Python, mas os recursos são os mesmos, com um sintaxe bem mais entendível.

LSK disse...

Olá Pablo,

Um artigo sobre Ruby está sendo escrito pelo Edson César. Não perca :-)

[]

LSK