A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Linguagem Python Características e Aplicações Renato Violin

Apresentações semelhantes


Apresentação em tema: "Linguagem Python Características e Aplicações Renato Violin"— Transcrição da apresentação:

1 Linguagem Python Características e Aplicações Renato Violin

2 Conteúdo  Histórico  Características  Python e outras linguagens  Quem usa Python?  Python para Web  Python mobile  Python 3D e Games  Interface gráfica  IDE’s  Referências

3 Histórico  Criada por Guido Van Rossum em 1991  Baseado no linguagem ABC  Projetada inicialmente para o sistema operacional distribuído Amoeba  Origem do nome: Grupo de humor Monty Python  Código aberto: GPL  Atualmente (novembro/2009 ) na versão 3.0

4 Filosofia Python >>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Special cases aren't special enough to break the rules. There should be one- and preferably only one -obvious way to do it. […]

5 Características da Linguagem  Legível – Identação obrigatória  Interpretada – Compila bytecode e interpreta (.pyc,.pyo)  Multiplataforma – Windows, Linux/Unix, MacOS  Tipagem forte e dinâmica  Multiparadigma – Procedural, Funcional e Orientado a Objetos.  Usada em várias aplicações: Web, desktop, sistemas embarcados, sistemas 3D.  Não há declarações, apenas instruções (ações).

6 Legível sintaxe simples e identação obrigatória

7 Tipagem forte e dinâmica

8 Estruturas de alto nível

9 Orientação a objetos apesar do self a sintaxe é reduzida

10 Características Funcionais Lambda: função sem nome Map: aplica uma função a cada item de uma lista Reduce: faz um somatório de uma lista Filter: aplica uma condição em cada item da lista Zip: agrupa elementos entre listas Saída 9 Lambda.: 27 MAP....: [1, 8, 27, 64, 125] REDUCE.: 24 Filter.: [3, 4, 5, 6, 7, 8, 9] Zip....: [(1, 4, 7), (2, 5, 8)]

11 Outros Recursos  Testes de Unidades  Threads  Sockets  SPADE – Agente inteligente

12 Bibliotecas  Persistência de objetos  Banco de dados  Geração de PDFs  Manipulação de imagens  Protocolos de redes  Criptografia  Integração com o S.O ...

13 Python conversa com outras linguagens  C/C++ - Swig  Fortran – PyFort  Java – Jython .NET – IronPython

14 Python vs. Java/C++  “Não desperdiça pixels”  Não utiliza { } em blocos, apenas identação.  Não utiliza ( ) em condições if e while.  Em geral utiliza menos pontuação.  Tipos: forte porem dinâmicos. • nomes não tem tipos, objetos sim.  Sem declarações, apenas instruções.

15 Python e Java algumas semelhanças  Ambas são compiladas em bytecode.  Todas as classes herdam de object. • Em Python: números e funções.  Semântica uniforme para objeto-referência. • Não há copia de objetos.  Garbage collection (coletor de lixo) • Python: mais pró-ativo, faz a coleta assim que possível.  Enorme biblioteca padrão + pacotes de terceiros.

16 Python e Java com Jython

17 Python e Java comparando: código em Java para fatorial

18 Python e.NET com IronPython Trecho de código incompleto. Falta declaração dos outros objetos.

19 Quem usa Python

20 Google "Python tem sido uma parte importante do Google desde o início, e permance assim conforme o sistema cresce e evolui. Hoje, dezenas de engenheiros do Google usam Python, e estamos procurando por mas pessoas com conhecimento nessa linguagem." disse Peter Norvig, diretor de qualidade de busca do Google, Inc. […] nossa filosofia é “Python onde podemos, C++ onde somos obrigados”. Python não é apenas um pequeno pedaço nem mesmo usado apenas para tarefas de script. Se um virus parasse a execução de todo código Python, a grande infraestrutura descrita como “A arma secreta do Google” pararia. Alex Martineli, Sistemas de produção Google Inc.

21 Youtube Youtube (uma das propriedades mais valiosas do Google) é essencialmente todo Python […]. Alex Martineli, Sistemas de produção Google Inc. “Python é rapido suficiente para nosso site e permite produzir e manter características em tempo recorde, com um mínimo de desenvolvedores”. Cuong Do, Arquiteto de software Google.

