quinta-feira, 20 de novembro de 2008

Porque Python?

Muitos me perguntam sobre as vantagens do Python e o porque de, dentre tantas linguagens de programação, eu optei por ter o python como minha paixão oficial. Para evitar dar várias respostas à diferentes pessoas, resolvi compilar aqui alguns dos motivos que encontrei e que em minhas pesquisas iniciais me motivaram a escolher o Python como minha linguagem favorita.

Comecemos então pelas origens do Python. A linguagem foi criada em 1989 pelo holandês Guido van Rossum em Amsterdã. Influenciada pela linguagem ABC, desenvolvida no CWI por Guido e outros nas décadas de 70 e 80. ABC tinha um foco bem definido: ser uma linguagem de programação para usuários inteligentes de computadores que não eram programadores: Físicos, Cientistas Sociais, dentre outros. O projeto de sistema operacional distribuído da época, o Amoeba, precisava de uma linguagem de script. Eis que surge então o Python, trazendo como sua base os seguintes aspectos:

  • Elementos que eram bem sucedidos no ABC.
  • Estruturas de dados poderosas inclusas: Listas, Dicionários, Strings, etc..
  • Usar indentação para delimitar blocos, eliminando chaves. (Eu adoro isso! :p)
  • Fácil extensão (lição aprendida com os erros do ABC)
  • Fácil de portar: além do Amoeba, também era desejado que ele rodasse em Unix, Macintosh e Windows.
  • Influências de Modula-2 e Modula-3: módulos e namespaces

Além destes aspectos o python teve alguns "favorecimentos" durante sua criação. Alguns detalhes que contribuíram para sua concepção de sucesso foram:

  • Universidade: pessoas altamente especializadas para desenvolver e opinar os elementos do projeto
  • Descontraído: o nome Python vem da séria de humor Monty Python's Flying Circus
  • Sem prazos, Sem pressão: o desenvolvimento não foi pressionado por estratégias de marketing, prazos, clientes ou qualquer outro fator que pudesse influenciar nas decisões de projeto, resultando em maior qualidade.
  • Software Livre: garante a vida da tecnologia

Dentre as características do Python que mais me chamaram à atenção, estão as seguintes:

  • Simplicidade: Python é uma linguagem muito simples.
  • Interpretada: usa máquina virtual, facilita portabilidade.
  • Interativa: pode-se programar interativamente, os comandos são executados enquanto digitados. Facilita testes, desenvolvimento ágil e outros.
  • Orientada a Objetos: Tudo é objeto. Incluindo herança múltipla, conceito apenas parcialmente presente em Java até então.
  • Exceções: Um moderno mecanismo para o tratamento de erros.
  • Coleta de lixo automática: Sistema que elimina os erros causados pelo acúmulo de dados inúteis na memória do computador.
  • Fortemente Tipada: Não existe casts e nem conversão automática. Não se mistura tipos "automagicamente". :p
  • Tipagem Dinâmica: A tipagem de um objeto é feita em tempo de execução. Um objeto tem tipo, uma variável não.
  • Portabilidade: Portável para diversas arquiteturas como: Unix, Linux, BSD, Macintosh, Solaris, Windows, OS/2, Amiga, AROS, AS/400, BeOS, QNX, Palm OS, VMS, Psion, Acom Risc OS, PlayStation, Sharp Zaurus, Windows CE, PocketPC, etc. Quer mais o que???
  • Extensível: Facilmente extensível caso deseje parte do seu código em C++ por exemplo por algum motivo.
  • Quer mais? o.O

E para os que se perguntam: Python é realmente utilizado por aí? Quem usa?

Vejamos....

No Brasil:

  • Embratel: monitoramento das interfaces de backbone e clientes de internet, também existem scripts de uso interno.
  • CPqD: monitoramento de centrais telefônicas.
  • Conectiva (Mandriva): Gerenciamento de pacotes da distribuição Linux e ferramentas de uso interno.
  • Async: desenvolvimento de software de automação comercial.
  • GPr Sistemas: Desenvolvimento de aplicações sob encomenda, sistemas como monitoramento de transporte terrestre via satélite são as soluções já feitas.
  • Outras que também utilizam Python para sistemas web, como: Varig, Serpro, Câmara, Interligis, etc.

E no mundo a fora:

  • Industrial Light & Magic: automação interna: "Sem o Python um projeto do tamanho do Star Wars: Epsódio II, seria muito difícil de sair pronto."
  • NASA: Repositório de CAD/CAE/PDM, gerência de modelos, integração e sistema colaborativo. "Nós escolhemos python porque nos proporciona uma máxima produtividade com código que é limpo e fácil de manter, sendo forte e extensível em bibliotecas, bem como excelente capacidades de integração com outras aplicações de qualquer plataforma."
  • Apple: Ferramenta padrão desde o MacOS X.
  • Microsoft: Investimento no Iron Python para a plataforma .NET.
  • Disney: Jogos e Sistemas internos de automação e criação do patrocínio PyQT.
  • Bank Boston: Sistema web usando Python e Zope.
  • Nokia: Sistema de programação para celulares da série 60, permite mais recursos que o Java.
  • Atari: Jogos, como "Temple of Elemental Evil".
  • Yahoo: Yahoo! Groups foi escrito inicialmente em puro python: 180.000 linhas de código cuidavam de tudo, tratando mais de 200 mensagens/segundo em um simples Pentium 400Mhz.
  • Nortel: Sistemas web "ChartWare", "WebBook" e "WebTrack" são exemplos.
  • Philips: Automação da linha de semicondutores na fábrica de Fishkill.
  • Lawrence Livermore Natinal Laboratories: Ambiente de engenharia numérica.
  • Red Hat: diversas ferramentas para linux, o instalador das distribuições Red Hat e Fedora (Anaconda).
  • Gentoo Linux: Sistema de gerência de pacotes "Portage".
  • Blender 3D: software pode ser estendido usando plugins python.
  • ArchLinux: O famoso Pacupdate que checa as atualizações de pacotes disponíveis.
  • GOOGLE: Este é o maior case quando o assunto é Python. O Google é grande adepto do Python e utiliza em várias de suas ferramentas como: Sistema de Ajuda do GMail, Google Groups, Sistema de Compilação de aplicativos, Sistema de empacotamento e entrega de dados, Sistema de monitoramento e manutenção do cluster, Sistema de testes, Análise de registros, Prototipação, etc. "Requisito para contratar profissionais Java: Saber Python! :-)" (É mole?!)


Em resumo, Python é uma linguagem para quem quer produzir com código limpo e de forma bem feita com boa produtividade.

Menos porcaria, maior produtividade, sem marketing envolvido nas decisões, digitando menos! Bem vindo ao Python!

Fontes: Wikipedia, Google e Gustavo Sverzut Barbieri (www.gustavobarbieri.com.br)

Abraços

2 comentários:

Anônimo disse...

Investimento no Iron Python para a plataforma .NET.
Não sabia que a Microsoft adotou o Python para a criação do .NET, muito interessante, parabéns pela bela postagem.

kalib disse...

HUahuha..
Pois é... muita gente acabou investindo em python.. E como mostrado, o python foi fundamental em muitos projetos importantes. ;]