Your SlideShare is downloading. ×
0
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,243

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,243
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
20
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.

×