SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Integrando
+
Luiz Cláudio Silva
luizclaudio@linguagil.com.br
@luizclaudios
luizclaudiosilva
Criada, em 1991, por
Guido Von Rossum
Homenagem ao
Monty Python
Sintaxe simples e fácil de ser de assimilada
Multiparadigma (OO, estruturada e funcional)
Tipagem dinâmica e forte
Multiplataforma
Interpretada (bytecodes)
Ambiente interativo
“Vem com baterias”
Software Livre (licença compatível GPL)
(Marco André Lopes Mendes <marcoandre@gmail.com>, “Porque Python”, 2010)
Quem usa ?
Criada, em 1995, por
Brendan Eich
Interpretada
Baseada em protótipos
Tipagem dinâmica e fraca
Multiparadigma (OO, estruturada, funcional)
Formalizada como ECMAScript
Usada além dos navegadores
(aplicações, servidores, ...)
+
Uma camada Python para a engine JavaScript V8 do Google
Funciona como uma ponte entre objetos Python e JavaScript
Permite usar a engine V8 em programas Python
https://code.google.com/p/pyv8/
Adaptação do projeto ExecJS do Ruby
Seleciona automaticamente o melhor runtime JavaScript
disponível e devolve como um objeto Python
Suporta as engines PyV8, Node.js, Apple JavaScriptCore,
Mozilla SpiderMonkey e MS Windows Script Host (Jscript)
https://github.com/doloopwhile/PyExecJS
Permite a compilação de código padrão Python para o
equivalente em JavaScript
Código gerado pode ser executado em navegadores e em
outras plataformas
http://pyjaco.org/
Motivação
Não ter que aprender uma nova linguagem
Menos tempo com adaptações e correções
(só subset do JS é usado)
Maior produtividade
(uso da Python standard library)
Plataforma de desenvolvimento de
Rich Internet Applications (antigo Pyjamas)
Inicialmente, uma adaptação do
Google Web Toolkit (Java para JS)
http://pyjs.org/
Compõe-se de um compilador de Python para JS,
um framework Ajax e um conjunto de widgets com API
Através do pyjs Desktop, permite executar as aplicações sem a
necessidade de navegador
Implementação de Python completamente em JavaScript
Não necessita de pré-processamento, plugins nem código no
servidor.
Em desenvolvimento, ganhando melhorias, mas já utilizável
http://www.skulpt.org/
Projetado para substituir o JavaScript como linguagem de script
para a Web.
Implementação de Python 3 adaptada ao ambiente HTML5
(interface para objetos DOM e eventos)
Scripts com tipo "text/python"
http://www.brython.info/
Luiz Cláudio Silva
luizclaudio@linguagil.com.br
@luizclaudios
luizclaudiosilva

Mais conteúdo relacionado

Mais procurados

Criando o Primeiro Projeto no Android Studio
Criando o Primeiro Projeto no Android StudioCriando o Primeiro Projeto no Android Studio
Criando o Primeiro Projeto no Android StudioTiago Antônio da Silva
 
Redes de Computadores 2 - Aula 3 - Roteamento
Redes de Computadores 2 - Aula 3 - RoteamentoRedes de Computadores 2 - Aula 3 - Roteamento
Redes de Computadores 2 - Aula 3 - RoteamentoCleber Fonseca
 
Seguranca da Informação - VPN
Seguranca da Informação - VPNSeguranca da Informação - VPN
Seguranca da Informação - VPNLuiz Arthur
 
Processo de Teste de Software - Monografia
Processo de Teste de Software - MonografiaProcesso de Teste de Software - Monografia
Processo de Teste de Software - MonografiaRodrigo Kammers
 
Seminário Computação em Nuvem
Seminário Computação em NuvemSeminário Computação em Nuvem
Seminário Computação em NuvemLeandro Nunes
 
Aula 01 - Introdução ao curso - Projeto de Redes de Computadores
Aula 01 - Introdução ao curso - Projeto de Redes de ComputadoresAula 01 - Introdução ao curso - Projeto de Redes de Computadores
Aula 01 - Introdução ao curso - Projeto de Redes de ComputadoresDalton Martins
 
Concreto na construção civil - apresentação completa, Slides de Engenharia Civil
Concreto na construção civil - apresentação completa, Slides de Engenharia CivilConcreto na construção civil - apresentação completa, Slides de Engenharia Civil
Concreto na construção civil - apresentação completa, Slides de Engenharia CivilAlisonKricinski1
 
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo RochaMetodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo RochaFernando Palma
 
