Python é opção para desenvolvimento web

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on pocket

Antes de começar, gostaria de deixar claro que não sou um desenvolvedor (ou programador, escolha o termo) na acepção mais purista da palavra. Sou na verdade um profissional de humanas que convive com computadores pessoais desde criança e no máximo um “desenvolvedor hobbysta”.

Hoje o que mais atrai os inúmeros novos desenvolvedores é o ambiente web. Muitos por pressão do mercado, muitos por verdadeira paixão pelos conceitos que a web representa e alguns por que só conheceram o mundo construído através de interfaces web.

Como todos os desenvolvedores web mais antigos, segui os caminhos do mercado e trabalhei com CGIs, ASP, PHP, desenvolvi projetos com JSP e até mesmo com WebClasses (conceito natimorto da Microsoft). De toda esta experiência o grande ensinamento é que desenvolvimento web significa, necessariamente, flexibilidade e agilidade, principalmente com relação a interfaces de usuário.

Não importa quão complexo seja o sistema ou a necessidade de integração, mas as alterações de layout, design, navegação devem ser feitas de forma rápida e ágil. É preciso entender que alterações deste tipo são essenciais para o negócio.

Sendo assim ficam claros os “porquês” da preferência da maioria dos desenvolvedores web por linguagens como ASP e PHP. Apesar de todo tipo de crítica, elas representam esta agilidade.

Obviamente existem aqueles que preferem a segurança e robustez à agilidade e escolhem, na maioria dos casos, alguma solução baseada em Java. O cenário é relativamente o mesmo há alguns anos, sendo assim podemos supor que os desenvolvedores, na média, enxerguem estas como as únicas opções “aceitas” para desenvolvimento web.

Pois é, não são.

Além de PHP, ASP e Java

Ainda em meados de 2000 ouvi falar de um tal de Zope e de uma linguagem de programação chamada Python. De início não levei muito a sério a opção, pois o mundo se dividia na tríade composta por PHP, soluções Microsoft e Java. Por que alguém racional se aventuraria por terras desconhecidas (ou terras pouco exploradas como Perl, Ruby e até mesmo Lisp)?

Basicamente, porque eles são inovadores. Vêem o que os outros demorarão meses ou até anos para perceber, e chegam lá primeiro. Python é uma linguagem madura, está por aí há um certo tempo (foi criada em 1991) e é utilizada em projetos web sérios (leia-se Google, e-Groups, …) ao menos desde 1996.

A pergunta então é: se projetos tão importantes foram desenvolvidos em Python, como esta linguagem não é tão conhecida ou divulgada como as três opções acima?

Uma simplificação da resposta poderia ser que nenhum gorila da tecnologia financia o marketing da linguagem. Não há empresas como Microsoft, Oracle, Sun ou IBM investindo para torná-la popular. Mas, como disse, seria uma simplificação, pois PHP está aí independentemente do marketing de grandes corporações. Há uma série de fatores que poderiam explicar esta falta de popularidade de Python como linguagem de programação, mas esta discussão seria longa demais para este momento.

Por outro lado os casos de sucesso de Python (e aplicações web escritas com ela) estão aí para provar que ela é uma das melhores escolhas para desenvolvedores que buscam robustez e produtividade, com facilidade de aprendizado, disponibilidade de módulos prontos para tarefas como conexão a sistemas legados, webservices, tratamento de imagem, integração com aplicativos de produtividade e com todo tipo de aplicações que você possa imaginar (o brinquedo já vem com as pilhas no pacote!).

Mas por que Python?

Você deve estar se perguntando então “Por que que eu, desenvolvedor de (coloque aqui sua linguagem favorita), deveria conhecer e utilizar Python em projetos web?”. Alguns argumentos:

  • é fácil de aprender e muito intuitiva
  • faz você ser muito produtivo – escreva menos linhas de código e tenha tempo livre para… escrever outras linhas de código 😉
  • dificulta que você escreva códigos obscuros, impossíveis de serem mantidos
  • é multi-plataforma. Desde Mainframes até telefones celulares suportam a linguagem
  • mais robusta e segura que outras linguagens de script (como PHP)
  • mesmo sendo robusta e segura, não é tão burocrática quanto C ou Java
  • tem código aberto
  • muito importante: você conta com diversas opções para desenvolver suas aplicações