22 Red Hat A distribuição linux Red Hat usa Python no instalador (Anaconda) e seus utilitários de configuração. A interface gráfica foi desenvolvida utilizando a biblioteca pyGtk A distribuição linux Red Hat usa Python no instalador (Anaconda) e seus utilitários de configuração. A interface gráfica foi desenvolvida utilizando a biblioteca pyGtk

23 DreamWorks “Gostariamos de ter tudo Python, mas ainda temos muito de Perl”. Ed Leonard, Diretor de tecnologia de Animação “Gostariamos de ter tudo Python, mas ainda temos muito de Perl”. Ed Leonard, Diretor de tecnologia de Animação Nossa equipe tem baseado a transição de Perl para Python na facilidade. Há três razoes para isso: A criação de bindings para C++ é muito fácil [...], A natureza orientada a objetos do Python é mais atrativa [...], Python é uma cidadã de primeira classe na nossa empresa. Darin Grant, Chefe de produção e tecnologia Nossa equipe tem baseado a transição de Perl para Python na facilidade. Há três razoes para isso: A criação de bindings para C++ é muito fácil [...], A natureza orientada a objetos do Python é mais atrativa [...], Python é uma cidadã de primeira classe na nossa empresa. Darin Grant, Chefe de produção e tecnologia

24 Industrial Light and Magic “Python desempenha um papel chave em nossa linha de produçao. Sem ele, um projeto do tamanho de Star Wars: Episode II teria sido muito dificil de ser concluído. Desde a renderização da multidão até o processamento em lote para a composição, Python mantem todas as partes juntas”. Tommy Burnette, Diretor Técnico Sênior. “Python desempenha um papel chave em nossa linha de produçao. Sem ele, um projeto do tamanho de Star Wars: Episode II teria sido muito dificil de ser concluído. Desde a renderização da multidão até o processamento em lote para a composição, Python mantem todas as partes juntas”. Tommy Burnette, Diretor Técnico Sênior.

25 Walt Disney “Walt Disney Feature Animation é um grande armazem de Perl, mas algumas desvantagens com Perl conduziu o pessoal de desenvolvimento a pesquisar outras alternativas para script. […] Nós estavamos tendos problemas de estabilidade com Perl e não estavamos conseguindo integrar Perl com interfaces gráficas em C++ da forma que gostariamos. […] Python forneceu a integração que eu gostaria.” Brent Burley, Engenheiro de software sênior WDFA “Walt Disney Feature Animation é um grande armazem de Perl, mas algumas desvantagens com Perl conduziu o pessoal de desenvolvimento a pesquisar outras alternativas para script. […] Nós estavamos tendos problemas de estabilidade com Perl e não estavamos conseguindo integrar Perl com interfaces gráficas em C++ da forma que gostariamos. […] Python forneceu a integração que eu gostaria.” Brent Burley, Engenheiro de software sênior WDFA

26 Blender Blender utiliza a linguagem Python. Através dos scripts Python é possível acessar todas os dados dos objetos em cena. Blender utiliza a linguagem Python. Através dos scripts Python é possível acessar todas os dados dos objetos em cena.

27 NASA Johnson Space Center usa Python no Sistema de Planejamento Integrado. Esforços estão a caminho para desenvolver uma coleção de ferramentas modular para ajudar no planejamento da pre-missão de lançamento e tambem para trocar ferramentas antigas.

28 Python para Web

29 Django  Framework Web de alto nível.  Segue o padrão MTV – Model Template View.  Automatiza algumas tarefas do processo de desenvolvimento.  Reduz o tempo para construção da aplicação.  Mantém o desenvolvedor com foco no negócio.

30  Mapeamento Objeto-Relacional.  Interface de administração automática.  URLs elegantes  Sistema com Templates.  Coloca resultados em Cache.  Multilíngue Django características Indios+encontram+aviao+da+FAB+e+relatam+que+ha+sobreviventes.html

31 Grok grok.zope.org/  Baseado no framework Zope 3  Orientado a objetos  Fácil aprendizado  Desenvolvimento ágil  Componentes plugáveis

32 Pylons pylonshq.com  Um dos primeiros a adotar o padrão WSGI.  Permite mapeamento objeto relacional.  Templates.  Helpers: WebHelpers e FormAlchemy.  URLs elegantes.  Padrão MVC.

33 Turbo Gears  Surgiu em  Framework Front-to-back.  Padrão MVC.  SQLObject - Mapeamento Objeto-Relacional.  Ferramenta de testes.  Mais recursos em:

34 Web2py  Foi inspirado no Ruby on Rails.  Inspirando também no Django. • Mais compacto, mais simples e mais fácil de aprender.  Padrão MVC.  Fácil instalação.

35 Zope  Servidor de aplicações WEB  United States Navy •  IDG Now! •  Lista completa de aplicações •

36 Plone  Aplicativo CMS – Content Management System.  Baseado no Zope  SERPRO •

37 Breve comparativo  Objetivo: • Construir uma aplicação simples para rastrear a entrada e o tempo de permanência no site.  Frameworks: • J2EE, Rails, Zope/Plone, TurboGears, Django. Vídeo disponível em:

38 J2EE comparativo

39 Rails comparativo

40 Zope/Plone comparativo

41 Turbo Gears comparativo

42 Django comparativo

43 Python Mobile PyS60  Python para celulares baseado no Symbian.  Acessa “alguns” recursos do celular: • Recursos gráficos 3D. • Som (texto -> voz) • Câmera, Vídeo. • Bluetooth. • Wireless. • GPS. • Sensor movimento. • TouchScreen •...

44 Python Mobile outros dispositivos Ipod IPhone PythonCE

45 Python 3D openGL  PyOpenGL • Biblioteca que fornece acesso ao OpenGL.

46 Python 3D visualização científica  PyGLPlot

47 Python 3D visualização científica  MayaVi

48 Python 3D no Brasil  InVesalius – Reconstrução 3D de imagens médicas

49 Python na GPU PyGPU  É um compilador de Python que permite escrever programas de processamento de imagens para serem executados direto na GPU. def sobelEdgeDetect(im=DImage, p=Position): wX = outerproduct([1,2,1],[-1,0,1]) wY = transpose(wX) Gx = convolve(wX,im,p) Gy = convolve(wY,im,p) return sqrt(Gx**2 + Gy**2) Filtro Sobel

50 Python e Games PyGame  Estende a biblioteca SDL. Greyhawk: Temple of Elemental Evil

51 Python e Games Pyglet  Biblioteca baseada em OpenGL. Delta-V

52 Python e Games Python-Ogre  Trabalha junto à biblioteca Ogre 3D. Tibor: Tale of a Kind vampire Legend of Crystal Valley World under Siege

53 Python e Games jogos que fazem uso de Python  BattleField 2 (http://bf2.fun-o-matic.org/index.php/Main_Page) • Usa python para implementar o placar do jogo, o team balancing, etc.  Civilization IV (http://wiki.python.org/moin/OrganizationsUsingPython#Games) • Usa Python para a IA.  EVE – Online (http://www.eveonline.com/devblog.asp?a=blog&bid=488) • Jogo online com usuários simultâneos.

54 Interface Gráfica - GUI’s  Tkinter - Módulo padrão para GUI no Python;  PyGTK - interface para a biblioteca GTK;  PyQT - interface para a biblioteca QT;  wxPython - interface para a biblioteca wxWidgets; ....

55 IDE's  Eclipse - plugin PyDev;  PyScripter.  NetBeans – plugin Python.  Visual Studio – plugin IronPython.  Eric3 - código aberto, baseado em QT;  Boa Constructor - código aberto, baseado em wxPython;  Komodo – comercial.  Wingware - comercial. ....

56 Comentários sobre Python Bruce Eckel  Produtividade é mais importante que performance.  Desordem reduzida.  Não quero esperar para sempre para ter uma linguagem completa.  Não há pessoas do marketing envolvido.  Eu não tenho que digitar muito.  Meus pensamentos geralmente estão corretos. ftp://www.mindview.net/pub/eckel/LovePython.zip

57 Popularidade do Python

58 Documentação livros

59 Documentação sites   Todos os docs em um único pacote • pdf-letter.zip  Por onde começar? • Tutorial Python: get&target=python24.pdf

60 Conclusão  Fácil aprendizagem  Flexível: Multiplataforma, Multiparadigma  Conversa com outras linguagens  Agiliza o desenvolvimento  É livre (GPL)  Várias bibliotecas  Boa documentação e Livros

61 Referências  Thinking Hybrid - Python/C++ Integration •  Matando o Java e mostrando o Python •  Python na prática •  Python Documentation •  Dive Into Python •  Por que Python? •  Painless Python for proeficient programmers. • part-i part-i

62 Dúvidas  Contato:  Apresentação disponível em:


Carregar ppt "Linguagem Python Características e Aplicações Renato Violin"

Apresentações semelhantes


Anúncios Google