Segurança da informação
Segurança da informaçãoSegurança da informação
Segurança da informaçãoimsp2000
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidorMarcia Abrahim
 
Montagem de Cabos Cross e Crossover
Montagem de Cabos Cross e CrossoverMontagem de Cabos Cross e Crossover
Montagem de Cabos Cross e CrossoverRaquel Kinupp
 
Histórico e evolução da internet 6
Histórico e evolução da internet 6Histórico e evolução da internet 6
Histórico e evolução da internet 6Julia Teobaldo
 
Peer-to-peer
Peer-to-peerPeer-to-peer
Peer-to-peerLeo-Sotto
 
Os principais serviços de internet
Os principais serviços de internetOs principais serviços de internet
Os principais serviços de internetjogos_do_dvd
 
Transmissão síncrona e assíncrona
Transmissão síncrona e assíncronaTransmissão síncrona e assíncrona
Transmissão síncrona e assíncronaJoel Saramago
 

Mais procurados (20)

Criando o Primeiro Projeto no Android Studio
Criando o Primeiro Projeto no Android StudioCriando o Primeiro Projeto no Android Studio
Criando o Primeiro Projeto no Android Studio
 
Redes de Computadores 2 - Aula 3 - Roteamento
Redes de Computadores 2 - Aula 3 - RoteamentoRedes de Computadores 2 - Aula 3 - Roteamento
Redes de Computadores 2 - Aula 3 - Roteamento
 
Seguranca da Informação - VPN
Seguranca da Informação - VPNSeguranca da Informação - VPN
Seguranca da Informação - VPN
 
Processo de Teste de Software - Monografia
Processo de Teste de Software - MonografiaProcesso de Teste de Software - Monografia
Processo de Teste de Software - Monografia
 
Seminário Computação em Nuvem
Seminário Computação em NuvemSeminário Computação em Nuvem
Seminário Computação em Nuvem
 
Aula sobre Linux.
Aula sobre Linux. Aula sobre Linux.
Aula sobre Linux.
 
Aula 01 - Introdução ao curso - Projeto de Redes de Computadores
Aula 01 - Introdução ao curso - Projeto de Redes de ComputadoresAula 01 - Introdução ao curso - Projeto de Redes de Computadores
Aula 01 - Introdução ao curso - Projeto de Redes de Computadores
 
Protocolos de Rede para Internet das Coisas
Protocolos de Rede para Internet das CoisasProtocolos de Rede para Internet das Coisas
Protocolos de Rede para Internet das Coisas
 
Concreto na construção civil - apresentação completa, Slides de Engenharia Civil
Concreto na construção civil - apresentação completa, Slides de Engenharia CivilConcreto na construção civil - apresentação completa, Slides de Engenharia Civil
Concreto na construção civil - apresentação completa, Slides de Engenharia Civil
 
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo RochaMetodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha
 
Segurança da informação
Segurança da informaçãoSegurança da informação
Segurança da informação
 
Aula - Internet
Aula - InternetAula - Internet
Aula - Internet
 
Conhecendo o WordPress
Conhecendo o WordPressConhecendo o WordPress
Conhecendo o WordPress
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 
Aula 03-deadlock
Aula 03-deadlockAula 03-deadlock
Aula 03-deadlock
 
Montagem de Cabos Cross e Crossover
Montagem de Cabos Cross e CrossoverMontagem de Cabos Cross e Crossover
Montagem de Cabos Cross e Crossover
 
Histórico e evolução da internet 6
Histórico e evolução da internet 6Histórico e evolução da internet 6
Histórico e evolução da internet 6
 
Peer-to-peer
Peer-to-peerPeer-to-peer
Peer-to-peer
 
Os principais serviços de internet
Os principais serviços de internetOs principais serviços de internet
Os principais serviços de internet
 
Transmissão síncrona e assíncrona
Transmissão síncrona e assíncronaTransmissão síncrona e assíncrona
Transmissão síncrona e assíncrona
 

Destaque

Utilizando JavaScript / Python
Utilizando JavaScript / Python Utilizando JavaScript / Python
Utilizando JavaScript / Python Adam Macias
 
PloneGov.Br: Cadê o .br que estava aqui?
PloneGov.Br: Cadê o .br que estava aqui?PloneGov.Br: Cadê o .br que estava aqui?
PloneGov.Br: Cadê o .br que estava aqui?Simples Consultoria
 
