Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Python: Cabe no seu bolso, no seu micro, no seu cérebro.

2 754 vues

Publié le

Versão apresentada na Infnet em 25 de julho de 2015.
Presented at Infnet in July 2015.

Publié dans : Technologie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Python: Cabe no seu bolso, no seu micro, no seu cérebro.

  1. 1. Python: Cabe no seu bolso, no seu micro, no seu cérebro Rodrigo Dias Arruda Senra rsenra@acm.org Infnet 2015
  2. 2. Apenas um rapaz latino americano... • Engenheiro de Software • GPr Sistemas (11 anos) • HI Tecnologia (5 anos) • Professor Universitário - PUC-Campinas (2 anos) • Especialista - globo.com (2 anos) • Cientista Pesquisador - EMC2 • Engenheiro de Computação Grad-MSc-PhD IC-Unicamp • Entusiasta de FLOSS (atuante na comunidade Python desde 2000)
  3. 3. Quem está aí ? • Estudantes ? • Profissionais ? • Professores ? • Palestrantes ? • Pythonistas ?
  4. 4. Vamos falar do quê ? • O Graal do desenvolvedor ? • Escolhendo uma linguagem • Contextualizando Python • Vocabulário Ofidiglota
  5. 5. O Graal do Desenvolvedor
  6. 6. • Facilidade • Legibilidade • Estabilidade • Portabilidade • Interoperabilidade • Extensibilidade • Escalabilidade O Graal do Desenvolvedor
  7. 7. • Rapidez no Ciclo de Desenvolvimento • Facilidade • Legibilidade • Estabilidade • Portabilidade • Interoperabilidade • Extensibilidade • Customização • Escalabilidade • Segurança O Graal do Desenvolvedor
  8. 8. A eterna busca pela ferramenta perfeita
  9. 9. 40 Plankalkü Transistor 50 Fortran LISP Harddisk Circuito Integrado 60 COBOL SIMULA BASIC LOGO ITS OS360 MULTICS Mouse Interrupções Virt.Mem ARPANET RS-232 70 Pascal C Smalltalk Prolog UNIX CP/M VMS Floppy Micro- processador PONG TCP/IP Ethernet 80 Ada C++ Perl SQL LISA Macintosh UNIX MS-DOS Windows 1.0-2.0 OS/2 MINIX AIX HPUX SCO GNU RISC 90 Javascript Python Java PHP BeOS Linux Solaris Windows 2.0 - 98 OpenBSD ISA WWW 2000 Scala C# Mac OSX Windows ME 2000 XP Vista 7 Go Linux Julia
  10. 10. A verdade dói... # Edsger W.Dijkstra, 18 Junho 1975 http://www.cbi.umn.edu/inv/burros/ewd498.htm
  11. 11. A verdade dói... # Edsger W.Dijkstra, 18 Junho 1975 http://www.cbi.umn.edu/inv/burros/ewd498.htm FORTRAN --"the infantile disorder"--, by now nearly 20 years old, is hopelessly inadequate for whatever computer application you have in mind today: it is now too clumsy, too risky, and too expensive to use
  12. 12. A verdade dói... # Edsger W.Dijkstra, 18 Junho 1975 http://www.cbi.umn.edu/inv/burros/ewd498.htm PL/1 --"the fatal disease"-- belongs more to the problem set than to the solution set
  13. 13. A verdade dói... # Edsger W.Dijkstra, 18 Junho 1975 http://www.cbi.umn.edu/inv/burros/ewd498.htm It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration
  14. 14. A verdade dói... # Edsger W.Dijkstra, 18 Junho 1975 http://www.cbi.umn.edu/inv/burros/ewd498.htm The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence
  15. 15. Truth lies on statistics!
  16. 16. Top 10 - SourceForge
  17. 17. http://githut.info/
  18. 18. Last data update: Fri Jul 24 20:03:26 BRT 2015 http://www.langpop.com Yahoo Search, Craigslist, Ohloh, Google Code, Freshmeat, Delicious, Powells
  19. 19. http://sogrady-media.redmonk.com/sogrady/files/2015/07/lang-rank-615-wm.png
  20. 20. Segurança Fonte: http://nvd.nist.gov/nvd.cfm Python 91 Ruby 109 JS 209 Java 613 C 1559 PHP 2732
  21. 21. http://benchmarksgame.alioth.debian.org/u64q/which-programs-are-fastest.html
  22. 22. Duelo de linguagens
  23. 23. Duelo de linguagens
  24. 24. import java.io.*; import java.util.*; import java.text.*; public class sumcol { public static void main(String[] args) { int count = 0; String line; try { BufferedReader in = new BufferedReader( new InputStreamReader(System.in)); while ((line = in.readLine()) != null) { count = count + Integer.parseInt(line); } } catch (IOException e) { } System.out.println(Integer.toString(count)); Javausing System; class App { public static int Main(String[] args) { int count = 0; for (String line = Console.In.ReadLine(); line != null; line = Console.In.ReadLine()) { count += System.Convert.ToInt32(line); } Console.WriteLine(count.ToString()); return(0); } C#import sys count = 0 while 1: line = sys.stdin.readline().strip() if not line: break count += int(line) print count Pythonimport sys, itertools print sum(itertools.imap(int, sys.stdin)) Python
  25. 25. Who is using Python ?
  26. 26. Fernando Perez, lead PI at BIDS and creator of IPython, demonstrates brain imaging analyses performed using the IPython Notebook, an interactive web-based computational environment. credit: Peg Skorpinski
  27. 27. http://i0.wp.com/sciencereview.berkeley.edu/wp-content/uploads/2014/04/spring_2014_azam_05.jpg
  28. 28. Python é ... • propósito geral • foco em produtividade do desenvolvedor • multi-plataforma e multi-paradigma • pilhas incluídas • floss software • fácil de extender e embutir • madura (criada em1989, liberada ao público 1991)
  29. 29. Interoperabiilidade ✴ Jython (Python implementado em Java) ✴ CPython (onde existir compilador C ISO/IEC 9899:1990) ✴ IronPython (implementado em C# pela M$) ✴ PyPy (Python implementado em... Python) ✴ Py4J (ponte entre CPython e JVM) ✴ Python for .NET [Brian Lloyd] ✴ Win32all [Mark Hammond] (adeus VBA!) ✴ PyObjC (Mac OSX middleware) ✴ Python for Delphi [Morgan Marat] ✴ LunaticPython [Gustavo Niemeyer] ✴ Ruby/Python (importar módulos Python em Ruby) ✴ Python + Fortran
  30. 30. Hora da Demo Dá tempo de ver o Python em ação ? É possível ? Seria pedir muito ?
  31. 31. Pygame
  32. 32. Python no celular S60
  33. 33. Bancos de Dados from psycopg import * o = connect(“ dbname=teste user=fulano” ) c = o.cursor() c.execute(“ SELECT * FROM nome_da_tabela” ) row = c.fetchone() print row x = [ ('valor_1', 'fulano', 0), ('valor_2', 'beltrano', 5), ('valor_3', 'ciclano', 15)] c.executemany(" " " INSERT INTO outra_tabela VALUES (%s, %s, %s)""", x) c.commit()
  34. 34. Networking from twisted.internet.protocol import Protocol, Factory from twisted.internet import reactor from time import asctime class TimeServer(Protocol): def dataReceived(self, data): self.transport.write(asctime()) def main(): f = Factory() f.protocol = TimeServer reactor.listenTCP(8000, f) reactor.run() main()
  35. 35. Web Services from SOAPpy import SOAPProxy from SOAPpy import Types google = SOAPProxy( 'http://api.google.com/search/beta2', 'urn:GoogleSearch') results = google.doGetCachedPage('Pd6ke...ArQoX' , 'www.owls.org') of = open('cached_page_response.html', 'w') of.write(results) of.close()
  36. 36. SciPy import view from Numeric import * x = arange(-3, 6, .04) y = arange(-12, 12, .08) y = sin(y)*exp(-y*y/18.0) z = x * y[:,NewAxis] view.view(z)
  37. 37. Apps
  38. 38. Referências ! http://python.org ! http://www.pythonbrasil.com.br ! http://associacao.pythonbrasil.org ! http://showmedo.com
  39. 39. Referências ! Fluent Python: Luciano Ramalho (O’Reilly) ! Python in a Nutshell: Alex Martelli (O'Reilly) ! Python Cookbook: Alex Martelli, David Ascher (O'Reilly) ! Learning Python for Interactive Computing and Data Visualisation: Cyrille Rossant (Packt)
  40. 40. Conclusão • Ágil, madura e moderna • Fácil aprendizado • Comunidade Ativa • Fartura de documentação • Divertida ;o)
  41. 41. Obrigado a todos pela atenção. Rodrigo Dias Arruda Senra http://rodrigo.senra.nom.br rodsenra@gmail.com @rodsenra As opiniões e conclusões expressas nesta apresentação são de exclusiva responsabilidade de Rodrigo Senra. Não é necessário requisitar permissão do autor para o uso de partes ou do todo desta apresentação, desde que não sejam feitas alterações no conteúdo reutilizado e que esta nota esteja presente na íntegra no material resultante. Imagens e referências para outros trabalhos nesta apresentação permanecem propriedade daqueles que detêm seus direitos de copyright. Agradecimento especial a Ana Oliveira e Diego Salomone que contribuíram com alguns slides de suas apresentações sobre o mesmo tema.

×