Ensinar programação não siginifica exatamente ensinar a programar em alguma linguagem específica ou a solucionar apenas certos tipos de problemas.

Uma das melhores coisas se já li sobre a arte da programação foi uma analogia entre o desenvolvedor e um músico.

Não há músico que começe escrevendo grandes sinfonias, ao contrário disso, o processo de aprendizado começa com domínio da teoria musical e manipulação de algum instrumento. Depois de algum tempo ouvindo e lendo o trabalho de outros músicos e depois de muito treino, só então, o "jovem" músico se aventura na criaçao de suas próprias composições. E serão poucos aqueles capazes produzir peças realmente originais, menor ainda será o número daqueles capazes de compor sinfonias completas.

Mas voltando ao mundo da programação de computadores vou citar um exemplo que eu acho, ilustrará razoavelmente bem o paradigma moderno de desenvolvimento de software.

Vamos escolher para esse exemplo o desenvolvimento de software para o sistema operacional da Apple, o MacOS X.

Trata-se de uma plataforma moderna, madura e de alta qualidade. Para ela o desenvolvedor contará com pelo menos quatro frameworks de trabalho principais à sua escolha: Java, BSD, Carbon e Cocoa.

Naturalmente ele escolherá um destes conforme sua familiaridade com alguma ligaguem de programação, natureza do problema a ser resolvido ou outra necessidade específica qualquer.

Assim sendo, geralmente optará pelo Java se buscar maior portabilidade de sua aplicação, utilizará C/C++ caso deseje programar diretamente para o framework BSD (recursos internos do SO), utilizará Carbon para o desenvolvimento e manutenção de aplicações legadas (MacOS 9) e Cocoa para criar modernas aplicações nativas para o OS X.

Especificamente para Carbon e Cocoa a liguagem de escolha ficará muito mais a critério do gosto pessoal do desenvolvedor do que qualquer outro fator. Algo semelhante pode-se dizer também ocorre como o desenvolvimento para Linux.

É claro que para aplicações onde a performance é crucial, como rotinas internas de um sistema operacional ou aplicações em tempo real, o uso de linguagens como C e Assembly fazem mais sentido. Para todos os outros casos geralmente não faz diferença.

Podemos concluir então que ensinar programação com uma linguagem simples, moderna e legível como Python só trará benefícios os jovens desenvolvedores. Além de evitar que eles desenvolvam alguns vícios de ruins de programação, certamente fará com que sua experiência seja na maioria das vezes coroada de sucesso e muito prazeirosa.

Caso desejem por algum motivo experimentar algo diferente, certamente levarão consigo uma boa e sólida base de conhecimento.

Abraço,

ASF

On 9/17/06, Ricardo L. A. Banffy <[EMAIL PROTECTED]> wrote:
Concordo. Python é uma ótima ferramenta e eu uso todos os dias.

Inclusive tem um interpretador interativo plenamente funcional, que faz
com que ele seja próximo da coisa perfeita pra isso.

Eu só acho que um quilômetro de OS entre o programa e o computador não
ajudam muito a ensinar nada. Precisavamos de algo mais "direto".

E concordo. Java nem fo^H^H a pau.

Antonio Fonseca wrote:
> Eu entendi a visão do autor. Apenas discordo da solução proposta.
>
> Primeiro porque eu penso que um PC atual na verdade evoluiu muito pouco
> em relação a época do Apple II. Todos os mesmos elementos principais
> estão lá, no final das contas o que temos hoje de diferernte é apenas
> muito mais poder de processamento bruto e a miniaturização de componentes.
_______________________________________________
PSL-Brasil mailing list
PSL-Brasil@listas.softwarelivre.org
http://listas.softwarelivre.org/mailman/listinfo/psl-brasil
Regras da lista:
http://twiki.softwarelivre.org/bin/view/PSLBrasil/RegrasDaListaPSLBrasil

_______________________________________________
PSL-Brasil mailing list
PSL-Brasil@listas.softwarelivre.org
http://listas.softwarelivre.org/mailman/listinfo/psl-brasil
Regras da lista: 
http://twiki.softwarelivre.org/bin/view/PSLBrasil/RegrasDaListaPSLBrasil

Responder a