V de Vinagre: A história por trás da história do momento que mudou o Brasil
V de Vinagre: A história por trás da história do momento que mudou o BrasilV de Vinagre: A história por trás da história do momento que mudou o Brasil
V de Vinagre: A história por trás da história do momento que mudou o BrasilSimples Consultoria
 
Plone 5: Você ainda vai ter um!
Plone 5: Você ainda vai ter um!Plone 5: Você ainda vai ter um!
Plone 5: Você ainda vai ter um!Simples Consultoria
 
O Futuro do Plone (PythonBrasil[8])
O Futuro do Plone (PythonBrasil[8])O Futuro do Plone (PythonBrasil[8])
O Futuro do Plone (PythonBrasil[8])Simples Consultoria
 
Plone: Funcionalidades que todo gestor de conteúdo Plone deveria saber
Plone: Funcionalidades que todo gestor de conteúdo Plone deveria saberPlone: Funcionalidades que todo gestor de conteúdo Plone deveria saber
Plone: Funcionalidades que todo gestor de conteúdo Plone deveria saberSimples Consultoria
 
Lenguaje, framework, comunidad y cuenta bancaria: De teoría hasta la práctica
Lenguaje, framework,  comunidad y cuenta bancaria: De teoría hasta la prácticaLenguaje, framework,  comunidad y cuenta bancaria: De teoría hasta la práctica
Lenguaje, framework, comunidad y cuenta bancaria: De teoría hasta la prácticaSimples Consultoria
 
Criando temas para Joomla, Wordpress, Drupal e tudo mais sem tocar em templa...
Criando temas para Joomla, Wordpress, Drupal e tudo mais  sem tocar em templa...Criando temas para Joomla, Wordpress, Drupal e tudo mais  sem tocar em templa...
Criando temas para Joomla, Wordpress, Drupal e tudo mais sem tocar em templa...Simples Consultoria
 
Python como primeira linguagem de programação
Python como primeira linguagem de programaçãoPython como primeira linguagem de programação
Python como primeira linguagem de programaçãoSimples Consultoria
 
Cómo Brasil está construyendo una nación digital con código abierto y Python
Cómo Brasil está construyendo una nación digital con código abierto y PythonCómo Brasil está construyendo una nación digital con código abierto y Python
Cómo Brasil está construyendo una nación digital con código abierto y PythonSimples Consultoria
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introduçãoPablo Feijó
 

Destaque (20)

Apresentando AngularJS
Apresentando AngularJSApresentando AngularJS
Apresentando AngularJS
 
Utilizando JavaScript / Python
Utilizando JavaScript / Python Utilizando JavaScript / Python
Utilizando JavaScript / Python
 
O Futuro do Plone (RuPy-Br)
O Futuro do Plone (RuPy-Br)O Futuro do Plone (RuPy-Br)
O Futuro do Plone (RuPy-Br)
 
PloneGov.Br: Cadê o .br que estava aqui?
PloneGov.Br: Cadê o .br que estava aqui?PloneGov.Br: Cadê o .br que estava aqui?
PloneGov.Br: Cadê o .br que estava aqui?
 
V de Vinagre: A história por trás da história do momento que mudou o Brasil
V de Vinagre: A história por trás da história do momento que mudou o BrasilV de Vinagre: A história por trás da história do momento que mudou o Brasil
V de Vinagre: A história por trás da história do momento que mudou o Brasil
 
O Futuro do Plone
O Futuro do PloneO Futuro do Plone
O Futuro do Plone
 
Plone 5: Você ainda vai ter um!
Plone 5: Você ainda vai ter um!Plone 5: Você ainda vai ter um!
Plone 5: Você ainda vai ter um!
 
O Futuro do Plone
O Futuro do PloneO Futuro do Plone
O Futuro do Plone
 
Criando Temas com Diazo
Criando Temas com DiazoCriando Temas com Diazo
Criando Temas com Diazo
 
Minicurso Ruby
Minicurso RubyMinicurso Ruby
Minicurso Ruby
 
O Futuro do Plone (PythonBrasil[8])
O Futuro do Plone (PythonBrasil[8])O Futuro do Plone (PythonBrasil[8])
O Futuro do Plone (PythonBrasil[8])
 
Plone: Funcionalidades que todo gestor de conteúdo Plone deveria saber
Plone: Funcionalidades que todo gestor de conteúdo Plone deveria saberPlone: Funcionalidades que todo gestor de conteúdo Plone deveria saber
Plone: Funcionalidades que todo gestor de conteúdo Plone deveria saber
 
Lenguaje, framework, comunidad y cuenta bancaria: De teoría hasta la práctica
Lenguaje, framework,  comunidad y cuenta bancaria: De teoría hasta la prácticaLenguaje, framework,  comunidad y cuenta bancaria: De teoría hasta la práctica
Lenguaje, framework, comunidad y cuenta bancaria: De teoría hasta la práctica
 
Diazo para todos
Diazo para todosDiazo para todos
Diazo para todos
 
Criando temas para Joomla, Wordpress, Drupal e tudo mais sem tocar em templa...
Criando temas para Joomla, Wordpress, Drupal e tudo mais  sem tocar em templa...Criando temas para Joomla, Wordpress, Drupal e tudo mais  sem tocar em templa...
Criando temas para Joomla, Wordpress, Drupal e tudo mais sem tocar em templa...
 
O Estado do Plone - FISL 14
O Estado do Plone - FISL 14O Estado do Plone - FISL 14
O Estado do Plone - FISL 14
 
Gestión de Contenido con Plone
Gestión de Contenido con PloneGestión de Contenido con Plone
Gestión de Contenido con Plone
 
Python como primeira linguagem de programação
Python como primeira linguagem de programaçãoPython como primeira linguagem de programação
Python como primeira linguagem de programação
 
Cómo Brasil está construyendo una nación digital con código abierto y Python
Cómo Brasil está construyendo una nación digital con código abierto y PythonCómo Brasil está construyendo una nación digital con código abierto y Python
Cómo Brasil está construyendo una nación digital con código abierto y Python
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introdução
 

Semelhante a Integração Python-JavaScript

python_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfpython_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfProfIvanSaboia
 
Usando Python na Google App Engine v2
Usando Python na Google App Engine v2Usando Python na Google App Engine v2
Usando Python na Google App Engine v2Luiz Cláudio Silva
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010Luiz Aldabalde
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Luiz Aldabalde
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeAlessandro Binhara
 
Por Que Python - #PUGCE
Por Que Python - #PUGCEPor Que Python - #PUGCE
Por Que Python - #PUGCETiago Freire
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicRicardo Guerra Freitas
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com PythonLuiz Aldabalde
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com PythonPythOnRio
 
Python django7semestre
Python django7semestre Python django7semestre
Python django7semestre Denis Vieira
 
Python Training #1 ed.6
Python Training #1 ed.6 Python Training #1 ed.6
Python Training #1 ed.6 Fabio Spanhol
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e djangoIgor Sobreira
 
Desenvolvimento web com python e web2py
Desenvolvimento web com python e web2pyDesenvolvimento web com python e web2py
Desenvolvimento web com python e web2pyRelsi Maron
 
Instalando e usando a XPages Extension Library para IBM Designer - extlib (Po...
Instalando e usando a XPages Extension Library para IBM Designer - extlib (Po...Instalando e usando a XPages Extension Library para IBM Designer - extlib (Po...
Instalando e usando a XPages Extension Library para IBM Designer - extlib (Po...Bruno Grange
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6Fabio Spanhol
 

Semelhante a Integração Python-JavaScript (20)

python_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfpython_para_desenvolvedores.pdf
python_para_desenvolvedores.pdf
 
Usando Python na Google App Engine v2
Usando Python na Google App Engine v2Usando Python na Google App Engine v2
Usando Python na Google App Engine v2
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao Python
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente Mainframe
 
Por Que Python - #PUGCE
Por Que Python - #PUGCEPor Que Python - #PUGCE
Por Que Python - #PUGCE
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual Basic
 
Python Zope Plone - Fiocruz
Python Zope Plone - FiocruzPython Zope Plone - Fiocruz
Python Zope Plone - Fiocruz
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
 
Python django7semestre
Python django7semestre Python django7semestre
Python django7semestre
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
Python Training #1 ed.6
Python Training #1 ed.6 Python Training #1 ed.6
Python Training #1 ed.6
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
 
Python Zope Plone - Tchelinux
Python Zope Plone - TchelinuxPython Zope Plone - Tchelinux
Python Zope Plone - Tchelinux
 
Python Zope Plone - Ftec
Python Zope Plone - FtecPython Zope Plone - Ftec
Python Zope Plone - Ftec
 
Desenvolvimento web com python e web2py
Desenvolvimento web com python e web2pyDesenvolvimento web com python e web2py
Desenvolvimento web com python e web2py
 
Instalando e usando a XPages Extension Library para IBM Designer - extlib (Po...
Instalando e usando a XPages Extension Library para IBM Designer - extlib (Po...Instalando e usando a XPages Extension Library para IBM Designer - extlib (Po...
Instalando e usando a XPages Extension Library para IBM Designer - extlib (Po...
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6
 

Mais de Luiz Cláudio Silva

Servindo Aplicações Python na Nuvem
Servindo Aplicações Python na NuvemServindo Aplicações Python na Nuvem
Servindo Aplicações Python na NuvemLuiz Cláudio Silva
 
Desenvolvendo Aplicações Web com Python
Desenvolvendo Aplicações Web com PythonDesenvolvendo Aplicações Web com Python
Desenvolvendo Aplicações Web com PythonLuiz Cláudio Silva
 
Ensinando Computação e Fazendo Ciência com Python
Ensinando Computação e Fazendo Ciência com PythonEnsinando Computação e Fazendo Ciência com Python
Ensinando Computação e Fazendo Ciência com PythonLuiz Cláudio Silva
 
Python na Google App Engine (v3)
Python na Google App Engine (v3)Python na Google App Engine (v3)
Python na Google App Engine (v3)Luiz Cláudio Silva
 
Praticas Ágeis de Desenvolvimento de Software v3
Praticas Ágeis de Desenvolvimento de Software v3Praticas Ágeis de Desenvolvimento de Software v3
Praticas Ágeis de Desenvolvimento de Software v3Luiz Cláudio Silva
 
Computação em Nuvem, Padrões Abertos e Software LIvre
Computação em Nuvem, Padrões Abertos e Software LIvre Computação em Nuvem, Padrões Abertos e Software LIvre
Computação em Nuvem, Padrões Abertos e Software LIvre Luiz Cláudio Silva
 
Já ouviu falar em Extreme Programming?
Já ouviu falar em Extreme Programming?Já ouviu falar em Extreme Programming?
Já ouviu falar em Extreme Programming?Luiz Cláudio Silva
 
Praticas Ágeis de Desenvolvimento de Software v2
Praticas Ágeis de Desenvolvimento de Software v2Praticas Ágeis de Desenvolvimento de Software v2
Praticas Ágeis de Desenvolvimento de Software v2Luiz Cláudio Silva
 
Extreme Programming (Agile Tour 2011)
Extreme Programming (Agile Tour 2011)Extreme Programming (Agile Tour 2011)
Extreme Programming (Agile Tour 2011)Luiz Cláudio Silva
 
Práticas Ágeis de Desenvolvimento de Software
Práticas Ágeis de Desenvolvimento de SoftwarePráticas Ágeis de Desenvolvimento de Software
Práticas Ágeis de Desenvolvimento de SoftwareLuiz Cláudio Silva
 
Usando Python na Google App Engine
Usando Python na Google App EngineUsando Python na Google App Engine
Usando Python na Google App EngineLuiz Cláudio Silva
 
Técnicas de Programação para a Web
Técnicas de Programação para a WebTécnicas de Programação para a Web
Técnicas de Programação para a WebLuiz Cláudio Silva
 

Mais de Luiz Cláudio Silva (15)

Servindo Aplicações Python na Nuvem
Servindo Aplicações Python na NuvemServindo Aplicações Python na Nuvem
Servindo Aplicações Python na Nuvem
 
Usando BDs NoSQL com Python
Usando BDs NoSQL com PythonUsando BDs NoSQL com Python
Usando BDs NoSQL com Python
 
Computacao em Nuvem
Computacao em NuvemComputacao em Nuvem
Computacao em Nuvem
 
Desenvolvendo Aplicações Web com Python
Desenvolvendo Aplicações Web com PythonDesenvolvendo Aplicações Web com Python
Desenvolvendo Aplicações Web com Python
 
Ensinando Computação e Fazendo Ciência com Python
Ensinando Computação e Fazendo Ciência com PythonEnsinando Computação e Fazendo Ciência com Python
Ensinando Computação e Fazendo Ciência com Python
 
Python na Google App Engine (v3)
Python na Google App Engine (v3)Python na Google App Engine (v3)
Python na Google App Engine (v3)
 
Praticas Ágeis de Desenvolvimento de Software v3
Praticas Ágeis de Desenvolvimento de Software v3Praticas Ágeis de Desenvolvimento de Software v3
Praticas Ágeis de Desenvolvimento de Software v3
 
Computação em Nuvem, Padrões Abertos e Software LIvre
Computação em Nuvem, Padrões Abertos e Software LIvre Computação em Nuvem, Padrões Abertos e Software LIvre
Computação em Nuvem, Padrões Abertos e Software LIvre
 
Já ouviu falar em Extreme Programming?
Já ouviu falar em Extreme Programming?Já ouviu falar em Extreme Programming?
Já ouviu falar em Extreme Programming?
 
Praticas Ágeis de Desenvolvimento de Software v2
Praticas Ágeis de Desenvolvimento de Software v2Praticas Ágeis de Desenvolvimento de Software v2
Praticas Ágeis de Desenvolvimento de Software v2
 
Python na Nuvem
Python na NuvemPython na Nuvem
Python na Nuvem
 
Extreme Programming (Agile Tour 2011)
Extreme Programming (Agile Tour 2011)Extreme Programming (Agile Tour 2011)
Extreme Programming (Agile Tour 2011)
 
Práticas Ágeis de Desenvolvimento de Software
Práticas Ágeis de Desenvolvimento de SoftwarePráticas Ágeis de Desenvolvimento de Software
Práticas Ágeis de Desenvolvimento de Software
 
Usando Python na Google App Engine
Usando Python na Google App EngineUsando Python na Google App Engine
Usando Python na Google App Engine
 
Técnicas de Programação para a Web
Técnicas de Programação para a WebTécnicas de Programação para a Web
Técnicas de Programação para a Web
 

Integração Python-JavaScript

  • 3. Criada, em 1991, por Guido Von Rossum Homenagem ao Monty Python
  • 4. Sintaxe simples e fácil de ser de assimilada Multiparadigma (OO, estruturada e funcional) Tipagem dinâmica e forte Multiplataforma Interpretada (bytecodes) Ambiente interativo “Vem com baterias” Software Livre (licença compatível GPL)
  • 5. (Marco André Lopes Mendes <marcoandre@gmail.com>, “Porque Python”, 2010)
  • 7. Criada, em 1995, por Brendan Eich
  • 8. Interpretada Baseada em protótipos Tipagem dinâmica e fraca Multiparadigma (OO, estruturada, funcional) Formalizada como ECMAScript Usada além dos navegadores (aplicações, servidores, ...)
  • 9.
  • 10. +
  • 11. Uma camada Python para a engine JavaScript V8 do Google Funciona como uma ponte entre objetos Python e JavaScript Permite usar a engine V8 em programas Python https://code.google.com/p/pyv8/
  • 12.
  • 13. Adaptação do projeto ExecJS do Ruby Seleciona automaticamente o melhor runtime JavaScript disponível e devolve como um objeto Python Suporta as engines PyV8, Node.js, Apple JavaScriptCore, Mozilla SpiderMonkey e MS Windows Script Host (Jscript) https://github.com/doloopwhile/PyExecJS
  • 14.
  • 15. Permite a compilação de código padrão Python para o equivalente em JavaScript Código gerado pode ser executado em navegadores e em outras plataformas http://pyjaco.org/
  • 16. Motivação Não ter que aprender uma nova linguagem Menos tempo com adaptações e correções (só subset do JS é usado) Maior produtividade (uso da Python standard library)
  • 17.
  • 18. Plataforma de desenvolvimento de Rich Internet Applications (antigo Pyjamas) Inicialmente, uma adaptação do Google Web Toolkit (Java para JS) http://pyjs.org/
  • 19. Compõe-se de um compilador de Python para JS, um framework Ajax e um conjunto de widgets com API Através do pyjs Desktop, permite executar as aplicações sem a necessidade de navegador
  • 20.
  • 21. Implementação de Python completamente em JavaScript Não necessita de pré-processamento, plugins nem código no servidor. Em desenvolvimento, ganhando melhorias, mas já utilizável http://www.skulpt.org/
  • 22.
  • 23. Projetado para substituir o JavaScript como linguagem de script para a Web. Implementação de Python 3 adaptada ao ambiente HTML5 (interface para objetos DOM e eventos) Scripts com tipo "text/python" http://www.brython.info/
  • 24.
  • 25.