Python e eu na revista TI Digital

  |   Código

TI Digital - Março 2010

A revista TI Digital do mês março vem com uma matéria de capa com 14 páginas sobre a minha linguagem de programação favorita, Python. E por pura coincidência eu fui um dos convidados a responder algumas perguntas para compor a matéria.

Eu não conhecia a revista antes disso, mas o contato com eles foi sempre muito cordial e a matéria ficou bem bacana, servindo como uma excelente divulgação para a linguagem. Aproveito esse post para colocar aqui as perguntas que a revista me fez e as minhas respostas na íntegra.

Quais foram suas primeiras impressões quando começou a programar em Python? Qual era a linguagem de programação que você utilizava antes?

Eu comecei a utilizar Python em 2005, quando ainda trabalhava no SERPRO. Nessa época eu fui integrado a uma equipe que desenvolvia um sistema para o Ministério da Educação e esse sistema era inteiramente feito em Python. Uma das coisas que mais me impressionou em Python foi o ganho de produtividade em um curto espaço de tempo. Eu não tinha experiência anterior com a linguagem e em apenas 2 dias eu já estava participando ativamente no desenvolvimento de alguns módulos desse sistema.

Anteriormente, eu já havia programado com Java, C#, Visual Basic e ASP e ainda assim, Python também me impressionou bastante pela legibilidade do código-fonte. Quando somos desenvolvedores de software, nós passamos mais tempo lendo código do que propriamente escrevendo, e em Python sempre foi muito fácil entender o código que foi escrito por outro desenvolvedor.

Onde se pode programar Python?

Python pode ser programado em qualquer sistema operacional moderno e até mesmo nos sistemas mais antigos. Em diversas distribuições Linux, como Ubuntu, Fedora, Suse entre outras, o Python já vem instalado nativamente, o mesmo acontece também para o Mac OS X. No caso da plataforma Windows, existem instaladores que podem ser usados para facilmente instalar o Python. Posso destacar que é de longe a linguagem mais portável com que eu trabalhei, e você nem mesmo precisa alterar o código-fonte da sua aplicação para que ela funcione em sistemas operacionais diferentes, isso eu já pude comprovar na prática.

O que é possível desenvolver com o Python?

Python é uma linguagem de programação flexível. Por ser uma linguagem dinâmica e multi-paradigma, Python é ideal para desenvolver desde pequenos scripts para automatização de determinadas tarefas, passando por sistemas web, cliente-servidor, desktop e até mesmo sistemas científicos. Basta dizer que a NASA usa Python, para comprovar o que estou dizendo.

Por que o Python possui duas versões disponíveis para download (Python 2.6.4 and Python 3.1.1)?

Python é uma linguagem um tanto quanto antiga, foi lançada em 1991, e desde a sua criação tem como premissas ser uma linguagem simples, que cabe no nosso cérebro e que procura sempre remover os obstáculos da frente do desenvolvedor para que o mesmo possa se preocupar mais com o conteúdo do que está sendo desenvolvido do que com a linguagem. No entanto, assim como acontece com qualquer linguagem de programação, mesmo Python tendo adotado essas premissas para o seu desenvolvimento, ela foi acumulando alguns "probleminhas" chatos. Para resolver esses problemas e manter uma linguagem simples e que cabe no nosso cérebro, o criador da linguagem resolveu criar a versão 3 de Python quebrando a compatibilidade com a versão anterior (Python 2).

Sendo assim, para manter a compatibilidade com os sistemas antigos criados em Python, foi lançada a versão 2.6 que contém ainda algumas funcionalidades novas da versão 3. E a versão 3, pôde então ser lançada com as novas funcionalidades previstas e sem o compromisso de manter a compatibilidade com as versões anteriores. Com o lançamento dessa nova versão, foi criada também uma ferramenta batizada 2to3 que auxilia na migração de código-fonte criado em Python 2 para Python 3.

O Python pode ser integrado a outras linguagens de programação e ferramentas. Quais são as principais? O que estas integrações oferecem?

As principais integrações de Python são justamente com as plataformas de desenvolvimento que mais fazem sucesso no mercado hoje. Python possui integração com a plataforma Java através de um projeto chamado Jython que está em constante evolução e oferece acesso total as classes Java e permite que código Python seja compilado em classes Java.

