Your SlideShare is downloading. ×
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

1,199

Published on

Versão apresentada na Unicamp em Agosto 2010. …

Versão apresentada na Unicamp em Agosto 2010.
Presented at Unicamp in August 2010

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,199
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Python: Cabe no seu bolso, no seu micro, no seu cérebroRodrigo Dias Arruda Senra IC-UNICAMP / HI Tecnologia
  • 2. • Engenheiro de Computação Graduação-MSc-(PhD em curso) IC-Unicamp• Desenvolvedor e Projetista de Software na HI Tecnologia (desde 2008) (no mercado desde 1996 )• Entusiasta de FLOSS desde 1999) (atuante na comunidade Python 2
  • 3. Uma palavra dos patrocinadores...
  • 4. Uma palavra dos patrocinadores...
  • 5. Uma palavra dos patrocinadores...
  • 6. Uma palavra dos patrocinadores...
  • 7. Uma palavra dos patrocinadores...
  • 8. Quem está aí ?
  • 9. Quem está aí ?• Estudantes ?
  • 10. Quem está aí ?• Estudantes ?• Professores ?
  • 11. Quem está aí ?• Estudantes ?• Professores ?• conhecedores de Python ?
  • 12. Quem está aí ?• Estudantes ?• Professores ?• conhecedores de Python ?• Membros de python-brasil@ ?
  • 13. Quem está aí ?• Estudantes ?• Professores ?• conhecedores de Python ?• Membros de python-brasil@ ?• Membros da APyB ?
  • 14. Vamos falar do quê ? • O Graal do desenvolvedor ? • Escolhendo uma linguagem • Contextualizando Python • Vocabulário Ofidiglota
  • 15. O Graal do Desenvolvedor
  • 16. O Graal do Desenvolvedor
  • 17. O Graal do Desenvolvedor • Facilidade
  • 18. O Graal do Desenvolvedor • Facilidade • Legibilidade
  • 19. O Graal do Desenvolvedor • Facilidade • Legibilidade • Estabilidade
  • 20. O Graal do Desenvolvedor • Facilidade • Legibilidade • Estabilidade • Portabilidade
  • 21. O Graal do Desenvolvedor • Facilidade • Legibilidade • Estabilidade • Portabilidade • Interoperabilidade
  • 22. O Graal do Desenvolvedor • Facilidade • Legibilidade • Estabilidade • Portabilidade • Interoperabilidade • Extensibilidade
  • 23. O Graal do Desenvolvedor • Facilidade • Legibilidade • Estabilidade • Portabilidade • Interoperabilidade • Extensibilidade • Escalabilidade
  • 24. O Graal do Desenvolvedor • Rapidez no ciclo de Desenvolvimento • Facilidade • Legibilidade • Estabilidade • Portabilidade • Interoperabilidade • Extensibilidade • Customização • Escalabilidade • Segurança
  • 25. 2000 D C# GoMac OSX LinuxWindows ME 2000 XP Vista 7
  • 26. 40 2000Plankalkü D C# Go Mac OSX Linux Windows ME 2000 XP Vista 7Transistor
  • 27. 40 50 2000Plankalkü Fortran D LISP C# Go Mac OSX Linux Windows ME 2000 XP Vista 7 Circuito IntegradoTransistor Harddisk
  • 28. 40 50 60 2000Plankalkü Fortran COBOL D LISP SIMULA C# BASIC Go LOGO ITS Mac OSX OS360 Linux MULTICS Windows ME 2000 XP RS-232 Vista ARPANET 7 Circuito Virt.Mem Integrado InterrupçõesTransistor Harddisk Mouse
  • 29. 40 50 60 70 2000Plankalkü Fortran COBOL Pascal D LISP SIMULA C C# BASIC Smalltalk Go LOGO Prolog ITS UNIX Mac OSX OS360 CP/M Linux MULTICS VMS Windows ME 2000 Ethernet XP RS-232 TCP/IP Vista ARPANET 7 PONG Circuito Virt.Mem Micro- Integrado Interrupções processadorTransistor Harddisk Mouse Floppy
  • 30. 40 50 60 70 80 2000Plankalkü Fortran COBOL Pascal Ada D LISP SIMULA C C++ C# BASIC Smalltalk Perl Go LOGO Prolog SQL ITS UNIX LISA Mac OSX OS360 CP/M Macintosh Linux MULTICS VMS UNIX MS-DOS Windows ME Windows 2000 1.0-2.0 Ethernet XP RS-232 OS/2 Vista TCP/IP MINIX ARPANET PONG 7 AIX Circuito Virt.Mem HPUX Micro- Integrado Interrupções processador SCO GNUTransistor Harddisk Mouse Floppy RISC
  • 31. 40 50 60 70 80 90 2000Plankalkü Fortran COBOL Pascal Ada Javascript D LISP SIMULA C C++ Python C# BASIC Smalltalk Perl Java Go LOGO Prolog SQL PHP ITS UNIX LISA BeOS Mac OSX OS360 CP/M Macintosh Linux Linux MULTICS VMS UNIX Solaris MS-DOS OpenBSD Windows ME Windows Windows 2000 1.0-2.0 2.0 - 98 Ethernet XP RS-232 OS/2 Vista TCP/IP MINIX ARPANET PONG 7 AIX Circuito Virt.Mem HPUX Micro- Integrado Interrupções processador SCO GNU WWWTransistor Harddisk Mouse Floppy RISC ISA
  • 32. A eterna busca pelaferramenta perfeita
  • 33. A verdade dói...# Edsger W.Dijkstra, 18 Junho 1975 http://www.cbi.umn.edu/inv/burros/ewd498.htm
  • 34. A verdade dói... 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# Edsger W.Dijkstra, 18 Junho 1975 http://www.cbi.umn.edu/inv/burros/ewd498.htm
  • 35. A verdade dói... PL/1 --"the fatal disease"-- belongs more to the problem set than to the solution set# Edsger W.Dijkstra, 18 Junho 1975 http://www.cbi.umn.edu/inv/burros/ewd498.htm
  • 36. A verdade dói... 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# Edsger W.Dijkstra, 18 Junho 1975 http://www.cbi.umn.edu/inv/burros/ewd498.htm
  • 37. A verdade dói... The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence# Edsger W.Dijkstra, 18 Junho 1975 http://www.cbi.umn.edu/inv/burros/ewd498.htm
  • 38. Truth lies on statistics!
  • 39. http://www.tiobe.com
  • 40. http://www.tiobe.com
  • 41. Top 10 - SourceForge
  • 42. Top 10 - SourceForge
  • 43. Top 10 - SourceForge
  • 44. Java Javascript C# C++ Python C PHPhttp://flossmole.org/category/queries/sourceforge - June 2009
  • 45. x86 Ubuntu™ Intel® Q6600® one core - http://shootout.alioth.debian.org/ 
  • 46. http://dada.perl.it/shootout/wc_details.html
  • 47. Segurança Fonte: http://nvd.nist.gov/nvd.cfm PHP Perl Java Python
  • 48. Segurança Fonte: http://nvd.nist.gov/nvd.cfm PHP Perl Java Python 9.000 8.121CVE - Common Vulnerabilities and Exposures 6.690 6.750 4.500 2.250 1.766 1.537 735 871 28 38 0 junho 2007 abril 2008
  • 49. Duelo de linguagens
  • 50. Duelo de linguagens
  • 51. Duelo de linguagens
  • 52. Javaimport 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));
  • 53. Java C#importSystem;using java.io.*;importApp {class java.util.*;import static int Main(String[] args) {public java.text.*;public class sumcol { int count = 0;public static void main(String[] args) { for (String line = Console.In.ReadLine(); int count != 0; line = null; String line; Console.In.ReadLine()) line = try {count += System.Convert.ToInt32(line); } { BufferedReader in = new BufferedReader( Console.WriteLine(count.ToString()); return(0); new InputStreamReader(System.in)); } while ((line = in.readLine()) != null) { count = count + Integer.parseInt(line); } } catch (IOException e) { } System.out.println(Integer.toString(count));
  • 54. Python Java C#importSystem;import java.io.*;using sysimportApp {class java.util.*;count = 0import1:public java.text.*;while static int Main(String[] args) {public class sumcol { line = count = 0; int sys.stdin.readline().strip()public static void main(String[] args) { for (String line = Console.In.ReadLine(); if not line: int count != 0; break line = null; count += line; Console.In.ReadLine()) String int(line) line =print try {count += System.Convert.ToInt32(line); } { count BufferedReader in = new BufferedReader( Console.WriteLine(count.ToString()); return(0); new InputStreamReader(System.in)); } while ((line = in.readLine()) != null) { count = count + Integer.parseInt(line); } } catch (IOException e) { } System.out.println(Integer.toString(count));
  • 55. Python Java C#importSystem;import java.io.*;using sysimportApp { itertoolscount java.util.*;class sys,import= 0import1:public java.text.*;while static int Main(String[] args) {print sum(itertools.imap(int, sys.stdin))public class sumcol { line = count = 0; int sys.stdin.readline().strip()public static void main(String[] args) { for (String line = Console.In.ReadLine(); if not line: int count != 0; break line = null; count += line; Console.In.ReadLine()) String int(line) line =print try {count += System.Convert.ToInt32(line); } { count BufferedReader in = new BufferedReader( Console.WriteLine(count.ToString()); return(0); new InputStreamReader(System.in)); } while ((line = in.readLine()) != null) { count = count + Integer.parseInt(line); } } catch (IOException e) { } System.out.println(Integer.toString(count));
  • 56. Who is using Python ?
  • 57. Who is using Python ?
  • 58. Who is using Python ?
  • 59. Who is using Python ?
  • 60. Who is using Python ?
  • 61. 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)
  • 62. 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)✴ 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
  • 63. Hora da Demo Dá tempo de vero Python em ação ? É possível ?Seria pedir muito ?
  • 64. Pygame
  • 65. Python no celular S60
  • 66. Bancos de Dadosfrom psycopg import *o = connect(“ dbname=teste user=fulano” )c = o.cursor()c.execute(“ SELECT * FROM nome_da_tabela” )row = c.fetchone()print rowx = [ (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()
  • 67. Networkingfrom twisted.internet.protocol import Protocol, Factoryfrom twisted.internet import reactorfrom time import asctimeclass TimeServer(Protocol): def dataReceived(self, data): self.transport.write(asctime())def main(): f = Factory() f.protocol = TimeServerreactor.listenTCP(8000, f)reactor.run()main()
  • 68. Web Servicesfrom SOAPpy import SOAPProxyfrom SOAPpy import Typesgoogle = 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()
  • 69. SciPyimport viewfrom 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)
  • 70. Apps
  • 71. Referências http://python.org http://www.pythonbrasil.com.br http://associacao.pythonbrasil.org http://showmedo.com
  • 72. Referências Mergulhando no Python: Mark Pilgrim (Alta Books) Python in a Nutshell: Alex Martelli (OReilly) Python Cookbook: Alex Martelli, David Ascher (OReilly) Python Programming on Win32: Mark Hammond (OReilly) Jython Essential: Noel Rappin, Samuele Pedroni (OReilly) Foundations of Python Network Programming: John Goerzen (Apress)
  • 73. Conclusão • Ágil, madura e moderna • Fácil aprendizado • Comunidade Ativa • Fartura de documentação • Divertida ;o)
  • 74. Não tenha medo,experimente Python!
  • 75. Não tenha medo,experimente Python!
  • 76. Obrigado a todos pela atenção. Rodrigo Dias Arruda Senra http://rodrigo.senra.nom.br rsenra@acm.orgAs 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 quenão sejam feitas alterações no conteúdo reutilizado e que esta nota esteja presente na íntegra no materialresultante.Imagens e referências para outros trabalhos nesta apresentação permanecem propriedade daqueles que detêmseus direitos de copyright.

×