SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Downloaden Sie, um offline zu lesen
Python[NOW]
Fenalivre - IMED - Passo Fundo
Maio, 2014
Luciano Camargo Cruz
Dr. João Luís Tavares da Silva
SOBRE !SOBRE !● Luciano Camargo Cruz
– Diretor HaDiCom - Habitats Digitais para Comunidades
– Estudante de Ciência da Computação pela UCS - Universidade de Caxias
do Sul
– HaDiCom e no Instituto Communitas:
● Desenvolvedor de software
● Gerente de projetos
● Administrador de portais Python/Zope/Plone
● Configurações de servidores
– Organizador voluntário TcheLinux Caxias do Sul 2013.
– Membro da Associação Python Brasil (APyB) e Plone Foundation.
– Motoqueiro, Pescador...
luciano@hadi.com.br - @__lccruz__
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 HaDiCom
Comunidades !Comunidades !
TcheLinux
Comunidade - Python
● Associação Python Brasil
– http://associacao.python.org.br/
– [APyB] apyb-associados@googlegroups.com
– @apyb
● PythonBrasil
– Conferência anual de programadores Python.
– http://www.pythonbrasil.org.br/
Comunidades !Comunidades !
Comunidade - Python
● Plone
– http://plone.org/
– [Plone-Users] - plone-users@lists.sourceforge.net
– IRC Chat
● #plone - (freenode)
● TchêLinux
– http://tchelinux.org/
– [TcheLinux] tchelinux.googlegroups.com
– IRC Chat – freenode -
● #tchelinux - (freenode)
Comunidades !Comunidades !
PYTHON É LEGAL !PYTHON É LEGAL !
PYTHONPYTHON
● Iniciou em 1990.
● Guido van Rossum
– Holandês.
– Matemático e Cientista da Computação.
– Criar um linguagem de nível elevado.
– Sintaxe simples e de fácil compreensão.
● Python Software Foundation
http://www.python.org
● Licença Open Source compatível com GPL
(General Public License)
PYTHONPYTHON
● Python é legal.
● Orientação a Objetos (tudo é objeto).
● Multiplataforma.
● Vasta Biblioteca embutida
https://docs.python.org/2/library/index.html
● Tipagem dinâmica.
● Open Source.
● Interpretador Interativo.
● De fácil aprendizado.
● De fácil uso.
● Linguagem Interpretada.
PYTHONPYTHON
● Documentação
http://docs.python.org/
● Qualidade
● Produtividade
● Integração
● Guia de Style
http://www.python.org/dev/peps/pep-0008/
● Comunidade
PYTHONPYTHON
“O importante é usar Python”
Dorneles Treméa
PYTHONPYTHON
Camargo e Tavares
“Com Python, você só se preocupa com o problema”
Luciano Camargo Cruz
TEM OUTROS MOTIVOS ?TEM OUTROS MOTIVOS ?
POPULARIDADE PYTHON !POPULARIDADE PYTHON !
● The RedMonk Programming Language Rankings
http://redmonk.com/sogrady/2014/01/22/language-rankings-1-14/
POPULARIDADE PYTHON !POPULARIDADE PYTHON !
● Ohloh Programming Language Comparison 2014
https://www.ohloh.net/languages/compare
POPULARIDADE PYTHON !POPULARIDADE PYTHON !
● Linux Journal Reader's Choice Awards 2013
http://www.linuxjournal.com/rc2013?page=42
POPULARIDADE PYTHON !POPULARIDADE PYTHON !
● Programming Language Popularity
LangPop.com 2011LangPop.com Last data update: Fri Oct 25 17:17:19 -0400 2013
POPULARIDADE PYTHON !POPULARIDADE PYTHON !
● TIOBE Programming Community Index 2014
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 !
● 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 22 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.
PARADOXO PYTHON !PARADOXO PYTHON !
● 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
Equipe no FISL15Equipe no FISL15
Molon | Pereira | João | Camargo | Davi
Python[NOW]
Fenalivre - Passo Fundo
Maio, 2014
luciano@hadi.com.br
joaoluis.tavares@hadi.com.br
Obrigado!

Más contenido relacionado

Was ist angesagt?

Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantesrichardsonlima
 
Por que Python? Latinoware 2011
Por que Python? Latinoware 2011Por que Python? Latinoware 2011
Por que Python? Latinoware 2011Marco Mendes
 
Porque Python - PythonBrasil[6]
Porque Python - PythonBrasil[6]Porque Python - PythonBrasil[6]
Porque Python - PythonBrasil[6]Marco Mendes
 
A Qualidade do Ecossistema Python - e o que podemos fazer para mante-la
A Qualidade do Ecossistema Python - e o que podemos fazer para mante-laA Qualidade do Ecossistema Python - e o que podemos fazer para mante-la
A Qualidade do Ecossistema Python - e o que podemos fazer para mante-laBruno Rocha
 
Porque Python? Semana Acadêmica UTFPR 2011
Porque Python? Semana Acadêmica UTFPR 2011Porque Python? Semana Acadêmica UTFPR 2011
Porque Python? Semana Acadêmica UTFPR 2011Marco Mendes
 
O Prazer De Trabalhar Com Python
O Prazer De Trabalhar Com PythonO Prazer De Trabalhar Com Python
O Prazer De Trabalhar Com PythonMarinho Brandão
 
Extraindo dados públicos na marra com Python
Extraindo dados públicos na marra com PythonExtraindo dados públicos na marra com Python
Extraindo dados públicos na marra com PythonPedro Valente
 
Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3Marcel Caraciolo
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010Luiz Aldabalde
 
Python, por onde começar - Semana Technológica UTFPR 2015.
Python, por onde começar - Semana Technológica UTFPR 2015.Python, por onde começar - Semana Technológica UTFPR 2015.
Python, por onde começar - Semana Technológica UTFPR 2015.Ramiro Luz
 
Intro
IntroIntro
Intropugpe
 
Python, por onde começar? @FTSL2014
Python, por onde começar? @FTSL2014Python, por onde começar? @FTSL2014
Python, por onde começar? @FTSL2014Ramiro Luz
 
Workshop de introdução ao python - TADS 2015
Workshop de introdução ao python - TADS 2015Workshop de introdução ao python - TADS 2015
Workshop de introdução ao python - TADS 2015Ramiro Luz
 
O poder do Python/Django
O poder do Python/DjangoO poder do Python/Django
O poder do Python/DjangoÁtila Bezerra
 

Was ist angesagt? (20)

Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantes
 
Python Poli 2010
Python Poli 2010Python Poli 2010
Python Poli 2010
 
Por que Python? Latinoware 2011
Por que Python? Latinoware 2011Por que Python? Latinoware 2011
Por que Python? Latinoware 2011
 
Porque Python - PythonBrasil[6]
Porque Python - PythonBrasil[6]Porque Python - PythonBrasil[6]
Porque Python - PythonBrasil[6]
 
A Qualidade do Ecossistema Python - e o que podemos fazer para mante-la
A Qualidade do Ecossistema Python - e o que podemos fazer para mante-laA Qualidade do Ecossistema Python - e o que podemos fazer para mante-la
A Qualidade do Ecossistema Python - e o que podemos fazer para mante-la
 
Porque Python? Semana Acadêmica UTFPR 2011
Porque Python? Semana Acadêmica UTFPR 2011Porque Python? Semana Acadêmica UTFPR 2011
Porque Python? Semana Acadêmica UTFPR 2011
 
O Prazer De Trabalhar Com Python
O Prazer De Trabalhar Com PythonO Prazer De Trabalhar Com Python
O Prazer De Trabalhar Com Python
 
Extraindo dados públicos na marra com Python
Extraindo dados públicos na marra com PythonExtraindo dados públicos na marra com Python
Extraindo dados públicos na marra com Python
 
Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010
 
Hackeando o Facebook com Python
Hackeando o Facebook com PythonHackeando o Facebook com Python
Hackeando o Facebook com Python
 
Palestra BrOffice.org
Palestra BrOffice.orgPalestra BrOffice.org
Palestra BrOffice.org
 
Empreendendo com Python
Empreendendo com PythonEmpreendendo com Python
Empreendendo com Python
 
Python, por onde começar - Semana Technológica UTFPR 2015.
Python, por onde começar - Semana Technológica UTFPR 2015.Python, por onde começar - Semana Technológica UTFPR 2015.
Python, por onde começar - Semana Technológica UTFPR 2015.
 
PyDojo
PyDojoPyDojo
PyDojo
 
Hackeando Dados públicos com python
Hackeando Dados públicos com pythonHackeando Dados públicos com python
Hackeando Dados públicos com python
 
Intro
IntroIntro
Intro
 
Python, por onde começar? @FTSL2014
Python, por onde começar? @FTSL2014Python, por onde começar? @FTSL2014
Python, por onde começar? @FTSL2014
 
Workshop de introdução ao python - TADS 2015
Workshop de introdução ao python - TADS 2015Workshop de introdução ao python - TADS 2015
Workshop de introdução ao python - TADS 2015
 
O poder do Python/Django
O poder do Python/DjangoO poder do Python/Django
O poder do Python/Django
 

Andere mochten auch

Utilização do Plone para desenvolvimento de portais corporativos e intranet
Utilização do Plone para desenvolvimento de portais corporativos e intranetUtilização do Plone para desenvolvimento de portais corporativos e intranet
Utilização do Plone para desenvolvimento de portais corporativos e intranetJacson Tiola
 
Social Learning in Brazilian Government with Plone: a Communities of Practice...
Social Learning in Brazilian Government with Plone: a Communities of Practice...Social Learning in Brazilian Government with Plone: a Communities of Practice...
Social Learning in Brazilian Government with Plone: a Communities of Practice...Luciano Camargo Cruz
 
10 Tips for WeChat
10 Tips for WeChat10 Tips for WeChat
10 Tips for WeChatChris Baker
 
Plone: O CMS da moda? - Consegi 2013
Plone: O CMS da moda? - Consegi 2013Plone: O CMS da moda? - Consegi 2013
Plone: O CMS da moda? - Consegi 2013Tania Andrea
 
Formulários para Plone: um passeio pelo framework z3c.form
Formulários para Plone: um passeio pelo framework z3c.formFormulários para Plone: um passeio pelo framework z3c.form
Formulários para Plone: um passeio pelo framework z3c.formRuda Filgueiras
 
Plone total#2 - Gerenciamento de conteúdos
Plone total#2 - Gerenciamento de conteúdosPlone total#2 - Gerenciamento de conteúdos
Plone total#2 - Gerenciamento de conteúdosLucas Aquino
 
Portais Corporativos e Gestao de Conteudo
Portais Corporativos e Gestao de ConteudoPortais Corporativos e Gestao de Conteudo
Portais Corporativos e Gestao de ConteudoRicardo Martins Neves
 
Canal B2B - Comércio Eletrônico Corporativo
Canal B2B - Comércio Eletrônico CorporativoCanal B2B - Comércio Eletrônico Corporativo
Canal B2B - Comércio Eletrônico CorporativoAlexandre Callegares
 

Andere mochten auch (10)

Utilização do Plone para desenvolvimento de portais corporativos e intranet
Utilização do Plone para desenvolvimento de portais corporativos e intranetUtilização do Plone para desenvolvimento de portais corporativos e intranet
Utilização do Plone para desenvolvimento de portais corporativos e intranet
 
Social Learning in Brazilian Government with Plone: a Communities of Practice...
Social Learning in Brazilian Government with Plone: a Communities of Practice...Social Learning in Brazilian Government with Plone: a Communities of Practice...
Social Learning in Brazilian Government with Plone: a Communities of Practice...
 
10 Tips for WeChat
10 Tips for WeChat10 Tips for WeChat
10 Tips for WeChat
 
Plone: O CMS da moda? - Consegi 2013
Plone: O CMS da moda? - Consegi 2013Plone: O CMS da moda? - Consegi 2013
Plone: O CMS da moda? - Consegi 2013
 
Formulários para Plone: um passeio pelo framework z3c.form
Formulários para Plone: um passeio pelo framework z3c.formFormulários para Plone: um passeio pelo framework z3c.form
Formulários para Plone: um passeio pelo framework z3c.form
 
Plone total#2 - Gerenciamento de conteúdos
Plone total#2 - Gerenciamento de conteúdosPlone total#2 - Gerenciamento de conteúdos
Plone total#2 - Gerenciamento de conteúdos
 
Dicas de Plone
Dicas de PloneDicas de Plone
Dicas de Plone
 
Portais Corporativos e Gestao de Conteudo
Portais Corporativos e Gestao de ConteudoPortais Corporativos e Gestao de Conteudo
Portais Corporativos e Gestao de Conteudo
 
Criando Temas com Diazo
Criando Temas com DiazoCriando Temas com Diazo
Criando Temas com Diazo
 
Canal B2B - Comércio Eletrônico Corporativo
Canal B2B - Comércio Eletrônico CorporativoCanal B2B - Comércio Eletrônico Corporativo
Canal B2B - Comércio Eletrônico Corporativo
 

Ähnlich wie Python-Fenalivre-Imed

Pythonificando a Universidade
Pythonificando a UniversidadePythonificando a Universidade
Pythonificando a UniversidadeMatheus Pereira
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.comricobl
 
Projeto TCOS - III ENSOL
Projeto TCOS - III ENSOLProjeto TCOS - III ENSOL
Projeto TCOS - III ENSOLAécio Pires
 
Programação Concorrente - Curso Completo
Programação Concorrente - Curso CompletoProgramação Concorrente - Curso Completo
Programação Concorrente - Curso Completothomasdacosta
 
Uma experiência acadêmica com Python
Uma experiência acadêmica com PythonUma experiência acadêmica com Python
Uma experiência acadêmica com PythonHenrique Bastos
 
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.Rodrigo Senra
 
Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?Marcel Caraciolo
 
Portal Padrão - passado . presente . futuro, #WPD 2014
Portal Padrão - passado . presente . futuro, #WPD 2014Portal Padrão - passado . presente . futuro, #WPD 2014
Portal Padrão - passado . presente . futuro, #WPD 2014Tania Andrea
 
Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Marcel Caraciolo
 
Pentaho: Inteligência de Negócios utilizando Software Livre - FliSOL São Paul...
Pentaho: Inteligência de Negócios utilizando Software Livre - FliSOL São Paul...Pentaho: Inteligência de Negócios utilizando Software Livre - FliSOL São Paul...
Pentaho: Inteligência de Negócios utilizando Software Livre - FliSOL São Paul...Caio Moreno
 
Pentaho: Inteligência de Negócios utilizando Software Livre - FliSOL São Paul...
Pentaho: Inteligência de Negócios utilizando Software Livre - FliSOL São Paul...Pentaho: Inteligência de Negócios utilizando Software Livre - FliSOL São Paul...
Pentaho: Inteligência de Negócios utilizando Software Livre - FliSOL São Paul...IT4biz IT Solutions
 
Python: A Arma Secreta do Cientista de Dados
Python: A Arma Secreta do Cientista de DadosPython: A Arma Secreta do Cientista de Dados
Python: A Arma Secreta do Cientista de DadosRodrigo Senra
 
Pensando PPM "fora da caixa" do desktop a nuvem - Boas praticas, dicas e apli...
Pensando PPM "fora da caixa" do desktop a nuvem - Boas praticas, dicas e apli...Pensando PPM "fora da caixa" do desktop a nuvem - Boas praticas, dicas e apli...
Pensando PPM "fora da caixa" do desktop a nuvem - Boas praticas, dicas e apli...Eduardo Freire
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Luiz Aldabalde
 

Ähnlich wie Python-Fenalivre-Imed (20)

Hello, Python!
Hello, Python!Hello, Python!
Hello, Python!
 
Cp2011 python agil-ramiroluz
Cp2011 python agil-ramiroluzCp2011 python agil-ramiroluz
Cp2011 python agil-ramiroluz
 
Canivete python
Canivete pythonCanivete python
Canivete python
 
Linguagem Python
Linguagem PythonLinguagem Python
Linguagem Python
 
Pythonificando a Universidade
Pythonificando a UniversidadePythonificando a Universidade
Pythonificando a Universidade
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.com
 
Projeto TCOS - III ENSOL
Projeto TCOS - III ENSOLProjeto TCOS - III ENSOL
Projeto TCOS - III ENSOL
 
Programação Concorrente - Curso Completo
Programação Concorrente - Curso CompletoProgramação Concorrente - Curso Completo
Programação Concorrente - Curso Completo
 
Uma experiência acadêmica com Python
Uma experiência acadêmica com PythonUma experiência acadêmica com Python
Uma experiência acadêmica com Python
 
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.
 
Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?
 
Portal Padrão - passado . presente . futuro, #WPD 2014
Portal Padrão - passado . presente . futuro, #WPD 2014Portal Padrão - passado . presente . futuro, #WPD 2014
Portal Padrão - passado . presente . futuro, #WPD 2014
 
Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?
 
Pentaho: Inteligência de Negócios utilizando Software Livre - FliSOL São Paul...
Pentaho: Inteligência de Negócios utilizando Software Livre - FliSOL São Paul...Pentaho: Inteligência de Negócios utilizando Software Livre - FliSOL São Paul...
Pentaho: Inteligência de Negócios utilizando Software Livre - FliSOL São Paul...
 
Pentaho: Inteligência de Negócios utilizando Software Livre - FliSOL São Paul...
Pentaho: Inteligência de Negócios utilizando Software Livre - FliSOL São Paul...Pentaho: Inteligência de Negócios utilizando Software Livre - FliSOL São Paul...
Pentaho: Inteligência de Negócios utilizando Software Livre - FliSOL São Paul...
 
PyFuncemeClimateTools
PyFuncemeClimateToolsPyFuncemeClimateTools
PyFuncemeClimateTools
 
Mergulhando no ecossistema .NET
Mergulhando no ecossistema .NETMergulhando no ecossistema .NET
Mergulhando no ecossistema .NET
 
Python: A Arma Secreta do Cientista de Dados
Python: A Arma Secreta do Cientista de DadosPython: A Arma Secreta do Cientista de Dados
Python: A Arma Secreta do Cientista de Dados
 
Pensando PPM "fora da caixa" do desktop a nuvem - Boas praticas, dicas e apli...
Pensando PPM "fora da caixa" do desktop a nuvem - Boas praticas, dicas e apli...Pensando PPM "fora da caixa" do desktop a nuvem - Boas praticas, dicas e apli...
Pensando PPM "fora da caixa" do desktop a nuvem - Boas praticas, dicas e apli...
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011
 

Python-Fenalivre-Imed

  • 1. Python[NOW] Fenalivre - IMED - Passo Fundo Maio, 2014 Luciano Camargo Cruz Dr. João Luís Tavares da Silva
  • 2. SOBRE !SOBRE !● Luciano Camargo Cruz – Diretor HaDiCom - Habitats Digitais para Comunidades – Estudante de Ciência da Computação pela UCS - Universidade de Caxias do Sul – HaDiCom e no Instituto Communitas: ● Desenvolvedor de software ● Gerente de projetos ● Administrador de portais Python/Zope/Plone ● Configurações de servidores – Organizador voluntário TcheLinux Caxias do Sul 2013. – Membro da Associação Python Brasil (APyB) e Plone Foundation. – Motoqueiro, Pescador... luciano@hadi.com.br - @__lccruz__
  • 3. 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 HaDiCom
  • 5. Comunidade - Python ● Associação Python Brasil – http://associacao.python.org.br/ – [APyB] apyb-associados@googlegroups.com – @apyb ● PythonBrasil – Conferência anual de programadores Python. – http://www.pythonbrasil.org.br/ Comunidades !Comunidades !
  • 6. Comunidade - Python ● Plone – http://plone.org/ – [Plone-Users] - plone-users@lists.sourceforge.net – IRC Chat ● #plone - (freenode) ● TchêLinux – http://tchelinux.org/ – [TcheLinux] tchelinux.googlegroups.com – IRC Chat – freenode - ● #tchelinux - (freenode) Comunidades !Comunidades !
  • 7. PYTHON É LEGAL !PYTHON É LEGAL !
  • 8. PYTHONPYTHON ● Iniciou em 1990. ● Guido van Rossum – Holandês. – Matemático e Cientista da Computação. – Criar um linguagem de nível elevado. – Sintaxe simples e de fácil compreensão. ● Python Software Foundation http://www.python.org ● Licença Open Source compatível com GPL (General Public License)
  • 9. PYTHONPYTHON ● Python é legal. ● Orientação a Objetos (tudo é objeto). ● Multiplataforma. ● Vasta Biblioteca embutida https://docs.python.org/2/library/index.html ● Tipagem dinâmica. ● Open Source. ● Interpretador Interativo. ● De fácil aprendizado. ● De fácil uso. ● Linguagem Interpretada.
  • 10. PYTHONPYTHON ● Documentação http://docs.python.org/ ● Qualidade ● Produtividade ● Integração ● Guia de Style http://www.python.org/dev/peps/pep-0008/ ● Comunidade
  • 11. PYTHONPYTHON “O importante é usar Python” Dorneles Treméa
  • 12. PYTHONPYTHON Camargo e Tavares “Com Python, você só se preocupa com o problema” Luciano Camargo Cruz
  • 13. TEM OUTROS MOTIVOS ?TEM OUTROS MOTIVOS ?
  • 14. POPULARIDADE PYTHON !POPULARIDADE PYTHON ! ● The RedMonk Programming Language Rankings http://redmonk.com/sogrady/2014/01/22/language-rankings-1-14/
  • 15. POPULARIDADE PYTHON !POPULARIDADE PYTHON ! ● Ohloh Programming Language Comparison 2014 https://www.ohloh.net/languages/compare
  • 16. POPULARIDADE PYTHON !POPULARIDADE PYTHON ! ● Linux Journal Reader's Choice Awards 2013 http://www.linuxjournal.com/rc2013?page=42
  • 17. POPULARIDADE PYTHON !POPULARIDADE PYTHON ! ● Programming Language Popularity LangPop.com 2011LangPop.com Last data update: Fri Oct 25 17:17:19 -0400 2013
  • 18. POPULARIDADE PYTHON !POPULARIDADE PYTHON ! ● TIOBE Programming Community Index 2014 http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
  • 19. QUEM USA PYTHON ?QUEM USA PYTHON ?
  • 21. 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
  • 22. 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
  • 23. APRENDENDO PYTHON !APRENDENDO PYTHON ! class HelloWorld { public static void main(String[] args) { System.out.println("Hello, world!"); } } >>> print “Hello, world!” ● Simplicidade
  • 24. 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)
  • 25. 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
  • 26. 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
  • 27. 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 }
  • 28. APRENDENDO PYTHON !APRENDENDO PYTHON ! ● Classes – Entre outros...By LCCruz
  • 29. APRENDENDO PYTHON !APRENDENDO PYTHON ! ● Artificial Intelligence: a Modern Approach – https://code.google.com/p/aima-python/
  • 30. EMPREENDENDO COM PYTHON !EMPREENDENDO COM PYTHON !
  • 31. QUEM USA PYTHON ?QUEM USA PYTHON ?
  • 32. PRODUTIVIDADE PYTHON !PRODUTIVIDADE PYTHON ! ● Tempo para ser produtivo: ● Linguagem C : 2 anos ● Linguagem Java : 6 meses ● Linguagem Python : 1 mês
  • 33. PRODUTIVIDADE PYTHON !PRODUTIVIDADE PYTHON ! ● Tempo de desenvolvimento Prechelt, L. An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl. IEEE Computer
  • 34. 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”
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. QUEM USA PYTHON ?QUEM USA PYTHON ?
  • 39. DEMANDA PYTHON !DEMANDA PYTHON ! ● Job Trends 2013 http://www.indeed.com/jobtrends
  • 40. CASE PYTHON !CASE PYTHON ! ● Otics 2007 – Portal do Observatório Nacional de Saúde – Python/Zope/Plone – UCS-UFRGS-FIOCRUZ
  • 41. 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 22 desenvolvedores+profissionais diversos
  • 42. 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.
  • 43. PARADOXO PYTHON !PARADOXO PYTHON ! ● 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
  • 44. Equipe no FISL15Equipe no FISL15 Molon | Pereira | João | Camargo | Davi
  • 45. Python[NOW] Fenalivre - Passo Fundo Maio, 2014 luciano@hadi.com.br joaoluis.tavares@hadi.com.br Obrigado!