Opções? Quais opções?

Python conta hoje com ao menos quatro boas plataformas para desenvolvimento de aplicações web. Cada uma com suas características, mod_python, Django, TurboGears e Zope são escolhas seguras para qualquer desenvolvedor.

  • Mod_python é um projeto mantido pela Apache Foundation para suporte a linguagem Python como linguagem de script ao servidor Apache (assim como o mod_php ou o mod_perl)
  • Django é um framework de alto nível para desenvolvimento web, que tem como características a agilidade para o desenvolvimento de aplicações e foco no pragmatismo (não perca tempo onde não é preciso, não reescreva o mesmo código diversas vezes)
  • TurboGears é outro framework que foca, muito, em agilidade no desenvolvimento de aplicações, utilizando-se de templates e facilidades na implementação da integração com base de dados relacionais. TurboGears vem ganhando muitos fãs nos últimos anos, principalmente entre programadores que vêm de PHP ou ASP.
  • Zope é, entre estas opções, a mais conhecida e mais madura. O Zope é um servidor de aplicações (compare-o a um JBoss ou a um TomCat) que conta com uma base de dados orientada a objetos e está no mercado há pelo menos 10 anos (8 destes como software livre). Não é o ambiente mais fácil para se começar a desenvolver, mas com poucas horas de prática você já percebe a facilidade que ele proporciona. Hoje a aplicação mais conhecida escrita em Zope é um sistema de gerenciamento de conteúdo (CMS) chamado Plone, que é adotado em portais como IDGNow!, OAB/SP, Câmara dos Deputados, Portal da Presidência, Dicionário online Veja-Larousse, Free Software Foundation, entre outros.

Casos de Python no Brasil

São diversos os casos de utilização de Python em portais web no Brasil, citando alguns (divididos por segmento):

Neste momento, mais importante do que os casos de sucesso é a demanda que existe por profissionais que conheçam Python. Cidades como Brasília, São Paulo, Recife e Rio de Janeiro têm um volume maior de ofertas de emprego do que profissionais qualificados. Escolher Python, se qualificar como desenvolvedor Python é neste momento, garantia de empregabilidade.

Aprofunde

Veja os links abaixo, conheça as opções, desenvolva. Se você dominar o idioma inglês, veja este vídeo (cuidado, são mais de 300Mb) feito pela equipe de desenvolvimento web do Jet Propulsion Lab da NASA, e por fim, volte a se divertir escrevendo código para a web.

Para saber mais (em português):
[1] http://www.pythonbrasil.com.br
[2] http://www.tchezope.org
[3] http://www.oturbogears.org

Para saber mais (em inglês):
[1] http://www.python.org
[2] http://www.djangoproject.com/
[3] http://www.zope.org
[4] http://www.plone.org
[5] http://www.turbogears.org

[Webinsider]

Avatar de Érico Andrei

<strong>Érico Andrei</strong> (erico@simplesconsultoria.com.br) é diretor da <a href="http://www.simplesconsultoria.com.br" rel="externo">Simples Consultoria</a></strong>

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on pocket

