63
O Estado do Python Henrique G. G. Pereira SAINF 2014

O Estado do Python

Embed Size (px)

DESCRIPTION

Palestra proferida no SAINF 2014 @ UFSM.

Citation preview

Page 1: O Estado do Python

O Estado do Python Henrique G. G. Pereira

SAINF 2014

Page 2: O Estado do Python

Roteiro

• Apresentação

• Introdução ao Python

• Histórico

• Comunidade

• Bibliotecas

Page 3: O Estado do Python

Eu

• Bacharel em Sistemas de Informação – UNIFRA

• Mestre em Ciência da Computação – UFSM

• Analista de TI @ CPD

• Professor @ UNIFRA

• Programador Python

Page 4: O Estado do Python

O que é Python?

• Linguagem de Altíssimo Nível

• Sintaxe Fácil

• Multiparadigma

• Tipagem Forte e Dinâmica

• Multiplataforma

• Interpretada

Page 5: O Estado do Python

O que é Python?

• Linguagem de Altíssimo Nível

• Sintaxe Fácil

• Multiparadigma

• Tipagem Forte e Dinâmica

• Multiplataforma

• Interpretada

Page 6: O Estado do Python

Baixo Nível

Page 7: O Estado do Python

Nível Intermediário

Page 8: O Estado do Python

Altíssimo Nível

Page 9: O Estado do Python

O que é Python?

• Linguagem de Altíssimo Nível

• Sintaxe Fácil

• Multiparadigma

• Tipagem Forte e Dinâmica

• Multiplataforma

• Interpretada

Page 10: O Estado do Python

Sintaxe Fácil

• Sem { }

• Blocos limitados por indentação

• Comandos em inglês

• Operadores em inglês

Page 11: O Estado do Python

O que é Python?

• Linguagem de Altíssimo Nível

• Sintaxe Fácil

• Multiparadigma

• Tipagem Forte e Dinâmica

• Multiplataforma

• Interpretada

Page 12: O Estado do Python

Multiparadigma

• Procedural nome = ‘paulo’

• Orientado a Objetos paulo = Pessoa(“Paulo”)

• Funcional executar(busca, Pessoa, nome = ‘Paulo’)

Page 13: O Estado do Python

O que é Python?

• Linguagem de Altíssimo Nível

• Sintaxe Fácil

• Multiparadigma

• Tipagem Forte e Dinâmica

• Multiplataforma

• Interpretada

Page 14: O Estado do Python

Tipagem

• Dinâmica • Não é necessário declarar tipos nas variáveis

• O interpretador detecta automáticamente os tipos.

• Forte • Objetos de tipos diferentes não conseguem se relacionar.

• Impossível somar uma string com um número.

Page 15: O Estado do Python

O que é Python?

• Linguagem de Altíssimo Nível

• Sintaxe Fácil

• Multiparadigma

• Tipagem Forte e Dinâmica

• Multiplataforma

• Interpretada

Page 16: O Estado do Python

Multiplataforma

• Windows

• Linux • Embutido

• OSX • Embutido

• Solaris • Embutido

Page 17: O Estado do Python

O que é Python?

• Linguagem de Altíssimo Nível

• Sintaxe Fácil

• Multiparadigma

• Tipagem Forte e Dinâmica

• Multiplataforma

• Interpretada

Page 18: O Estado do Python

Interpretada

• Interpretador Python (C)

• Interpretador Jython (Java)

• Interpretador IronPython (.Net)

Page 19: O Estado do Python

História do Python

• Idealizada por Guido Van Rossum no final dos anos 80.

• Python 1.0 lançada em 1994.

• Python 2.0 lançada em 2000.

• Python 3.0 lançada em 2008.

Page 20: O Estado do Python

História do Python

• Idealizada por Guido Van Rossum no final dos anos 80.

• Python 1.0 lançada em 1994.

• Python 2.0 lançada em 2000.

• Python 3.0 lançada em 2008.

Page 21: O Estado do Python

Python 2

• Versão 2.7 • Lançada em Julho de 2010

• Atualmente 2.7.8 • Só recebe correções

• Escrita em C

• Muitas Bibliotecas

• Estável

Page 22: O Estado do Python

Python 3

• Versão 3.4 • Lançada em Março de 2014

• Versão atual de desenvolvimento

• Escrita em C

• Um número menor de bibliotecas

• Estável

Page 23: O Estado do Python

Outros Pythons

• PyPy

• Stackless Python

• IronPython

• Jython

• ActivePython

• Python(x,y)

Page 24: O Estado do Python

Quem usa Python?

Page 25: O Estado do Python

Python @ Google

Page 26: O Estado do Python

Python @ Google

Page 27: O Estado do Python

Python @ Google

Page 28: O Estado do Python

Python @ NASA

Page 29: O Estado do Python

Python @ CIA

Page 30: O Estado do Python

Python @ CIA

Page 31: O Estado do Python

E no Brasil?

Page 32: O Estado do Python
Page 33: O Estado do Python

Empregos no Brasil?

• Globo.com

• IBM

• Motorola

• Totvs

• Google

• Amazon

• Titans Group

• Dafiti

• MagazineLuiza

Page 34: O Estado do Python

Comunidade

Page 35: O Estado do Python

Python Software Foundation

• Organização sem fins lucrativos

• Formada em 2001

• Promover, proteger e avançar o Python

• Auxiliar e Ajudar o crescimento das comunidades internacionais

• Orçamento de $800k em 2013

Page 36: O Estado do Python
Page 37: O Estado do Python

APyB - Associação Python Brasil

• Organização sem fins lucrativos

• Organizar eventos

• Coordenar esforços de promoção e marketing

• Divulgação de casos de sucesso

• Fomentar a utilização da linguagem

• Proteger o uso das marcas

Page 38: O Estado do Python
Page 39: O Estado do Python

Email, IRC, Lista de Discussão

• www.python.org.br

• irc.freenode.net #python-br

• https://groups.google.com/forum/#!forum/python-brasil

Page 40: O Estado do Python

Bibliotecas

Page 41: O Estado do Python

Bibliotecas

• Muitas delas nativas

• https://docs.python.org/3/library/index.html

Page 42: O Estado do Python

Bibliotecas

• Muitas delas nativas

• https://docs.python.org/3/library/index.html

• Milhares contribuídas

• https://pypi.python.org/pypi

Page 43: O Estado do Python

Computação Científica

Page 44: O Estado do Python

SciPy

• Matemática

• Ciência

• Engenharia

• Scipy.org

Page 45: O Estado do Python

NumPy

• Vetores

• Matrizes n-dimensionais

• Integração com C/C++ e Fortran

• Números aleatórios

• Numpy.org

Page 46: O Estado do Python

Pandas

• Estatística • Mediana, quartis, desvio padrão, variância

• Análise e Modelagem de dados

• pandas.pydata.org

Page 47: O Estado do Python

SymPy

• Matemática Simbólica

• Sympy.org

Page 48: O Estado do Python

BioPython

• Bioinformática • Alinhamento de códons

• Sequências de proteínas

• BLAST

• ClustalW

• Biopython.org

Page 49: O Estado do Python

NLTK

• Processamento de linguagem natural

• Funciona em Português também • Machado de Assis incluído

• NLTK.org

Page 50: O Estado do Python

Scikit-learn

• Data Mining e Análise de Dados

• Classificação

• Regressão

• Agrupamento

• Normalização

• scikit-learn.org

Page 51: O Estado do Python

Scikit-image

• Processamento de imagens • Detecção de Bordas

• Histogramas

• Matching

• Scikit-image.org

Page 52: O Estado do Python

Desenvolvimento Web

Page 53: O Estado do Python

Django

• Framework FullStack

• 3 camadas • Modelo – Banco de Dados • View – Regras de Negócio • Template – Apresentação

• Livre de SQL

• Djangoproject.com

Page 54: O Estado do Python

Model

Page 55: O Estado do Python

View

Page 56: O Estado do Python

Template

Page 57: O Estado do Python

Flask

• Microframework

• flask.pocoo.org

Page 58: O Estado do Python

Pyramid

• Framework Minimalista

• 3 camadas

• SQLAlchemy como mapeador objeto relacional

• pylonsproject.org

Page 59: O Estado do Python

web2py

• Framework FullStack

• 3 camadas • Model – Banco de Dados

• Controler – Regras de Negócio

• View - Apresentação

Page 60: O Estado do Python

Desenvolvimento de Jogos

Page 61: O Estado do Python

Pygame

• Framework para desenvolvimento de jogos

• Baseado na Lib SDL

• Multiplataforma • Windows, Linux, OSX

• pygame.org

Page 62: O Estado do Python

Kivy

• Framework para desenvolvimento de aplicações gráficas

• OpenGL ES 2

• Multiplataforma • Windows, Linux, OSX • Android • iOS

• kivy.org

Page 63: O Estado do Python

Panda3D

• Game Engine em 3D • Desenvolvido pela Disney

• C++/Python

• Multiplataforma • Windows, Linux, OSX

• panda3d.org