Marcelo Cavalcante

Porque escolhi Python? Python para SysAdmins!

by kalib on Nov.21, 2009, under Impressões, Python, software livre

python-logo-master-v3-trans

Saudações pessoal…

Novamente vou dedicar um post para responder uma pergunta que me fizeram. Não é a primeira vez que alguém me pergunta algo e eu resolvo responder em forma de post. Algumas pessoas já me perguntaram o que me leva a preferir Python à outras linguagens de programação. Mas como, coinscidentemente, de ontem para hoje 3 pessoas me fizeram a mesma pergunta, resolvi responder em forma de post e poupar um pouco de saliva (¿dedo no teclado?) e não responder de forma mais completa para um ou outro.

Antes de mais nada gostaria de informar que não sou programador. Trabalho na área de administração de sistemas, redes, segurança, etc, etc, etc, vulgo SysAdmin. Prazer. ;]

Se você é SysAdmin com certeza já esbarrou com algumas linguagens de script como Bash, Perl, dentre outras. Provavelmente até já trabalhou com algumas delas. Estas linguagens podem nos ajudar a resolver pequenos problemas bem como automatizar e agilizar tarefas cotidianas de forma a ganhar produtividade e perder menos tempo com aquilo, bem como evitar stress, tédio e fadiga fazendo tarefas mecânicas e repetitivas.

Estas linguagens são apenas ferramentas que podem ser utilizadas no dia-a-dia. Mas o que faz uma linguagem ser eficiente? Ela só pode ser considerada eficiente se puder lhe ajudar a ter o seu trabalho feito de uma forma mais produtiva e simples, certo?! Que tal Python dentro deste cenário?

A inevitável pergunta acaba aparecendo: O Python é melhor que Perl, Bash, Ruby ou qualquer outra linguagem?

Este é o tipo de pergunta que eu não conseguiria responder. A complexidade empregada nesta pergunta impede uma resposta em poucas palavras, visto que a definição de “melhor” varia de acordo com o cenário, bem como os protagonistas envolvidos. Por conta disto, não direi que o Python é melhor ou pior do que outras linguagens, mas vou abordar alguns exemplos que demonstram que a mesma pode ser uma excelente escolha. (¿Escapei bem?)

Creio que o primeiro motivo que me leva a adotar Python é a simplicidade de seu código. Se uma linguagem não lhe permite aprender rapidamente e começar a escrever códigos para resolver seus problemas, a mesma acaba perdendo um pouco de credibilidade, certo? Lembrem-se que, como SysAdmin, não tenho tempo para ficar estudando livros e mais livros sobre uma ou outra linguagem. Apenas desejo resolver meu problema atual. Porque perder semanas ou meses estudando uma linguagem para somente então conseguir escrever algum código que realmente produza algo? Bem, o Python nos permite escrever scripts em horas, literalmente falando, ao invés de dias ou semanas. Se, como um SysAdmin, uma linguagem não lhe permite começar os estudos e escrever scripts imediatamente, você deveria realmente se questionar porque você deveria estudar ela.

Mas de que me vale uma linguagem que me permite um rápido aprendizado, se a mesma não possui “poder”? Se a mesma não me permite realizar tarefas complexas e robustas? Bem, na verdade este é o segundo motivo pelo qual eu escolhi Python. Esta linguagem nos permite resolver problemas simples como analisar várias linhas de log e nos retirar apenas informações que nos sejam interessantes ou pertinentes gerando um relatório mais limpo e “legível” ao olho humano. Além de tarefas simples assim, o Python também vem sendo bastante utilizado para tarefas com maior grau de complexidade como análises de sequências genômicas, cálculos complexos de física, mecânica, mecatrônica, etc, sistemas web multithread ou mesmo pesadas análises estatísticas. Bom, se você é um SysAdmin, muito provavelmente você nunca precisará de nada disso, mas eu me sinto confortável em saber que estou estudando uma linguagem que me permitirá realizar tarefas mais complexas quando eu precisar. ;]

PythonCartoon

Respota: Criador do Python

Ok, Python me permite realizar até as tarefas complexas. Mas e a manutenção deste código. Como SysAdmin, não fico editando e revendo meus códigos todo dia. As vezes não entendemos nossos próprios códigos depois de alguns meses sem olhar para eles. O que eu queria dizer com aquela linha de código mesmo? O.o O Python foi criado com o intuito de possuir uma sintaxe simples e intuitiva, de forma que a manutenção de código se torna extremamente eficaz, mesmo por aqueles que não são os autores originais do código.  Mesmo depois de meses eu vou conseguir interpretar meu código e trabalhar nele. E esta foi a terceira razão pela qual eu escolhi Python, e que por sua vez está muito ligada à quarta razão.