Existe também a integração com a plataforma .NET através do projeto IronPython, sendo esse também um projeto bastante evoluído que conta com um console interativo para experimentar trechos de código e conta também com uma IDE específica baseada no Visual Studio da Microsoft. Essa integração permite que você tenha acesso às bibliotecas do .NET Framework usando o Python, ao invés de uma das linguagens da plataforma .NET . Com essa integração nós podemos, por exemplo, criar uma aplicação desktop com a biblioteca .NET padrão (WPF) usando código Python na solução.

Outra integração que ainda está em fase beta, mas que promete ser bem interessante é o PyObjC que é uma integração entre Python e Objective-C, a linguagem utilizada para desenvolver aplicativos para iPhone, iPod Touch e para o recém-lançado iPad. Acho que não preciso nem comentar muito quais serão as vantagens dessa integração né?

Existem alguns fatores tecnológicos q o Python precisa evoluir. Então, o que você sente falta no Python? O que gostaria que fosse diferente na linguagem?

Python possui um conceito muito interessante chamado de "batteries included", o que significa que a biblioteca padrão do Python é muito poderosa, de modo que lhe oferece funcionalidades para diversos tipos de necessidades que venham a surgir para a sua aplicação. Mas mesmo assim, ainda sinto falta em Python de uma biblioteca nativa que seja capaz de lidar com web services por exemplo, existem alguns projetos interessantes nesse sentido, mas acredito que a biblioteca padrão pudesse incorporar essa funcionalidade.

Usar concorrência em Python também ainda é bem rudimentar, e acredito que a linguagem possa evoluir MUITO nesse ponto, não somente na questão de performance que se torna sofrível em alguns casos que você precise lidar com concorrência, como a própria módulo python para esse fim, threading, poderia incluir mais funcionalidades para facilitar a vida de quem precisa programar usando concorrência.

Na parte de orientação a objetos, eu gostaria que Python tivesse uma melhor implementação de encapsulamento, não somente por necessidade minha, mas também para poder "agradar" aos desenvolvedores que tem uma grande experiência com OO e acabam não se acostumando muito bem com o encapsulamento de Python que é bem diferente de Java e .Net, por exemplo.

A comunidade Python ainda não é muito conhecida. Qual a melhor maneira de fazer com que o Python seja mais explorado? O que ainda falta para convencer os programadores sobre o poder do Python?

Outro dia ouvi um colega de trabalho dizer que Python é uma linguagem que deu certo em outros países, mas não funcionou no Brasil. Concordo que isso já pode ter sido verdade algum dia, mas hoje estamos experimentando uma realidade diferente. Muitas empresas no país tem adotado Python para projetos importantes, e acredito que para fazer com que o Python seja mais explorado é importante mostrar que a cena está mudando. É necessário investir em um marketing positivo, ou seja, ao invés de criticar duramente as linguagens que hoje dominam o mercado, precisamos exaltar as características do Python, convencer as pessoas, especialmente aquelas que hoje estão em posição de decisão, de que Python é uma alternativa viável, estável, mais rápida e mais barata do que a maioria das opções que existem hoje.

Convencer os programadores, eu acredito ser a parte mais fácil do processo, mas precisamos de mais eventos técnicos focados em Python para mostrar todas as possibilidades que o Python oferece. Usar um veículo de comunicação como a revista TI Digital com uma matéria de capa sobre Python já mostra que o cenário está mudando rapidamente e favoravelmente à linguagem, isso também ajuda a mostrar para os desenvolvedores que existem alternativas.

A comunidade brasileira tem ajudado de alguma forma para o crescimento e atualização da linguagem?

A comunidade brasileira de Python é fantástica. Hoje nós temos a Associação Python Brasil que promove anualmente uma conferência de Python que cada vez mais tem crescido em qualidade e audiência. E sem contar que temos diversos grupos locais espalhados pelo país, entre eles posso destacar o PythonRio que promove alguns eventos importantes sobre Python durante o ano. Um desses eventos promovidos que merece destaque é o PythonCampus que é uma espécie de caravana de tecnologia que visa integrar os estudantes de diversas universidades do estado com o mercado e com a tecnologia em si.

Comments powered by Disqus
Share