36 respostas

  1. Bom dia.
    Muito bom o artigo.
    Atualmente também estou estudando python e o usando para administrar meus servidores. Estou mudando todo o sistema de gerenciamento dos mesmos para ser feito via console, poupando recursos da maquina. É uma linguagem formidável em todos os sentidos, e sim, pau pra toda obra.
    Para aplicações comerciais, ainda sinto falta de algo como visual studio ou delphi em que tudo funciona integrado como uma ferramenta rad. Do tipo, você colocar o componente timer no form, clicar duas vezes, e ele ja ti deixa na cara do “gol” com tudo criado (todas as ligações necessárias). Tem o BOA, mas ainda não vi neste nível. De qualquer forma, uma ótima linguagem que veio pra ficar e que renderá ainda muitos artigos, comparativos e etc…

    Muito bom texto Érico. Parabéns.

  2. Colegas,
    Trabalho com JAVA há 05 anos e atualmente estou começando a estudar Python.
    Bom, tenho que confessar que estou maravilhado com a linguagem, mas frustado com a pequena quantidade de exemplos encontrados(principalmente, sistemas, aplicações e este tipo de coisa), ou seja, poucos e simples.
    Em JAVA eu tenho um site(http://java-source.net/) muito bom com várias sistemas feitos na linguagem dividos em categorias e seria excelente termos isto no PYTHON.
    Outra coisa, estive olhando o framework Django(uma opção de MVC em PYTHON), mas achei muito complicado os tutoriais de instalação e configuração, se alguém tiver um material mais detalhado e preferencialmente em português agradeço. Se alguém tiver um exemplo de CRUD para uma aplicação web feito em PYTHON, por favor coloque o link aqui para compartilhar com os colegas que como eu, estão querendo fazer algo completo em PYTHON para web.

  3. Parabéns pelo artigo! Achei muito interessante o comentário do nosso colega sobre o python.

    Ah ta bom, pelos comentários, acho que 90% do mundo é feito em python agora

    Gostaria de saber qual tecnologia poderia se aplicar especificamente o Python para a web?

    abraços, ike

  4. Um das maiores qualidades que eu acho no python é a sintaxe simples, não é como no php que vc pode mistura php com html, no python o código html fica todo dentro do print. Fazer manutenção em arquivos python é moleza ao contrario de liguagens como Java que vc demora horas para achar é modificar o erro.

  5. Primeiramente, parabéns pelo artigo!

    Desenvolvo a algum tempo em Asp.Net, usando C#. Recentemente fui apresentado ao IronPython, uma implementação pyhton para DotNet, fiquei maravilhado com as facilidades e a clareza do código.

    Não perdi tempo e comecei a procurar informações e descobri que, além da linguagem, existe uma mistura de framework e servidor web, O ZOPE. Maravilha!!!!

    O que eu fiz??

    Mergulhei de cabeça.

  6. Entendi que o Python é uma alternativa e que tem suas vantagens, mas esperava ver uma apresentação de como eu (realmente) conseguiria obter tais resultados com esta tecnologia. Show me the code!

  7. Eu acredito que tenha espaço para todas as linguagens. Não existe, linguagem popular, se fosse assim todo mundo só falaria inglês. Vamos, voltar ao passado e ver que a linguagem Clipper era a mais utilizada nos meios de TI. Hoje ela se tornou obsoleta, devido a queda do MS-DOS, e a grande demanda por programas com interface gráfica. Depois, dela veio o Pascal, caiu em desuso, pois era muito cheio de gambiarras. E outras e outras como o C/C++… Se todas as tecnologias fossem criadas para serem eternas, não seria óbvio estarmos aqui discutindo esse assunto. Pois, poderiamos dar as costas, para o novo e manter as nossas cabeças como burros de carroça, onde ele só olha pra frente, esquecendo as alternativas ao redor. Claro se tiver um abismo a sua frente certamente ele morreria. Se ele soube-se olhar para os lados certamente ele poderia se salvar.

  8. Saulo,
    Não li a matéria em questão, aliás faz tempo que não leio a Info, mas estes dados devem estar próximos da realidade.
    Python não é popular e difundida como as outras opções, mas como citado no artigo, é uma boa opção para desenvolvimento web.

    Abs,
    EA

  9. poxa, acabo de ler a Info de agosto, e nela tem uma reportagem sobre tecnologias, servidores, banco de dados, hospedagens, essas coisas.

    ASP veio em primeiro lugar, como a tecnologia mais usada, acho que em terceiro ou quarto era PHP.. nao lembro os numeros desculpem.

    O que me chamou atencao é que Python aparecia lá no final com 0% ou 0 mesmo.

    Achei estranho, muito estranho.

    Não tenho a revista, nao tenho dados corretos. Alguem poderia ajudar ou Erico, voce chegou a ler?

  10. Dou graças a Deus que o Python não seja tão difundido como Java, Php, etc. Porque se todos conhececem a liguagem ela deixaria de ser o meu diferencial xD

  11. Ramon,

    prometo enviar uma dissertação com os motivos que considero para supor que linguagens (que eu considero mais dinâmicas) como o Python, Ruby, Tcl, etc. vão substituir linguagens (que eu considero mais amarradas) como o Java e o C# na grande massa.

    Mas não aqui, por respeito ao assunto. Faço isso por e-mail ainda esta semana 🙂

  12. Primeiro um comentário dentro do tópico… fantástica apresentação da linguagem python e das suas possibilidades… consegue atender a quem já e do ramo e a quem não é do ramo e por motivos profissionais precisa escolher alguma plataforma/linguagem para começar a programar!

    Segundo, um comentário fora do tópico em questão, mas que julgo pertinente!

    Como autores antenados aproveitam bem o recurso dos comentários para ampliar o poder do artigo.

    O Webinsider inaugurou os comentários nos artigos a pouco tempo e vejo que excelentes artigos morrem no texto em si, outros (e este aqui é um excelente exemplo), ampliam o poder do artigo com ótimas discussões nos comentários!

    Parabe?s ao Érico e ao Webinsider por ampliar os nossos horizontes 🙂

  13. Bom artigo, estou pensando em mudar minha linguem de programação primária para Python há um bom tempo, porém para freelancers como eu ou pessoas que dispõe de uma infra-estrutura pequena é arriscado ainda mudar pois não existem servidores baratos para hospedar os projetos.
    Pois a solução ideal seria possuir um servidor dedicado para fazer o que quiser com ele ou pela menos algum virtual server. É claro que existem bons serviços de hospedagem shared com acesso SSH que possibilitam a instalação de uma versão do Python customizada e algum framework, mas isso é muito limitado, pois a realização de algumas coisas é preciso acesso root.
    O ideal seria que existissem servidores shared com frameworks python (Django, TurboGears..) pré-instalados e suporte total à Zope/Plone.
    Parabéns pelo artigo Érico e fez uma boa palestra no PyCon. 🙂

  14. Bom… Talvez eu tenha realmente me equivocado em alguns termos.

    Gostei da sua visão, marinho, mas confesso que fiquei curioso para saber o porquê da obsolescência de linguagens como JSP e .Net.

    No mais, sucesso pra você!

  15. Ramon,

    ok, agora ficou claro o que você quis dizer quanto ao madura. Eu repito: acho que você não está sendo feliz nas suas afirmações. Isso porque usou palavras não adequadas para o que quis dizer.

    E eu concordo. Eu mesmo, se estou vivendo de outras linguagens, é porque elas são mais populares e oferecem mais cursos, livros, etc. Não por culpa minha, mas por toda uma realidade do mercado que o próprio autor apontou (marketing, por exemplo).

    O intermediária, eu vejo da mesma forma que o madura. Popularmente a expressão alternativo se refere àquilo que se coloca como uma terceira via, uma opção menos popular, que é o que eu acho que você quis dizer. Intermediário, eu interpretaria mais pra nem tão bom, nem tão ruim: médio.

    E aí eu concordo novamente. Eu mesmo participo regularmente de reuniões e eventos sobre esse debate Java x .Net, como observador – já que não gosto de entrar nessa discussão – e o máximo que eles fazem além de trocar acusações é citar algum equívoco sobre o PHP.

    Quanto à hipótese de o Java e .Net serem obsoletas, isso foi levantado por mim. Eu tenho essa convicção comigo, e sei que é um risco afirmar isso. Ao meu ver toda moda passa, e eu acho que a próxima moda vai ser de linguagens mais dinâmicas e interpretadas. Mas isso é uma opinião bem minha mesmo. 🙂

    Eu acho o Ruby fantástico, principalmente por causa do RoR, mas ainda gosto mais do Python.

    Até breve, acho q agora compreendemos melhor um ao outro 🙂

  16. Marinho, entenda… Não estou falando de aplicabilidade, apenas do campo de mercado para estas linguagens… O maduro (inclusive entre aspas) citado por mim se refere ao uso maior de algumas linguagens se comparadas com outras (se entendeu os meus posts anteriores saberão quais são).

    Agora, linguagem alternativa todas são… Você realmente não entendeu o que quis apresentar nos meus comentários. Em momento algum disse q python é ruim, apenas disse q ele, ainda, não tem o devido espaço no mercado web (pelo menos pelo que vejo por aí).

    Continuando, mais uma vez em momento algum disse q Java e .Net são obsoletos perto de Ruby e Python. Seria demasiado equivocado de minha parte.

    No mais, não se preocupe. Minhas visões já estão voltadas ao Ruby. Já li algo sobre o python, mas costumo dar prioridades aos meus estudos. Tudo no seu tempo… 😉

    Acho q tivemos um probleminha de interpretação, hehehe…

    []s

  17. Ramon, com todo o respeito à sua opinião, acho que você não está sendo feliz nas suas afirmações.

    Eu não conheço nenhum motivo para acreditar que Java, .Net ou PHP sejam mais maduras que o Python. Como o autor afirmou, o Python têm diversas – e põe diversas nisso – opções para desenvolver aplicações de forma madura. As quatro que ele citou são apenas as mais plausíveis e populares. Mas existem outras. São 15 anos de idade – fora os outros anos que o Guido dedicou a outra linguagem antes disso – e muitos módulos (são muitos e muito bons).

    Também acredito que intermediária não seja um bom rótulo para o Python. Talvez você quis dizer alternativa.

    No mais, concordo que o Java e .Net apresentem suas vantagens em relação ao Python, e o mesmo vale para Ruby e PHP, mas acredito que são linguagens muito poderosas e equiparadas, cada uma com seus pontos fortes, com lugar garantido no mercado. E até arrisco (o que para mim é convicção) dizer que Java e .Net já podem ser consideradas obsoletas perto de Ruby e Python.

    Mas isso é opinião minha, com todo respeito, claro.

    Eu o convido a conhecer a linguagem – o mesmo que eu venho fazendo. Ainda não vivo desta linguagem – vivo de Delphi e PHP (mas bem que gostaria).

    Conheça o Python ou o Ruby, vc vai ganhar com isso, mas tente mudar o seu paradigma, pra não precisar passar por alguns carões que eu passei por querer julgar aquilo que eu não conhecia.

    Até breve 🙂

  18. Exatamente Érico!

    O excesso de mão de obra qualificada facilita, e muito, a ascensão de linguagens como Python e Ruby. Enquanto um lado é saturado o outro só progride.

    No final das contas, acredito q um balanceamento pode ser criado, agregando essas ditas novas linguagens ao clã das já batidas.

    Até porque todas as linguagens aqui citadas ainda tem muito campo por aí a fora. E isso não mudará tão cedo.

    Vida longa ao desenvolvimento web, seja ele em qual linguagem for! 😉

  19. Fábio,
    Apenas corrigindo. O OpenOffice não é escrito em Python. É possível usar Python como linguagem de scripting dentro da suite de aplicativos (assim como no GIMP ou no Blender), mas o código do OO é C++, C e Java.

    E reforçando seu comentário, Python não é apenas para web. Aplicações como MailMan e BitTorrent são escritas em Python. Além disto, vale o comentário de que a Microsoft agora suporta IronPython (Python para .Net) no Visual Studio.

    abs,
    EA

  20. Ramon,
    Seu comentário é extremamente pertinente. Temos, na comunidade Python, um problema de falta de mão de obra, basicamente porque Python não é a linguagem da moda.
    Por outro lado, vale lembrar que o mercado sempre vence. PHP, ASP e Java sem dúvida contam com mais ofertas de emprego e os profissionais se dispões a aprender estas linguagens basicamente para preencher estas vagas. Com isto você fica com um excesso de mão de obra qualificada, o que, obrigatoriamente baixa o valor médio de cada profissional.
    Apesar disto, vale lembrar que os modismos passam e que os profissionais ficam, e apenas os mais adaptáveis sobrevivem (este trecho é em memória aos amigos clippeiros que hoje vendem sorvete ou dão manutenção em micros 😉 )

    abs,
    ea

  21. Na minha opinião o Python é uma ótima opção ao Java, é de fácil integração com C++.

    O OpenOffice é feito em Python, esta linguagem não serve só para internet.

    abraços

  22. Pois é, Osvaldo. Talvez pelo motivo que citei, e reescrevo aqui, que a sua empresa não tem a demanda de profissionais necessários: Python não está na moda… Quem começa em web normalmente recebe referências de ASP, PHP, .Net e Java mesmo. As outras ficam, infelizmente, em segundo plano.

    Não quero que pense que estou desvalorizando o poderio do python. Você que trabalha com ele diretamente deve ter todos os argumentos possíveis para apresentar todos os seus prós.

    Mas é aquela coisa, ainda acho raridade procura por python no mercado… Sou do Rio de Janeiro. Tenho certeza que a procura por profissionais de python existe, mas com certeza ela é ínfima se comparada com a procura por profissionais de linguagens mais maduras.

    Espero que me enteda. Parabéns pelo seu trabalho!

  23. Oi Saulo,

    Eu trabalho no INdT, Instituto Nokia de Tecnologia em Recife e estamos precisando de programadores Python. Acho que o artigo do Érico inclusive faz referência ao instituto (acho que foi por isso que ele citou Recife).

    Agora vou fazer uma propaganda: Irei fazer uma apresentação sobre Python e Maemo na Livraria Cultura de Recife no dia 9 de setembro, se não me engano, às 18hs.

    Considere-se convidado.

  24. Osvaldo Santana,
    também tou em Recife, mas que empresas são essas que procuram ?

    desconheço… ainda tou procurando uma para ASP/PHP 🙁

  25. Marcos,
    Originalmente eu citava Ruby e Perl neste artigo, mas sem dúvida além de Python existem ótimos frameworks em outras linguagens, e o RoR é A solução mais em voga no mercado.

    Vale a pena que você veja o vídeo linkado no final do artigo.

    abs,
    Érico Andrei

  26. Oi Ramon,

    Você diz que o mercado pede desenvolvedores PHP, ASP e Java (entre outras) mas o artigo também afirma que:

    Neste momento, mais importante do que os casos de sucesso é a demanda que existe por profissionais que conheçam Python. Cidades como Brasília, São Paulo, Recife e Rio de Janeiro têm um volume maior de ofertas de emprego do que profissionais qualificados. Escolher Python, se qualificar como desenvolvedor Python é neste momento, garantia de empregabilidade.

    É sério isso. Estou em Recife, numa empresa grande, e existe uma demanda de desenvolvedores Python que não consegue ser atendida.

    Em Brasília eu sei que é a mesma coisa. Tenho vários amigos que trabalham com Python lá e que estão tendo que recusar projeto atrás de projeto porque não conseguem atender à demanda.

    Acho que o investimento de tempo usado para aprender Python também não costuma ser tão grande como o tempo necessário para aprender outras linguagens (ou plataformas).

  27. É sempre bom saber que podemos contar com várias opções de desenvolvimento, mas certas linguagens já passaram da fase do descobrimento para muita gente, inclusive para o mercado.

    Hoje quem aprende a desenvolver para web com linguagens dinâmicas já começa com as seguintes recomendações: ASP, PHP, JSP ou .Net… Não tem jeito, o mercado quer isso!! Daí fica complicado querer se aventurar em algo diferente.

    Até o famigerado CFM está caindo no esquecimento…

    Mas eu fico realmente facinado por essas linguagens intermediárias como Python e Ruby, por exemplo.

    Bom artigo para abrir horizontes.

    Abraço!

  28. Eu particularmente concordo com todas as alternativas, mas esqueceram de citar ou experimentar Ruby e o framework Ruby on Rails, vale a pena também até mesmo para iniciantes!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *