SlideShare uma empresa Scribd logo
COM PYTHON !COM PYTHON !
EMPREEMPRE
APRAPRENDENDOENDENDO
TcheLinux Caxias do Sul
31/08/2013
JOAOLUIS.TAVARES@gmail.com
SOBRE !SOBRE !
● João Luís Tavares da Silva....joaoluis.tavares@gmail.com
– Tecnólogo em PD (UNISINOS)
– Mestre em IA (PUCRS)
– Doutor em Informática (UJF-França)
– Pós-Doutor em IE (UFRGS)
– Professor Licenciado UCS (Ciência da Computação)
– Diretor Instituto Communitas
– Diretor HaDi.Com
PYTHON É LEGAL !PYTHON É LEGAL !
PYTHON !PYTHON !
● Guido Van Rossum (1991)
● Linguagem de alto nível
● Sintaxe simples e clara, poucas keywords
● Orientada à objetos, estruturada e funcional
● Linguagem dinâmica com tipagem dinâmica
● Multiplataforma, interpretada
● Portabilidade
● Extensível
PORQUE PYTHON ?PORQUE PYTHON ?
● Qualidade de Software
– código legível, reutilizável e de fácil manutenção
● Produtividade
– 1/3 ou 1/5 do tamanho do código em C/C++ ou Java.
Execução em tempo real;
● Portabilidade
– interface gráfica com usuário, acesso a banco de dados,
sistemas baseados na web, sistemas para dispositivos
móveis, todos portáveis;
PORQUE PYTHON ?PORQUE PYTHON ?
● Bibliotecas
– Batteries included;
– http://docs.python.org/2/library/
● Integração
– invoca bibliotecas e código C e C++, Java. SOAP, XML-
RPC, e CORBA;
● Aproveitamento
– facilidades e auto-ferramentas
COMUNIDADE PYTHON ?COMUNIDADE PYTHON ?
– http://python.org/psf/
– http://www.python.org
– http://www.python.org.br
– http://associacao.python.org.br/
– http://2013.pythonbrasil.org.br/pythonbrasil
TEM OUTROS MOTIVOS ?TEM OUTROS MOTIVOS ?
POPULARIDADE PYTHON !POPULARIDADE PYTHON !
● Linux Journal Reader's Choice Awards 2012
http://redmonk.com/sogrady/2011/09/06/dataists-anguage-rankings/
POPULARIDADE PYTHON !POPULARIDADE PYTHON !
● Linux Journal Reader's Choice Awards 2012
http://www.linuxjournal.com/slideshow/readers-choice-2012
POPULARIDADE PYTHON !POPULARIDADE PYTHON !
● Programming Language Popularity
LangPop.com
POPULARIDADE PYTHON !POPULARIDADE PYTHON !
● TIOBE Programming Community Index 2013
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
QUEM USA PYTHON ?QUEM USA PYTHON ?
APRENDENDO PYTHON !APRENDENDO PYTHON !
PYTHON PRIMEIRO ?PYTHON PRIMEIRO ?
● JAVA e C são mais simples depois de Python
● Python → Foco na lógica básica de programação
● Depois da lógica qualquer linguagem é mais fácil
PYTHON PRIMEIRO ?PYTHON PRIMEIRO ?
● Computer Programming for Everybody:
– Projeto submetido à DARPA por van Rossum em 1999
● Premissas:
– Linguagem fácil e intuitiva tão poderosa quanto as
existentes
– open source, para que todos pudessem contribuir
– Sintaxe compreensível como Inglês padrão
– Adequada para tarefas cotidianas permitindo curto
período de desenvolvimento
APRENDENDO PYTHON !APRENDENDO PYTHON !
class HelloWorld {
public static void main(String[] args)
{
System.out.println("Hello, world!");
}
}
>>> print “Hello, world!”
● Simplicidade
APRENDENDO PYTHON !APRENDENDO PYTHON !
if ( a > b )
if ( b > c )
maior(a);
else
maior(b);
● Simplicidade
– Indentação
if ( a > b ) {
if ( b > c ) {
maior(a);
}
else {
maior(b);
}}
if ( a > b )
if ( b > c )
maior(a);
else
maior(b);
if ( a > b ) {
if ( b > c ) {
maior(a);
}
else {
maior(b);
}
}
if ( a > b ):
if ( b > c ):
maior(a)
else:
maior(b)
APRENDENDO PYTHON !APRENDENDO PYTHON !
● Simplicidade
● Manipulação de estruturas de dados
>>> lst = [1, "cao", 4, "a", "cha"]
>>> lst[0]
1
>>> lst[2:4]
[4, 'a']
>>> lst[2:]
[4, 'a', 'cha']
>>> lst[:4]
[1, 'cao', 4, 'a']
>>> lst[-1]
'dog'
>>> lst[:-2]
[1, 'cao', 4]
import java.util.Vector;
public class ListManipulation {
public static void main(String[] args) {
Vector lst = new Vector();
lst.add(new Integer(1));
lst.add("cao");
lst.add(new Integer(4));
lst.add("a");
lst.add("cha");
System.out.println(lst.get(0));
System.out.println(lst.subList(2, 4));
System.out.println(lst.subList(2, lst.size()));
System.out.println(lst.subList(0, 4));
System.out.println(lst.get(lst.size() - 1));
System.out.println(lst.subList(0, lst.size() - 2));
}
} // ListManipulation
APRENDENDO PYTHON !APRENDENDO PYTHON !
● Simplicidade
● Manipulação de estruturas de dados
● Dicionários
>>> dict = {1: "cao", "cha": "mate", 34: [1, 2, 3]}
>>> dict["cha"]
'mate'
import java.util.HashMap;
import java.util.Vector;
public class Dictionary {
public static void main(String[] args) {
HashMap dict = new HashMap();
dict.put(new Integer(1), "cao");
dict.put("cha", "mate");
Vector lst = new Vector();
lst.add(new Integer(1));
lst.add(new Integer(2));
lst.add(new Integer(3));
dict.put(new Integer(34), lst);
System.out.println("dict = " + dict);
}
} // Dictionary
APRENDENDO PYTHON !APRENDENDO PYTHON !
● Simplicidade
● Manipulação de estruturas de dados
● Dicionários
● Expressões, Fluxos, Loops
def fsort(a, b, c, d):
while not a < b < c < d:
if a > b:
a, b = b, a
elif b > c:
b, c = c, b
elif c > d:
c, d = d, c
return a, b, c, d
class Fsort {
private static int a, b, c, d;
public static void fSort() {
while (! (a < b && b < c && c < d)) {
if (a > b) {
int temp = a;
a = b;
b = temp;
} else if (b > c) {
int temp = b;
b = c;
c = temp;
} else if (c > d) {
int temp = c;
c = d;
d = temp;
} // if
} // while
}
public static void main (String[] args) {
a = 4;
b = 3;
c = 2;
d = 1;
fSort();
System.out.println("" + a + ", " + b + ", " + c + ", " + d);
} // main
}
APRENDENDO PYTHON !APRENDENDO PYTHON !
● Classes
– Entre outros...By LCCruz
APRENDENDO PYTHON !APRENDENDO PYTHON !
● Frameworks
By Marcos Petry
APRENDENDO PYTHON !APRENDENDO PYTHON !
● Artificial Intelligence: a Modern Approach
– https://code.google.com/p/aima-python/
EMPREENDENDO COM PYTHON !EMPREENDENDO COM PYTHON !
QUEM USA PYTHON ?QUEM USA PYTHON ?
PRODUTIVIDADE PYTHON !PRODUTIVIDADE PYTHON !
● Tempo para ser produtivo:
● Linguagem C : 2 anos
● Linguagem Java : 6 meses
● Linguagem Python : 1 mês
PRODUTIVIDADE PYTHON !PRODUTIVIDADE PYTHON !
● Tempo de desenvolvimento
Prechelt, L. An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl. IEEE Computer
PRODUTIVIDADE PYTHON !PRODUTIVIDADE PYTHON !
● O problema de programação: Código do telefone
– Converter números de telefone em cadeias de texto
usando um dicionário de 73.113 palavras realizando um
mapeamento de caracteres do tipo:
“e jnq rwx dsy pés am civ bku lop ghz”
“0 111 222 333 444 55 666 777 888 999”
PRODUTIVIDADE PYTHON !PRODUTIVIDADE PYTHON !
● Tempo para ser produtivo
Média de Horas para Resolver o Problema
Média de Linhas de Código Linhas de Código por hora
CASE PYTHON !CASE PYTHON !
● UCS 2002
– Delphi → Python (alternativas à PHP e JAVA)
– 2001 : X3ng para desenvolver o site da UCS (CMS
próprio da X3ng)
● Motivos UCS:
– curva de aprendizado menor que a do Java
– linguagem mais robusta que o php.
● Teste de produtividade:
– mesma aplicação utilizando as 3 linguagens
CASE PYTHON !CASE PYTHON !
● Métricas:
– facilidade de aprendizagem
– velocidade de desenvolvimento
● Resultados:
– para um programador ficar bom em java: 18-24 meses
estudando e desenvolvendo
– em python um programador ficava bom em 12 meses
– aplicação em python era feita em 1/3 do tempo
aproximadamente.
– estrutura da linguagem e a facilidade de aprendizado
QUEM USA PYTHON ?QUEM USA PYTHON ?
DEMANDA PYTHON !DEMANDA PYTHON !
● Job Trends 2013
http://www.indeed.com/jobtrends
CASE PYTHON !CASE PYTHON !
● Otics 2007
– Portal do Observatório Nacional de Saúde
– Python/Zope/Plone
– UCS-UFRGS-FIOCRUZ
CASE PYTHON !CASE PYTHON !
●
● Instituto Communitas para desenvolvimento
humano e Tecnológico
– Projetos: FIOCRUZ, Ministério da Saúde, UFRGS, Haiti
● HaDi.Com – Habitats Digitais para Comunidades
● Soluções tecnológicas para aprendizagem
colaborativa em comunidades de prática
● Produto de Comunidades baseado em
Python/Zope/Plone
● Equipe de 5 desenvolvedores+profissionais diversos
PARADOXO PYTHON !PARADOXO PYTHON !
● Se uma empresa escolhe escrever seu software
numa linguagem comparativamente esotérica, ela
vai ter a possibilidade de contratar programadores
melhores, pois ela vai atrair somente aqueles que
se interessaram/preocuparam o suficiente para
aprender anteriormente a linguagem.
● E no caso dos programadores o paradoxo é ainda
mais pronunciado: a linguagem a se aprender, se
você quer conseguir um emprego, é a linguagem
que as pessoas não aprendem somente para
conseguir um emprego.
Paul Graham
COM PYTHON !COM PYTHON !
EMPREEMPRE
APRAPRENDENDOENDENDO
TcheLinux Caxias do Sul
31/08/2013JOAOLUIS.TAVARES@gmail.com OBRIGADO !
No Sleep for you !No Sleep for you !

Mais conteúdo relacionado

PDF
Por que Python? IFC Concórdia 2011
PDF
Por que python? fisl 14 - 2013
PDF
Hello, Python!
PDF
Intro
PDF
O poder do Python/Django
PDF
Python para iniciantes
ODP
The zen of python 2010
PDF
Canivete suíço do Python
Por que Python? IFC Concórdia 2011
Por que python? fisl 14 - 2013
Hello, Python!
Intro
O poder do Python/Django
Python para iniciantes
The zen of python 2010
Canivete suíço do Python

Mais procurados (20)

PDF
Conhencendo Python e por que ela importa?
PDF
Por que Python? Latinoware 2011
PDF
Como tornar-se um programador Python melhor
PDF
Python, A pílula Azul da programação
PDF
Hackeando o Facebook com Python
PPTX
Palestra Apresentando Python e Suas Aplicações
PDF
Oficina Python: Hackeando a Web com Python 3
PDF
Canivete python
PDF
Apresentação Python Poli
PDF
Python Mini Ccurso Consegi2011
PDF
Porque Python? Semana Acadêmica UTFPR 2011
ODP
Python-Fenalivre-Imed
PDF
Desvendando o python
PDF
Porque python é legal! d
PDF
Construindo Comunidades Open-Source Bem Sucedidas: Experiências do PUG-PE
PPT
Por Que Python - #PUGCE
PDF
Python Zope Plone - Ftec
ODP
Linguagem Python
PDF
Porque foi bom aprender com Python
PDF
Introdução à Programação Python e Tk
Conhencendo Python e por que ela importa?
Por que Python? Latinoware 2011
Como tornar-se um programador Python melhor
Python, A pílula Azul da programação
Hackeando o Facebook com Python
Palestra Apresentando Python e Suas Aplicações
Oficina Python: Hackeando a Web com Python 3
Canivete python
Apresentação Python Poli
Python Mini Ccurso Consegi2011
Porque Python? Semana Acadêmica UTFPR 2011
Python-Fenalivre-Imed
Desvendando o python
Porque python é legal! d
Construindo Comunidades Open-Source Bem Sucedidas: Experiências do PUG-PE
Por Que Python - #PUGCE
Python Zope Plone - Ftec
Linguagem Python
Porque foi bom aprender com Python
Introdução à Programação Python e Tk
Anúncio

Semelhante a Empreendendo com Python (20)

PDF
Livro para desenvolvedores de Python
PDF
Curso python
PDF
Elementos Fundamentais de Linguagens de Programação e a Linguagem Python
PDF
Trabalho sobre a linguagem Python
PDF
Programando para web com python - Introdução a Python
PDF
Cherrypy - um framework para desenvolvimento rápido de aplicações web
PDF
Por que Python? Vamos Conhecer? Vamos Aprender?
KEY
Python 01
PDF
Apresentação python fábio jr alves
PDF
Curso de Python (Básico) - Português
PDF
Linguagem de Programação Python
PDF
Python Introdução e Orientação a Objetos.pdf
PDF
Minicurso Python
PDF
ODP
Python: programação divertida novamente
PDF
Iniciando em Python
PPTX
Extreme Experience 2018 | Python para quem sabe Delphi
ODP
Python para desenvolvedores - material apoio (parte I)
PDF
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
PDF
Aprenda a programar python
Livro para desenvolvedores de Python
Curso python
Elementos Fundamentais de Linguagens de Programação e a Linguagem Python
Trabalho sobre a linguagem Python
Programando para web com python - Introdução a Python
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Por que Python? Vamos Conhecer? Vamos Aprender?
Python 01
Apresentação python fábio jr alves
Curso de Python (Básico) - Português
Linguagem de Programação Python
Python Introdução e Orientação a Objetos.pdf
Minicurso Python
Python: programação divertida novamente
Iniciando em Python
Extreme Experience 2018 | Python para quem sabe Delphi
Python para desenvolvedores - material apoio (parte I)
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Aprenda a programar python
Anúncio

Último (19)

PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Aula 18 - Manipulacao De Arquivos python
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Apple Pippin Uma breve introdução. - David Glotz
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Aula04-Academia Heri- Tecnologia Geral 2025
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Custos e liquidação no SAP Transportation Management, TM130 Col18
Processos na gestão de transportes, TM100 Col18
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
COBITxITIL-Entenda as diferença em uso governança TI
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx

Empreendendo com Python

  • 1. COM PYTHON !COM PYTHON ! EMPREEMPRE APRAPRENDENDOENDENDO TcheLinux Caxias do Sul 31/08/2013 JOAOLUIS.TAVARES@gmail.com
  • 2. SOBRE !SOBRE ! ● João Luís Tavares da Silva....joaoluis.tavares@gmail.com – Tecnólogo em PD (UNISINOS) – Mestre em IA (PUCRS) – Doutor em Informática (UJF-França) – Pós-Doutor em IE (UFRGS) – Professor Licenciado UCS (Ciência da Computação) – Diretor Instituto Communitas – Diretor HaDi.Com
  • 3. PYTHON É LEGAL !PYTHON É LEGAL !
  • 4. PYTHON !PYTHON ! ● Guido Van Rossum (1991) ● Linguagem de alto nível ● Sintaxe simples e clara, poucas keywords ● Orientada à objetos, estruturada e funcional ● Linguagem dinâmica com tipagem dinâmica ● Multiplataforma, interpretada ● Portabilidade ● Extensível
  • 5. PORQUE PYTHON ?PORQUE PYTHON ? ● Qualidade de Software – código legível, reutilizável e de fácil manutenção ● Produtividade – 1/3 ou 1/5 do tamanho do código em C/C++ ou Java. Execução em tempo real; ● Portabilidade – interface gráfica com usuário, acesso a banco de dados, sistemas baseados na web, sistemas para dispositivos móveis, todos portáveis;
  • 6. PORQUE PYTHON ?PORQUE PYTHON ? ● Bibliotecas – Batteries included; – http://docs.python.org/2/library/ ● Integração – invoca bibliotecas e código C e C++, Java. SOAP, XML- RPC, e CORBA; ● Aproveitamento – facilidades e auto-ferramentas
  • 7. COMUNIDADE PYTHON ?COMUNIDADE PYTHON ? – http://python.org/psf/ – http://www.python.org – http://www.python.org.br – http://associacao.python.org.br/ – http://2013.pythonbrasil.org.br/pythonbrasil
  • 8. TEM OUTROS MOTIVOS ?TEM OUTROS MOTIVOS ?
  • 9. POPULARIDADE PYTHON !POPULARIDADE PYTHON ! ● Linux Journal Reader's Choice Awards 2012 http://redmonk.com/sogrady/2011/09/06/dataists-anguage-rankings/
  • 10. POPULARIDADE PYTHON !POPULARIDADE PYTHON ! ● Linux Journal Reader's Choice Awards 2012 http://www.linuxjournal.com/slideshow/readers-choice-2012
  • 11. POPULARIDADE PYTHON !POPULARIDADE PYTHON ! ● Programming Language Popularity LangPop.com
  • 12. POPULARIDADE PYTHON !POPULARIDADE PYTHON ! ● TIOBE Programming Community Index 2013 http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
  • 13. QUEM USA PYTHON ?QUEM USA PYTHON ?
  • 15. PYTHON PRIMEIRO ?PYTHON PRIMEIRO ? ● JAVA e C são mais simples depois de Python ● Python → Foco na lógica básica de programação ● Depois da lógica qualquer linguagem é mais fácil
  • 16. PYTHON PRIMEIRO ?PYTHON PRIMEIRO ? ● Computer Programming for Everybody: – Projeto submetido à DARPA por van Rossum em 1999 ● Premissas: – Linguagem fácil e intuitiva tão poderosa quanto as existentes – open source, para que todos pudessem contribuir – Sintaxe compreensível como Inglês padrão – Adequada para tarefas cotidianas permitindo curto período de desenvolvimento
  • 17. APRENDENDO PYTHON !APRENDENDO PYTHON ! class HelloWorld { public static void main(String[] args) { System.out.println("Hello, world!"); } } >>> print “Hello, world!” ● Simplicidade
  • 18. APRENDENDO PYTHON !APRENDENDO PYTHON ! if ( a > b ) if ( b > c ) maior(a); else maior(b); ● Simplicidade – Indentação if ( a > b ) { if ( b > c ) { maior(a); } else { maior(b); }} if ( a > b ) if ( b > c ) maior(a); else maior(b); if ( a > b ) { if ( b > c ) { maior(a); } else { maior(b); } } if ( a > b ): if ( b > c ): maior(a) else: maior(b)
  • 19. APRENDENDO PYTHON !APRENDENDO PYTHON ! ● Simplicidade ● Manipulação de estruturas de dados >>> lst = [1, "cao", 4, "a", "cha"] >>> lst[0] 1 >>> lst[2:4] [4, 'a'] >>> lst[2:] [4, 'a', 'cha'] >>> lst[:4] [1, 'cao', 4, 'a'] >>> lst[-1] 'dog' >>> lst[:-2] [1, 'cao', 4] import java.util.Vector; public class ListManipulation { public static void main(String[] args) { Vector lst = new Vector(); lst.add(new Integer(1)); lst.add("cao"); lst.add(new Integer(4)); lst.add("a"); lst.add("cha"); System.out.println(lst.get(0)); System.out.println(lst.subList(2, 4)); System.out.println(lst.subList(2, lst.size())); System.out.println(lst.subList(0, 4)); System.out.println(lst.get(lst.size() - 1)); System.out.println(lst.subList(0, lst.size() - 2)); } } // ListManipulation
  • 20. APRENDENDO PYTHON !APRENDENDO PYTHON ! ● Simplicidade ● Manipulação de estruturas de dados ● Dicionários >>> dict = {1: "cao", "cha": "mate", 34: [1, 2, 3]} >>> dict["cha"] 'mate' import java.util.HashMap; import java.util.Vector; public class Dictionary { public static void main(String[] args) { HashMap dict = new HashMap(); dict.put(new Integer(1), "cao"); dict.put("cha", "mate"); Vector lst = new Vector(); lst.add(new Integer(1)); lst.add(new Integer(2)); lst.add(new Integer(3)); dict.put(new Integer(34), lst); System.out.println("dict = " + dict); } } // Dictionary
  • 21. APRENDENDO PYTHON !APRENDENDO PYTHON ! ● Simplicidade ● Manipulação de estruturas de dados ● Dicionários ● Expressões, Fluxos, Loops def fsort(a, b, c, d): while not a < b < c < d: if a > b: a, b = b, a elif b > c: b, c = c, b elif c > d: c, d = d, c return a, b, c, d class Fsort { private static int a, b, c, d; public static void fSort() { while (! (a < b && b < c && c < d)) { if (a > b) { int temp = a; a = b; b = temp; } else if (b > c) { int temp = b; b = c; c = temp; } else if (c > d) { int temp = c; c = d; d = temp; } // if } // while } public static void main (String[] args) { a = 4; b = 3; c = 2; d = 1; fSort(); System.out.println("" + a + ", " + b + ", " + c + ", " + d); } // main }
  • 22. APRENDENDO PYTHON !APRENDENDO PYTHON ! ● Classes – Entre outros...By LCCruz
  • 23. APRENDENDO PYTHON !APRENDENDO PYTHON ! ● Frameworks By Marcos Petry
  • 24. APRENDENDO PYTHON !APRENDENDO PYTHON ! ● Artificial Intelligence: a Modern Approach – https://code.google.com/p/aima-python/
  • 25. EMPREENDENDO COM PYTHON !EMPREENDENDO COM PYTHON !
  • 26. QUEM USA PYTHON ?QUEM USA PYTHON ?
  • 27. PRODUTIVIDADE PYTHON !PRODUTIVIDADE PYTHON ! ● Tempo para ser produtivo: ● Linguagem C : 2 anos ● Linguagem Java : 6 meses ● Linguagem Python : 1 mês
  • 28. PRODUTIVIDADE PYTHON !PRODUTIVIDADE PYTHON ! ● Tempo de desenvolvimento Prechelt, L. An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl. IEEE Computer
  • 29. PRODUTIVIDADE PYTHON !PRODUTIVIDADE PYTHON ! ● O problema de programação: Código do telefone – Converter números de telefone em cadeias de texto usando um dicionário de 73.113 palavras realizando um mapeamento de caracteres do tipo: “e jnq rwx dsy pés am civ bku lop ghz” “0 111 222 333 444 55 666 777 888 999”
  • 30. PRODUTIVIDADE PYTHON !PRODUTIVIDADE PYTHON ! ● Tempo para ser produtivo Média de Horas para Resolver o Problema Média de Linhas de Código Linhas de Código por hora
  • 31. CASE PYTHON !CASE PYTHON ! ● UCS 2002 – Delphi → Python (alternativas à PHP e JAVA) – 2001 : X3ng para desenvolver o site da UCS (CMS próprio da X3ng) ● Motivos UCS: – curva de aprendizado menor que a do Java – linguagem mais robusta que o php. ● Teste de produtividade: – mesma aplicação utilizando as 3 linguagens
  • 32. CASE PYTHON !CASE PYTHON ! ● Métricas: – facilidade de aprendizagem – velocidade de desenvolvimento ● Resultados: – para um programador ficar bom em java: 18-24 meses estudando e desenvolvendo – em python um programador ficava bom em 12 meses – aplicação em python era feita em 1/3 do tempo aproximadamente. – estrutura da linguagem e a facilidade de aprendizado
  • 33. QUEM USA PYTHON ?QUEM USA PYTHON ?
  • 34. DEMANDA PYTHON !DEMANDA PYTHON ! ● Job Trends 2013 http://www.indeed.com/jobtrends
  • 35. CASE PYTHON !CASE PYTHON ! ● Otics 2007 – Portal do Observatório Nacional de Saúde – Python/Zope/Plone – UCS-UFRGS-FIOCRUZ
  • 36. CASE PYTHON !CASE PYTHON ! ● ● Instituto Communitas para desenvolvimento humano e Tecnológico – Projetos: FIOCRUZ, Ministério da Saúde, UFRGS, Haiti ● HaDi.Com – Habitats Digitais para Comunidades ● Soluções tecnológicas para aprendizagem colaborativa em comunidades de prática ● Produto de Comunidades baseado em Python/Zope/Plone ● Equipe de 5 desenvolvedores+profissionais diversos
  • 37. PARADOXO PYTHON !PARADOXO PYTHON ! ● Se uma empresa escolhe escrever seu software numa linguagem comparativamente esotérica, ela vai ter a possibilidade de contratar programadores melhores, pois ela vai atrair somente aqueles que se interessaram/preocuparam o suficiente para aprender anteriormente a linguagem. ● E no caso dos programadores o paradoxo é ainda mais pronunciado: a linguagem a se aprender, se você quer conseguir um emprego, é a linguagem que as pessoas não aprendem somente para conseguir um emprego. Paul Graham
  • 38. COM PYTHON !COM PYTHON ! EMPREEMPRE APRAPRENDENDOENDENDO TcheLinux Caxias do Sul 31/08/2013JOAOLUIS.TAVARES@gmail.com OBRIGADO ! No Sleep for you !No Sleep for you !