Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação...
Transcript of Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação...
Programação de Computadores
Instituto de Computação UFFDepartamento de Ciência da Computação
Otton Teixeira da Silveira Filho
Porque Python?
Fato importante!
Porque Python?
Fato importante!
Foi esta linguagem que a coordenação de seu curso solicitou ao Departamento de Computação
Python
Mas porque Python?
Python
Existem centenas de linguagens de programação
Python
Uma lista de linguagens de programação
https://pt.wikipedia.org/wiki/Lista_de_linguagens_de_programa%C3%A7%C3%A3o
Python
Uma lista de listas de linguagens de programação
https://en.wikipedia.org/wiki/Lists_of_programming_languages
Python
É uma linguagem de uso geral
Python
É uma linguagem de uso geral
Uma linguagem sem uso específico, diferente de linguagens criadas inicialmente com uma finalidade:
● FORTRAN (computação numérica)
● COBOL (aplicações comerciais)
● Etc.
Python
É uma linguagem rápida prototipação
● Sendo interpretada, o processo de teste é curto e mais direto
● Seu processamento será em geral mais lento que uma linguagem compilada
Python
● Tem licença de uso livre aprovada pela OSI e compatível com a GPL, embora menos restritiva.
● Tem muitas bibliotecas (módulos) nas mais várias áreas
● Muitas interfaces gráficas
● Vários sistemas de desenvolvimento integrado
Python
● OSI é a Open Source Initiative
● GPL é a GNU General Public License
Python
● OSI é a Open Source Initiative
Uma organização dedicada a promover o software de código aberto.
● Mais detalhes em http://opensource.org
Python
● GPL é a GNU General Public License
É a designação de uma licença de software livre associada ao projeto GNU da Free Software Foundation
● Mais informações www.gnu.org/licenses/gpl.html
Python
● Tem uma padronização “de fato“ (mas não formal) via Python Enhancement Proposals
● As versões comumente usadas: Python 2 e Python 3
● Usaremos a Python 3.6
Zen do Python
Algumas ideias que orientam Python são:
● Belo é melhor que feio
● Explícito é melhor que implícito
● Simples é melhor que complexo
● Complexo é melhor que complicado
● Legibilidade conta
Zen do Python
A versão completa do Zen do Python pode ser encontrada em
https://www.python.org/dev/peps/pep-0020/
Python
Mas porque este nome?
Python
O criador de Python,
Guido van Rossum...
Python
...adora o grupo
de comediantes
Monty Python
Python
Python não foi criado especificamente para ensino como, por exemplo, Pascal
Python
No entanto, devido a:
● Não ter patente e nem ser associado a uma empresa
● Ter modo iterativo
● Ser multiplataforma
● Ter sintaxe minimalista
● Ser fácil de se fazer uma aprendizagem incremental...
Python
Python acabou sendo adotada como opção de linguagem de aprendizagem
Python
Então, aprendendo Python não será necessário aprender outra linguagem?
Python
Então, aprendendo Python não será necessário aprender outra linguagem?
A suposição que uma linguagem basta (qualquer linguagem) é um grande e comum engano
Python
Python será útil no seu aprendizado, poderá ser útil para você durante um certo tempo.
Tudo depende do que você necessitará no futuro
Python
Você quer alto desempenho em processamento numérico?
Python
Você quer alto desempenho em processamento numérico?
Então você poderá usar
● FORTRAN
● C
● Julia
Python
Você deseja processamento em estatística?
Python
Você deseja processamento em estatística?
Talvez você necessitará de
● R
Python
Fará modelagem de processos?
Python
Fará modelagem de processos?
Talvez você fique satisfeito com
● Scilab
● Modelica
Python e outras linguagens
Na página abaixo você encontrará um avaliação de “popularidade“ das linguagens mais usadas:
https://www.tiobe.com/tiobe-index//
Python e outras linguagens
E na próxima tela temos o desempenho quanto ao tempo de processamento em códigos escritos em algumas linguagens de programação em várias tarefas
● A escala é logarítmica
● Quanto menor o valor mais rápido é
Python e outras linguagens
Comparação entre linguagens e alguns algoritmos (C = 1) escala logarítmica