o estado do python
DESCRIPTION
Palestra proferida no SAINF 2014 @ UFSM.TRANSCRIPT
O Estado do Python Henrique G. G. Pereira
SAINF 2014
Roteiro
• Apresentação
• Introdução ao Python
• Histórico
• Comunidade
• Bibliotecas
Eu
• Bacharel em Sistemas de Informação – UNIFRA
• Mestre em Ciência da Computação – UFSM
• Analista de TI @ CPD
• Professor @ UNIFRA
• Programador Python
O que é Python?
• Linguagem de Altíssimo Nível
• Sintaxe Fácil
• Multiparadigma
• Tipagem Forte e Dinâmica
• Multiplataforma
• Interpretada
O que é Python?
• Linguagem de Altíssimo Nível
• Sintaxe Fácil
• Multiparadigma
• Tipagem Forte e Dinâmica
• Multiplataforma
• Interpretada
Baixo Nível
Nível Intermediário
Altíssimo Nível
O que é Python?
• Linguagem de Altíssimo Nível
• Sintaxe Fácil
• Multiparadigma
• Tipagem Forte e Dinâmica
• Multiplataforma
• Interpretada
Sintaxe Fácil
• Sem { }
• Blocos limitados por indentação
• Comandos em inglês
• Operadores em inglês
O que é Python?
• Linguagem de Altíssimo Nível
• Sintaxe Fácil
• Multiparadigma
• Tipagem Forte e Dinâmica
• Multiplataforma
• Interpretada
Multiparadigma
• Procedural nome = ‘paulo’
• Orientado a Objetos paulo = Pessoa(“Paulo”)
• Funcional executar(busca, Pessoa, nome = ‘Paulo’)
O que é Python?
• Linguagem de Altíssimo Nível
• Sintaxe Fácil
• Multiparadigma
• Tipagem Forte e Dinâmica
• Multiplataforma
• Interpretada
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.
O que é Python?
• Linguagem de Altíssimo Nível
• Sintaxe Fácil
• Multiparadigma
• Tipagem Forte e Dinâmica
• Multiplataforma
• Interpretada
Multiplataforma
• Windows
• Linux • Embutido
• OSX • Embutido
• Solaris • Embutido
O que é Python?
• Linguagem de Altíssimo Nível
• Sintaxe Fácil
• Multiparadigma
• Tipagem Forte e Dinâmica
• Multiplataforma
• Interpretada
Interpretada
• Interpretador Python (C)
• Interpretador Jython (Java)
• Interpretador IronPython (.Net)
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.
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.
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
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
Outros Pythons
• PyPy
• Stackless Python
• IronPython
• Jython
• ActivePython
• Python(x,y)
Quem usa Python?
Python @ Google
Python @ Google
Python @ Google
Python @ NASA
Python @ CIA
Python @ CIA
E no Brasil?
Empregos no Brasil?
• Globo.com
• IBM
• Motorola
• Totvs
• Amazon
• Titans Group
• Dafiti
• MagazineLuiza
Comunidade
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
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
Email, IRC, Lista de Discussão
• www.python.org.br
• irc.freenode.net #python-br
• https://groups.google.com/forum/#!forum/python-brasil
Bibliotecas
Bibliotecas
• Muitas delas nativas
• https://docs.python.org/3/library/index.html
Bibliotecas
• Muitas delas nativas
• https://docs.python.org/3/library/index.html
• Milhares contribuídas
• https://pypi.python.org/pypi
Computação Científica
SciPy
• Matemática
• Ciência
• Engenharia
• Scipy.org
NumPy
• Vetores
• Matrizes n-dimensionais
• Integração com C/C++ e Fortran
• Números aleatórios
• Numpy.org
Pandas
• Estatística • Mediana, quartis, desvio padrão, variância
• Análise e Modelagem de dados
• pandas.pydata.org
SymPy
• Matemática Simbólica
• Sympy.org
BioPython
• Bioinformática • Alinhamento de códons
• Sequências de proteínas
• BLAST
• ClustalW
• Biopython.org
NLTK
• Processamento de linguagem natural
• Funciona em Português também • Machado de Assis incluído
• NLTK.org
Scikit-learn
• Data Mining e Análise de Dados
• Classificação
• Regressão
• Agrupamento
• Normalização
• scikit-learn.org
Scikit-image
• Processamento de imagens • Detecção de Bordas
• Histogramas
• Matching
• Scikit-image.org
Desenvolvimento Web
Django
• Framework FullStack
• 3 camadas • Modelo – Banco de Dados • View – Regras de Negócio • Template – Apresentação
• Livre de SQL
• Djangoproject.com
Model
View
Template
Flask
• Microframework
• flask.pocoo.org
Pyramid
• Framework Minimalista
• 3 camadas
• SQLAlchemy como mapeador objeto relacional
• pylonsproject.org
web2py
• Framework FullStack
• 3 camadas • Model – Banco de Dados
• Controler – Regras de Negócio
• View - Apresentação
Desenvolvimento de Jogos
Pygame
• Framework para desenvolvimento de jogos
• Baseado na Lib SDL
• Multiplataforma • Windows, Linux, OSX
• pygame.org
Kivy
• Framework para desenvolvimento de aplicações gráficas
• OpenGL ES 2
• Multiplataforma • Windows, Linux, OSX • Android • iOS
• kivy.org
Panda3D
• Game Engine em 3D • Desenvolvido pela Disney
• C++/Python
• Multiplataforma • Windows, Linux, OSX
• panda3d.org