O quarto motivo pelo qual escolhi Python é a legibilidade do código e a forma como apenas batendo o olho podemos nos encontrar facilmente no código. O Python utiliza-se de espaços em branco para determinar onde começa ou termina um bloco de código. Esta forma de identação facilita muito a identificação de partes do código bem como o entendimento do mesmo.

É o bastante? Não para mim.

O quinto ponto na maestria do Python é o seu excelente suporte à Programação Orientada a Objetos (POO). Quando digo suporte à orientação a objetos, não me refiro à obrigação de utilizá-la. Você não precisa utilizar caso não deseje ou caso não se aplique em algum caso específico, mas é sempre bom ter em mãos este “poder” caso seja necessário, e é nestes casos que o Python mostra novamente uma enorme eficiência por conta da simplicidade com a qual a POO é tratada pelo Python.

Acho que não preciso citar que outro grande motivo pelo qual adotei o Python é o fato de ser uma linguagem 100% livre que conta com uma comunidade altamente atuante e participativa, certo?!

Mas, creio que já falei demais por um post. Que tal um simples exemplo prático de simplicidade no código escrito em Python?

Que tal um simples script para servir de comparação entre, por exemplo, Bash, Perl e Python?

O seguinte script tem a função de apresentar todas as combinações possíveis de 1,2 e a,b.

Em Bash seria mais ou menos o seguinte:

#!/bin/bash

for a in 1; do

for b in a b; do

echo “$a” “$b”

done

done

E como ficaria o mesmo em Perl?

#!/usr/bin/perl

foreach $a (’1′, ’2′) {

foreach $b (‘a’, ‘b’) {

print “$a $b\n”;

}

}

Como podem ver, é apenas um loop comum. Vejamos agora o mesmo exemplo de loop utilizando-se um for escrito em Python:

#!/usr/bin/env python

for a in [1, 2]:

for b in ['a', 'b']:

print a,b

Simples, certo? Qual pareceu mais simples? (Se você não programa e não entende nada do que estou falando até aqui, segue uma dica: Vote no que utilizou uma quantidade menor de linhas de código! :p A propósito, porque você leu até aqui mesmo? o.O)

Você já deve estar cansad@ de ler, e eu de digitar, portanto vamos finalizar por aqui ok?!

Espero que experimente Python, caso ainda não o tenha feito, e descubra uma nova excelente ferramenta para o seu dia-a-dia.

Caso deseje mais informações sobre Python bem como suas vantagens, confira outros posts que fiz listados abaixo:

1- Porque Python?

2- Pydev: Preparando o Eclipse para o Python

3- The Zen of Python

Abraços

8 Comments for this entry

  • Albino

    Muito interessante a Linguagem Python, tenho interesse em estuda-la. E não futuramante. ;]

    []‘s

  • Sérgio Berlotto

    Concordo 100% em gênero, número e grau !
    Python Rulez!

  • MarcusJabber

    O exemplo de Perl pode ser em muito simplificado, ficando bem menor e simples do que em Python.

    #!/usr/bin/perl
    print ((‘a’ .. ‘b’));
    print ((’1′ .. ’2′));

    Ops… menos linhas que Python. =)

    Abs, ótimo post!

  • Jony

    Gostei do post, parabéns.
    Bom para começar com o python acho bem interessante o site http://www.aprendendodjango.com.br

  • Camila

    Nossa Marcelo, adorei!
    Fazia um tempo que eu não passava por aqui, mas fiquei surpresa com o que vi.
    Adorei o artigo. Confesso que nunca experimentei Python, mas depois desse artigo já comecei a pedir a ajuda de nosso amigo Google. Sim, procurando tutoriais e apostilas.

    xero

  • Rafael Reuber

    Poxa cara, legal. Eu tenho vontade de estudar python o problema é que Java é tão grande que eu não quero perder o foco.

  • Rafael Reuber

    Outro fator que me leva a não estudar essa linguagem no momento é que ele não me parece ser muito comercial aqui no Ceará.

  • kalib

    Pois eh Rafael.. Poucas empresas no Ceará atentaram para o Python até então.. Mas se formos ver no mundo afora a coisa já é bem diferente..
    Não tiro sua razão.. enquanto programador profissional, tem que estar atento ao que o MERCADO pede. ;]

    Grande abraço…

Leave a Reply

Procurando por algo?

Use o formulário para buscar em minha página:

Continua sem achar o que procura? Deixe um comentário em algum post ou me envie um email para que eu possa cuidar disso!