Conhencendo Python e por que ela importa?

4,549 views

Published on

Palestra realizada no dia 10/02/2011 no X Encontro do Grupo de Usuários de Python na Livraria Cultura (Recife -Pernambuco). Palestra com o título: "Conhecendo Python e por que ela importa ? "

Lecture presented at February 09th at X Meeting of Pernambuco Python User Group at Livraria Cultura (Recife - Pernambuco - Brazil) with the title: ' Meeting Python and why does it care ? "

Published in: Technology
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total views
4,549
On SlideShare
0
From Embeds
0
Number of Embeds
883
Actions
Shares
0
Downloads
212
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide














































































  • Conhencendo Python e por que ela importa?

    1. 1. Conhecendo Python e Por que ele Marcel Pinheiro Caraciolo X Encontro do PUG-PE 1
    2. 2. Quem é o palestrante ?• Marcel Pinheiro Caraciolo - @marcelcaraciolo • Atualmente: Diretor de Pesquisa e Desenvolvimento (P&D) da Orygens • Mestrando em ciência da computação pela UFPE • Engenheiro da Computação pela POLI/UPE. (2008) Experiência com computação móvel e inteligente: • Blog Mobidéia: (http://www.mobideia.com) - Mobile • Blog A.I. in motion (http://aimotion.blogspot.com) - I.A. • Experiência com Python há mais de 2 anos. (Contribuições em frameworks I.A / mobile na comunidade open-source). Membro e Moderador do Grupo de Usuários de Python de Pernambuco (PUG-PE) X Encontro do PUG-PE 2
    3. 3. O que é python ? ‘Cobra’ em inglês ? Sim, também! X Encontro do PUG-PE 3
    4. 4. O que é python ?Linguagem criada por Guido van Rossum em 1991 ! !"#$%&$!()*"+,Nome inspirado no seriado Monty Python ! -"+)($!()*"+. ! /0)1$2#"3&)454313$67)&3"7$ 3489$:;<=>$9147$%&$?@?AA$$ B151C ! DE4F404313$3$GH34E" ! IJG40$12#+34813" ! I1G409+)$>)+7K50$ 6?@?AAL$B151C ! M2+$N"&#G ! -13&#1L$373$<OO<$6<P$ X Encontro do PUG-PE 1+"7C 4
    5. 5. O que é python ? X Encontro do PUG-PE 5
    6. 6. O que é python ?É fácil X Encontro do PUG-PE 5
    7. 7. Python é simples eSemelhança ao pseudo-código X Encontro do PUG-PE 6
    8. 8. Hello World Classíco... ‘hello world’ - Python vs { Java, C, PHP e Pascal } X Encontro do PUG-PE 7
    9. 9. Hello World Classíco.... Em Python .... print “Hello World” X Encontro do PUG-PE 8
    10. 10. O que é python ?É fácil X Encontro do PUG-PE 9
    11. 11. O que é python ?É fácil É poderoso X Encontro do PUG-PE 9
    12. 12. Canivete suíçoTipagem dinâmicaBiblioteca padrão completaMulti-paradigmaMulti-plataformaFacilmente extensívelFree Software (GPL) X Encontro do PUG-PE 10
    13. 13. ...E já vem comimport urllib2from BeautifulSoup import BeautifulSoupurl = "http://www.google.com"request = urllib2.Request(url)response = urllib2.urlopen(request)document = response.read()soup = BeautifulSoup(document)#normaliza o documento para que o mesmo seja acessível via objetoslinks = soup.findAll(a)# retorna uma lista com todos os links do documentofor link in links: print link[href] X Encontro do PUG-PE 11
    14. 14. ...E já vem comPersistência de ObjetosBanco de DadosGeração de PdfsProtocolos de RedeCriptografiaetc. X Encontro do PUG-PE 12
    15. 15. O que é python ?É fácil É poderoso X Encontro do PUG-PE 13
    16. 16. O que é python ?É fácil É poderoso É divertido X Encontro do PUG-PE 13
    17. 17. Fácil e poderoso!lista = [laranja, banana, uva]lista.sort() for item in lista:    print item.capitalize() X Encontro do PUG-PE 14
    18. 18. Hun, sei o que é ...E agora como eu começo ? X Encontro do PUG-PE 15
    19. 19. E como eu começo ?!Interpretador Python disponível para diversas plataformas. http://www.python.org/download http://www.python.org/ X Encontro do PUG-PE 16
    20. 20. E como eu começo ?! X Encontro do PUG-PE 17
    21. 21. E como eu começo ?! Diversos editores com suporte para desenvolvimento em Python X Encontro do PUG-PE 18
    22. 22. E como eu começo ?! Diversos editores com suporte para desenvolvimento em Python X Encontro do PUG-PE 18
    23. 23. ... e por que Python ? X Encontro do PUG-PE 19
    24. 24. ... e por que Python ? 8 motivos ! X Encontro do PUG-PE 19
    25. 25. ... e por que Python ? 1. Python é fácil e divertido X Encontro do PUG-PE 20
    26. 26. Python é legal!Com alguns comandos e eu posso copiar, ler e escrever arquivos!list_of_infiles = [‘file1.txt’, ‘file2.txt’, ‘file3.txt’]for file in list_of_infiles: file = open(file, ‘r’).read().replace(‘;’,’t’) out = open(‘fileOut.txt’,‘a’).write(file) out.close() file.close() X Encontro do PUG-PE 21
    27. 27. ... e por que Python ? 2. Python é poderoso X Encontro do PUG-PE 22
    28. 28. Python é multi-• Programação Estruturada def partition(list, l, e, g): if list == []: return (l, e, g) else: head = list[0] if head < e[0]: return partition(list[1:], l + [head], e, g) elif head > e[0]: return partition(list[1:], l, e, g + [head]) else: return partition(list[1:], l, e + [head], g) X Encontro do PUG-PE 23
    29. 29. Python é multi-• Programação orientada a objetos class Quicksort(object): def __init__(self,list): self.list = list def partition(self,list,l, e, g): if self.list == []: return (l, e, g) else: head = self.list[0] if head < e[0]: return partition(self.list[1:], l + [head], e, g) elif head > e[0]: return partition(self.list[1:], l, e, g + [head]) else: return partition(self.list[1:], l, e + [head], g) X Encontro do PUG-PE 24
    30. 30. Python é multi-• Programação funcionaldef qsort(L): if len(L) <= 1: return L return qsort( [ lt for lt in L[1:] if lt < L[0] ] ) + [ L[0] ] + qsort( [ ge for ge in L[1:] if ge >= L[0] ] ) X Encontro do PUG-PE 25
    31. 31. Python é multi-• Programação pythônica list.sort() X Encontro do PUG-PE 26
    32. 32. Python é multi- Linux, Unix, Windows, Mac OS... Até aqui nada surpreendente, certo ? X Encontro do PUG-PE 27
    33. 33. Python é multi-• Python em dispositivos móveis • Python for Symbian (PyS60), PySide (Maemo), ASE (Android) X Encontro do PUG-PE 28
    34. 34. Python é multi-• PyMT • Python Multi Touch • Especialmente criado para ambientes multi-touch http://pymt.eu/ X Encontro do PUG-PE 29
    35. 35. Python é multi-• E até no Iphone!! • Django portado para Iphone http://www.webmonkey.com/2007/08/running_django_on_the_iphone/ http://leepa.github.com/django-iphone-push/ http://code.google.com/p/django-mobileadmin/ X Encontro do PUG-PE 30
    36. 36. E tem vários acessórios! NetworkX http://pypi.python.org/pypi X Encontro do PUG-PE 31
    37. 37. ... e por que Python ? 3. Python é utilizado ao redor do mundo X Encontro do PUG-PE 32
    38. 38. Python é utilizado lá II Encontro X Encontro do Pernambuco Livre - Recife - PUG-PE 33
    39. 39. ... e aqui no Brasil X Encontro do PUG-PE 34
    40. 40. Python entre as 10 + ! http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html X Encontro do PUG-PE 35
    41. 41. Depoimentos sobre PythonGoogle:"Python tem tido um papel importante dentro do Google desde o início, e continua sendo à medida que nosso sistema cresce e evolui. Hoje vários engenheiros do Google usam Python, e nós estamos procurando mais pessoas com habilidades nesta linguagem.” - Peter Norvig, Diretor de Qualidade de Pesquisa, Google Inc.Industrial Light & Magic:“Python desempenha um papel fundamental em nosso esquema de produção. Sem ele um projeto do tamanho do filme Star Wars: Episode II seria impossível sair do papel. Desde renderização de personagens a processamento em lote na composição da trilha, Python integra tudo facilmente.” - Tommy Burnette, Diretor Técnico Senior, Industrial Light&Magic Inc. X Encontro do PUG-PE 36
    42. 42. Depoimentos sobre PythonMameluco - Projeto Social Cats “Nós da Mameluco escolhemos Python desde o início do nosso primeiro projeto, o website CATS. [..] Conseguimos instalar a plataforma de desenvolvimento, configurá-lo no IDE Eclipse e escrever um ‘Hello World’ em questão de minutos. [...] Durante o desenvolvimento do CATS, trabalhei muito com JavaEE emoutro projeto. A dificuldade de configuração, necessidade de ler centenas de páginas e pouca expressividade me fizeram abandonar Java como Primeira linguagem. Foi Python mesmo que encontrei a maneira mais natural de programar servidores, clientes HTTP e serviços REST.” Flávio Juvenal - CTO - MamelucoOrygens:“Escolhemos Python nos nossos projetos por ser uma linguagem madura e de fácil aprendizado e com uma comunidade ativa de usuários. Além de atender nossas necessidades, até nosso designer está aprendendodesenvolver em Python/Django e está achando muito simples. Nós prentendemos usá-lo em vários outros projetos da Orygens [...]. Além da simplicação do desenvolvimento web, [...] reduziu a complexidade e tempo em um novo projeto”. Rafael Carício - CTO - http://atepassar.comInstituto Nokia de Tecnologia:[...] “Desenvolvemos bindings de Qt(C++) para Python: PySide. Python me chamou atenção por ser usadona maioria dos projetos open source dos quais sou usuário. Aprender Python foi muito rápido e o código é muito agradável de ler.[...] Recomendaria Python a qualquer um, [...] creio que só não recomendaria para quem gosta de declarar os tipos e suas variáveis previamente.” Marcelo Lira, Desenvolvedor, INDT X Encontro do PUG-PE 37
    43. 43. PyGame e Jogos http://www.pygame.org/news.html X Encontro do PUG-PE 38
    44. 44. Aplicativos Desktophttp://svn.softwarepublico.gov.br/trac/invesalius X Encontro do PUG-PE 39
    45. 45. Aplicativos Desktop http://www.blender.org/ X Encontro do PUG-PE 40
    46. 46. Aplicativos Desktophttp://www.stoq.com.br/ http://taskcoach.org/ X Encontro do PUG-PE 41
    47. 47. Aplicativos Desktop Python + Qt + Qml X Encontro do PUG-PE 42
    48. 48. ... e por que Python ? 4. Python é utilizado na web ao redor do mundo X Encontro do PUG-PE 43
    49. 49. Web lá fora! http://pt.reddit.com/ http://www.nationalgeographic.com/ http://sourceforge.net/ http://www.youtube.com/ X Encontro do PUG-PE 44
    50. 50. Web aqui dentro!http://www.receita.fazenda.gov.br/ http://atepassar.com/ http://www.brasil.gov.br/, http://www.vericia.com/, http://www.dapress.com.br/, http://filmow.com , etc. X Encontro do PUG-PE 45
    51. 51. ... e por que Python ? 5. Há empregos para desenvolvedores Python X Encontro do PUG-PE 46
    52. 52. Por aqui... X Encontro do PUG-PE 47
    53. 53. Por aqui...http://empregos.trovitbrasil.com.br/python, listas de discussão, ... X Encontro do PUG-PE 48
    54. 54. Por lá... http://www.python.org/community/jobs/ X Encontro do PUG-PE 49
    55. 55. Por lá... Número de ofertas de emprego 60 49 56 45 37 30 19 15 Nov-2010 Dec-2010 0 Jan-2011 Feb-2011 http://www.python.org/community/jobs/ X Encontro do PUG-PE 50
    56. 56. Até em casa! http://www.freelancer.com/projects/ X Encontro do PUG-PE 51
    57. 57. ... e por que Python ? 6. Conversa bem com outras linguagens X Encontro do PUG-PE 52
    58. 58. Python e C/C++static PyObject *my_callback = NULL;static PyObject *my_set_callback(PyObject *dummy, PyObject *args){ PyObject *result = NULL; PyObject *temp; if (PyArg_ParseTuple(args, "O:set_callback", &temp)) { if (!PyCallable_Check(temp)) { Você pode extender } PyErr_SetString(PyExc_TypeError, "parameter must be callable"); return NULL; Python ou usá-lo em Py_XINCREF(temp); /* Add a reference to new callback */ Py_XDECREF(my_callback); /* Dispose of previous callback */ my_callback = temp; /* Remember new callback */ códigos C/C++ /* Boilerplate to return "None" */ Py_INCREF(Py_None); result = Py_None; } return result;} http://docs.python.org/extending/extending.html X Encontro do PUG-PE 53
    59. 59. Python e Javaimport javax.swing as sshwingfirstNum = sshwing.JOptionPane.showInputDialog(“Enter an integer:”)scndNum = sshwing.JOptionPane.showInputDialog(“Enter an integer:”)sum = int(firstNum) +   int(scndNum)sshwing.JOptionPane.showMessageDialog(None, “The sum of your integers is %d “ % sum) http://www.jython.org/ X Encontro do PUG-PE 54
    60. 60. Python e .Netimport syssys.path.append(r’C:Python25Lib’)import clrclr.AddReference(“System.Windows.Forms”)from System.Windows.Forms import Application,Formclass Hello World(Form): def __init__(self): self.Text = ʻHello Worldʼ self.Name = ʻHello Worldʼform = HelloWorld(Form)Application.Run(Form http://ironpython.net/ X Encontro do PUG-PE 55
    61. 61. Python e muito mais! PyMat - Matlabhttp://claymore.engineer.gvsu.edu/~steriana/Python/pymat.html http://rpy.sourceforge.net/ http://code.google.com/p/pyswip/ http://appscript.sourceforge.net/ X Encontro do PUG-PE 56
    62. 62. Interpretada, e o desempenho? “Não fique apenas com o conhecimento que você tem do código.” Módulos para Python escritos em C. (Extensões): Ex: PyRex PyPy: Implementação da linguagem Python em Python (Otimizando a linguagem). http://pypy.org Psyco: Compilador para Python que gera código nativo da máquina (2x - 100x) http://psyco.sourceforge.net/200150100 Lines of code Time per iteration (ms) 50 0 Sun JDK 1.6.0 C++ 4.13 Python + Psyco Python 2.5.1 http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/ X Encontro do PUG-PE 57
    63. 63. ... e por que Python ?7. Uma boa linguagem para quem está começando! X Encontro do PUG-PE 58
    64. 64. Aprendar programar comhttp://ark4n.wordpress.com/python/ http://www.aprendendodjango.com/http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-00Fall-2008/CourseHome/index.htm X Encontro do PUG-PE 59
    65. 65. Aprendar programar com Universidade Federal Rural de Pernambuco já adota Python Bacharelado em Sistemas de Informação Licenciatura em Física Licenciatura em Computação[...] O curso BSI-UFRPE tem como Python a LP oficial do curso! Todas as disciplinas que envolvem programação [...], usam Python! Recentemente tenho experimentado usar algo que é fantástico em Python para ensinar a programar: Python é híbrida. [...] O resultado desta experiência está sendo organizado em um texto [...], e pretendo transformá-lo até o fim do ano em um livro, cujo título provisório é ‘Python como Primeira LP: Uma abordagem Imperativa, Funcional e Orientada a Objetos”. Prof. PHD Wilson Rosa - Pesquisador UFRPE X Encontro do PUG-PE 60
    66. 66. ... e por que Python ?8. Uma comunidade forte com que você pode contar! X Encontro do PUG-PE 61
    67. 67. 24 hrs ao seu dispor! http://br.groups.yahoo.com/group/python-brasil/ X Encontro do PUG-PE 62
    68. 68. PUG - PE Grupo de usuários de Python de Pernambucohttp://groups.google.com/group/pug-pe?hl=pt-BR X Encontro do PUG-PE 63
    69. 69. Razão bônus! 9. Permite expor suas idéias de forma rápida! X Encontro do PUG-PE 64
    70. 70. TransitoRecife (Web)Monitorando o trânsito de algumas vias do Recife X Encontro do PUG-PE 65
    71. 71. TransitoRecife (Web)Monitorando o trânsito de algumas vias do Recife X Encontro do PUG-PE 65
    72. 72. TransitoRecife (Web)Monitorando o trânsito de algumas vias do Recife http://twitter.com/transitoRE X Encontro do PUG-PE 65
    73. 73. TransitoRecife (Web)Monitorando o trânsito de algumas vias do Recife http://twitter.com/transitoRE X Encontro do PUG-PE 65
    74. 74. TransitoRecife (Web)Monitorando o trânsito de algumas vias do Recife http://twitter.com/transitoRE Apenas 65 linhas de código! X Encontro do PUG-PE 65
    75. 75. TransitoRecife (Celular) ... E também via celular! TransitoRecife no Nokia E63 66
    76. 76. TransitoRecife (Celular) ... E também via celular! TransitoRecife no Nokia E63 66
    77. 77. TransitoRecife (Celular) ... E também via celular! TransitoRecife no Nokia E63 66
    78. 78. TransitoRecife (Celular) ... E também via celular! TransitoRecife no Nokia E63 66
    79. 79. Referênciashttp://www.slideshare.net/marcoandre/porque-python-fisl-90 (Marcos André - FISL 9)http://www.slideshare.net/flavioribeiro/introduo-a-linguagem-de-programao-python-presentationhttp://www.python.org/http://www.pythonbrasil.org.br/http://ark4n.wordpress.com/python/E-mails, Listas, Fóruns, conversas no Google Talk, etc. X Encontro do PUG-PE 67
    80. 80. Chegamos ao fim !!Hora da random.choice([pergunta, dúvida, discussão]) !! X Encontro do PUG-PE 68
    81. 81. Conhecendo Python e Por que ele Marcel Pinheiro Caraciolo email: caraciol@gmail.com twitter: marcelcaraciolo X Encontro do PUG-PE 69

    ×