Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação...

35
Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho

Transcript of Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação...

Page 1: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Programação de Computadores

Instituto de Computação UFFDepartamento de Ciência da Computação

Otton Teixeira da Silveira Filho

Page 2: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Porque Python?

Fato importante!

Page 3: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Porque Python?

Fato importante!

Foi esta linguagem que a coordenação de seu curso solicitou ao Departamento de Computação

Page 4: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Python

Mas porque Python?

Page 5: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Python

Existem centenas de linguagens de programação

Page 6: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Python

Uma lista de linguagens de programação

https://pt.wikipedia.org/wiki/Lista_de_linguagens_de_programa%C3%A7%C3%A3o

Page 7: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Python

Uma lista de listas de linguagens de programação

https://en.wikipedia.org/wiki/Lists_of_programming_languages

Page 8: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Python

É uma linguagem de uso geral

Page 9: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

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.

Page 10: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

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

Page 11: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

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

Page 12: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Python

● OSI é a Open Source Initiative

● GPL é a GNU General Public License

Page 13: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Python

● OSI é a Open Source Initiative

Uma organização dedicada a promover o software de código aberto.

● Mais detalhes em http://opensource.org

Page 14: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

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

Page 15: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

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

Page 16: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

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

Page 17: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Zen do Python

A versão completa do Zen do Python pode ser encontrada em

https://www.python.org/dev/peps/pep-0020/

Page 18: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Python

Mas porque este nome?

Page 19: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Python

O criador de Python,

Guido van Rossum...

Page 20: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Python

...adora o grupo

de comediantes

Monty Python

Page 21: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Python

Python não foi criado especificamente para ensino como, por exemplo, Pascal

Page 22: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

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...

Page 23: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Python

Python acabou sendo adotada como opção de linguagem de aprendizagem

Page 24: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Python

Então, aprendendo Python não será necessário aprender outra linguagem?

Page 25: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

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

Page 26: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Python

Python será útil no seu aprendizado, poderá ser útil para você durante um certo tempo.

Tudo depende do que você necessitará no futuro

Page 27: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Python

Você quer alto desempenho em processamento numérico?

Page 28: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Python

Você quer alto desempenho em processamento numérico?

Então você poderá usar

● FORTRAN

● C

● Julia

Page 29: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Python

Você deseja processamento em estatística?

Page 30: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Python

Você deseja processamento em estatística?

Talvez você necessitará de

● R

Page 31: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Python

Fará modelagem de processos?

Page 32: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Python

Fará modelagem de processos?

Talvez você fique satisfeito com

● Scilab

● Modelica

Page 33: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

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//

Page 34: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

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 é

Page 35: Programação de Computadoresotton/graduacao/programacao/04_Uma_Historia_do_Python.pdfProgramação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação

Python e outras linguagens

Comparação entre linguagens e alguns algoritmos (C = 1) escala logarítmica