Por que Python?

Vez por outra ouço a pergunta: “Professor, por que é que a gente vai aprender Python e não (Java|PHP|C|C++|C#|Pascal)?”. Quanto mais o tempo passa, mais argumentos vão se somando à resposta. Vou listar alguns motivos que acho importantes na escolha de Python em detrimento às outras linguagens tradicionalmente ensinadas.

Simplicidade

Imagine-se iniciando o estudo de programação novamente. Chegou a hora de escrever o seu primeiro programa. O professor vai passar um “Olá usuário!”, no qual o programa pergunta o nome do usuário e escreve uma mensagem cumprimentando-o pelo nome. Vejamos como ficaria o referido programa em algumas das linguagens supracitadas.

Java

public class Hello
{
    public static void main(String args[]) {
        java.util.Scanner s = new java.util.Scanner(System.in);
        System.out.print("Digite seu nome:");
        String nome = s.nextLine();
        System.out.println("Olá, " + nome);
    }
}

C

#include <stdio.h>
int main()
{
    char nome[200];
    printf("Digite seu nome:");
    scanf("%s", nome);
    printf("Olá, %s\n", nome);
    return 0;
}

Pascal

program HelloWorld(output);
var
    nome: string;
begin
    writeln('Digite seu nome:');
    read(nome);
    writeln('Olá, ', nome);
end.

Python

nome = input('Digite seu nome:')
print ('Olá,', nome)

Analisando os exemplos acima, dá pra concluir que o exemplo em Python é o que oferece menos overhead para entender. É o mais direto. Imagine o professor explicando o exemplo em Java. Quantas palavras-chave que o aluno vai ler e ficar sem saber o que significa? public, static, class, void, main, String, args, []java.util.Scanner, new, nextLine(), sintaxe do . (ponto), etc. Olhando os outros exemplos, também é fácil de identificar alguns pontos em que um novato teria dificuldades de entender e que seria um parto para o professor explicar. Agora, olhemos para o exemplo escrito em Python. Dois elementos deixam dúvida: o que faz a função input? O que faz a função print? Para nativos da língua inglesa ou alunos que tenham conhecimentos básicos em tal língua, talvez isso nem sequer represente uma dúvida. É claro que a implementação do “Olá, mundo!” não deve ser utilizada como argumento definitivo para definir a linguagem de programação a ser utilizada. Mas o primeiro contato do aluno com a linguagem deve ser o menos complicado possível. A linguagem não pode ser uma complicação adicional para o aluno. Ela deve ser somente uma ferramenta para que este possa representar sua lógica para resolver problemas. Quanto menos focado na tecnologia e mais focado na lógica, melhor. Há quem argumente que então o Portugol, uma pseudo-linguagem usada para o ensino de lógica de programação, seria uma solução mais adequada, pois suas palavras-chave são representadas na língua portuguesa. Eu discordo, por três motivos:

  1. É preciso, o mais cedo possível, estimular nos alunos o estudo da língua inglesa, que será necessário na carreira profissional deles.
  2. Python, por ser uma linguagem “de mercado”, com várias bibliotecas disponíveis, possibilita que o aluno evolua dentro da linguagem até chegar ao ponto em que pode desenvolver aplicativos “reais”, por conta própria. Usando Portugol, será necessário que ele aprenda outra linguagem para fazer algo “real”.
  3. Várias das empresas “top” utilizam Python e isso funciona como motivação extra para quem está aprendendo. Saber que o que você está estudando é utilizado em produtos maravilhosos dá um boost no entusiasmo e nas perspectivas para o futuro.

Assim, na minha opinião, a simplicidade da linguagem para os primeiros contatos (primeiro ano de estudo) coloca Python no topo da lista das linguagens para ensino de programação.

Python é “de verdade”

Com Python, uma vez que o aluno tiver adquirido boas noções de lógica de programação, basta que ele aprenda tecnologias adicionais para que possa então desenvolver aplicativos reais utilizando a linguagem na qual já se sente seguro. Utilizando Python é possível desenvolver muita coisa com o auxílio de ferramentas muito maduras escritas para serem usadas com a linguagem: Django, FlaskPlone, ScrapyGoogle App Engine, SciPy, NumPyetc. Existem muitos programas populares que foram escritos em Python. Alguns exemplos podem ser vistos em: http://wiki.python.org/moin/Applications. Além disso, muitas empresas de grande sucesso utilizam Python em seus projetos. Alguns exemplos que usam MUITO Python: Google, Youtube, Nasa, Disney, globo.com, fora o resto.

Python tem documentação (em pt-br!)

Além da documentação oficial, existe uma grande quantidade de livros tratando sobre Python e sobre aprendizagem de programação usando Python. Assim como existem livros comerciais, são vários os exemplos de livros gratuitos (muitos deles livres) que tratam da linguagem Python. Segue uma lista de alguns dos livros comerciais ($) e não-comerciais (\o/) que conheço:

É claro que existem muitos livros além dos acima listados (sempre que lembrar de algum, vou incluir na lista). O mais interessante é que muitos dos livros que são lançados em língua inglesa acabam sendo traduzidos voluntariamente por membros da comunidade, quando lançados sob uma licença adequada para isso.

Python oferece bibliotecas interessantes para o ensino

Deseja partir para uma abordagem de ensino um pouco diferente daquela tradicional “dados->tipos->condicional->repetição->…”? Python é uma ótima opção para você seguir um caminho alternativo. Existem diversos módulos que possibilitam que o aluno aprenda já imerso em uma área de aplicação, como por exemplo, bibliotecas simples para criação de jogos (PyGame, PyGlet), ambiente para desenvolvimento usando linguagem Logo (módulo turtle), interação com a web (requests, BeautifulSoup, Scrapy), desenvolvimento web (Flask), etc.

Além dissos, existem excelentes materiais disponíveis gratuitamente na Web que focam no ensino de programação usando tal abordagem, sendo que alguns deles possuem projetos de tradução para pt-br em andamento.

Python dá boas lições

Python força o programador a indentar o seu código. Python ensina aos programadores que expressividade é importante. Python oferece recursos que permitem o aprendizado de conceitos de programação procedural, orientada a objetos, funcional, dentre outras. Python tem um lema. E, tão importante quanto o resto, também tem bom humor.

Python tem uma comunidade fantástica

O ponto alto do Python, em minha opinião, é a fantástica comunidade que o circunda. Basta alguns dias frequentando a lista de emails “Python Brasil” para ver que o pessoal é fora de série. Não importa se é o novato fazendo pergunta redundante ou o hacker experiente com aquela dúvida cabeluda, sempre tem alguém pronto para ajudar. Além desse suporte, a comunidade também organiza traduções de materiais didáticos, implementação de módulos úteis (distribuídos como software livre) e ainda apresentam palestras em eventos, nos quais compartilham parte do seu conhecimento.

7 comentários sobre “Por que Python?

  1. Parabéns pelo post, achei sensacional cara. Tem ótimas referências, claras e bem objetivas.

    Tentei escrever algo similar outro dia mas não saiu tão bom quanto o seu, então quando perguntarem irei indicar este.

    Grande abraço!

  2. Olá, meu nome é Andreas e eu não sabia onde postar uma dúvida, entao estou colocando aqui mesmo. Estou com um problema de codificação num arquivo .csv. Depois de ter criado e salvado, eu peço para abrir com o Excel, mas ele está com um problema de codificação nas palavras acentuadas. Você tem alguma dica para me ajudar com esse problema? Coisas como u’palavra’ ou .encode(UTF-8) ou o comentário # -*- coding: utf8 -*- no começo do código, ja foram usadas, mas não resolvem esse problema.

    • Olá Andreas, eu fiz um teste aqui escrevendo um arquivo .csv com algumas palavras acentuadas. Infelizmente não tenho o Excel para testá-lo. Mas, no Libreoffice, basta escolher a codificação do arquivo .csv que você está importando. Talvez o Excel também tenha alguma opção do gênero.

  3. Trabalho com Java a um tempo e estava querendo usar uma linguagem menos “verbosa” para ensinar minha filha a programar. Parabéns pelo seu texto, fiquei convencido que python é a melhor linguagem para isso.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s