SlideShare uma empresa Scribd logo
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

Análise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeAnálise de Algoritmos - Recursividade
Análise de Algoritmos - Recursividade
Delacyr Ferreira
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
Luciano Ramalho
 
Construir microservices em python nunca foi tão simples como com o Nameko!
Construir microservices em python nunca foi tão simples como com o Nameko!Construir microservices em python nunca foi tão simples como com o Nameko!
Construir microservices em python nunca foi tão simples como com o Nameko!
Flávio Pimenta
 
Introdução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIntrodução a Arquitetura de Sistemas
Introdução a Arquitetura de Sistemas
Igor Takenami
 
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library
DongMin Choi
 
Arquitetura de microsserviços
Arquitetura  de  microsserviçosArquitetura  de  microsserviços
Arquitetura de microsserviços
Raphael Almeida
 
Support programmation orientée objet c# .net version f8
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
ENSET, Université Hassan II Casablanca
 
2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python
Jardel Weyrich
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
Osvaldo Santana Neto
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
Alvaro Oliveira
 
Escrevendo Estórias do Usuário Eficazes
Escrevendo Estórias do Usuário EficazesEscrevendo Estórias do Usuário Eficazes
Escrevendo Estórias do Usuário Eficazes
Rildo (@rildosan) Santos
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesRegis Magalhães
 
TI Verde
TI VerdeTI Verde
Seminário - Linguagem Dart: Structured web apps
Seminário - Linguagem Dart: Structured web appsSeminário - Linguagem Dart: Structured web apps
Seminário - Linguagem Dart: Structured web apps
Giancarlo Silva
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
Elaine Cecília Gatto
 
Polimorfismo em java
Polimorfismo em javaPolimorfismo em java
Polimorfismo em java
Manoel Afonso
 
BDD com Cucumber
BDD com CucumberBDD com Cucumber
BDD com Cucumber
Márcio Queiroz
 
Aula 01 - JavaScript: Introdução
Aula 01 - JavaScript: IntroduçãoAula 01 - JavaScript: Introdução
Aula 01 - JavaScript: Introdução
Jessyka Lage
 

Mais procurados (20)

Análise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeAnálise de Algoritmos - Recursividade
Análise de Algoritmos - Recursividade
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Construir microservices em python nunca foi tão simples como com o Nameko!
Construir microservices em python nunca foi tão simples como com o Nameko!Construir microservices em python nunca foi tão simples como com o Nameko!
Construir microservices em python nunca foi tão simples como com o Nameko!
 
Introdução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIntrodução a Arquitetura de Sistemas
Introdução a Arquitetura de Sistemas
 
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library
 
Arquitetura de microsserviços
Arquitetura  de  microsserviçosArquitetura  de  microsserviços
Arquitetura de microsserviços
 
Support programmation orientée objet c# .net version f8
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
 
2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 
Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 
Escrevendo Estórias do Usuário Eficazes
Escrevendo Estórias do Usuário EficazesEscrevendo Estórias do Usuário Eficazes
Escrevendo Estórias do Usuário Eficazes
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas Interfaces
 
TI Verde
TI VerdeTI Verde
TI Verde
 
Seminário - Linguagem Dart: Structured web apps
Seminário - Linguagem Dart: Structured web appsSeminário - Linguagem Dart: Structured web apps
Seminário - Linguagem Dart: Structured web apps
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Polimorfismo em java
Polimorfismo em javaPolimorfismo em java
Polimorfismo em java
 
BDD com Cucumber
BDD com CucumberBDD com Cucumber
BDD com Cucumber
 
Aula 01 - JavaScript: Introdução
Aula 01 - JavaScript: IntroduçãoAula 01 - JavaScript: Introdução
Aula 01 - JavaScript: Introdução
 

Destaque

Utilizando JavaScript / Python
Utilizando JavaScript / Python Utilizando JavaScript / Python
Utilizando JavaScript / Python
Adam Macias
 
O Futuro do Plone (RuPy-Br)
O Futuro do Plone (RuPy-Br)O Futuro do Plone (RuPy-Br)
O Futuro do Plone (RuPy-Br)
Simples Consultoria
 
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 Brasil
Simples Consultoria
 
O Futuro do Plone
O Futuro do PloneO Futuro do Plone
O Futuro do Plone
Simples 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
O Futuro do PloneO Futuro do Plone
O Futuro do Plone
Simples Consultoria
 
Criando Temas com Diazo
Criando Temas com DiazoCriando Temas com Diazo
Criando Temas com Diazo
Simples Consultoria
 
Minicurso Ruby
Minicurso RubyMinicurso Ruby
Minicurso Ruby
Saulo Arruda
 
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 saber
Simples 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áctica
Simples Consultoria
 
Diazo para todos
Diazo para todosDiazo para todos
Diazo para todos
Simples 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
 
O Estado do Plone - FISL 14
O Estado do Plone - FISL 14O Estado do Plone - FISL 14
O Estado do Plone - FISL 14
Simples Consultoria
 
Gestión de Contenido con Plone
Gestión de Contenido con PloneGestión de Contenido con Plone
Gestión de Contenido con Plone
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ção
Simples 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 Python
Simples Consultoria
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introdução
Pablo 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 Integrando Python e JavaScript

python_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfpython_para_desenvolvedores.pdf
python_para_desenvolvedores.pdf
ProfIvanSaboia
 
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
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao Python
Mauricio Vieira
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010
Luiz Aldabalde
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011
Luiz Aldabalde
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente Mainframe
Alessandro Binhara
 
Por Que Python - #PUGCE
Por Que Python - #PUGCEPor Que Python - #PUGCE
Por Que Python - #PUGCE
Tiago 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 Python
Luiz Aldabalde
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
PythOnRio
 
Python django7semestre
Python django7semestre Python django7semestre
Python django7semestre
Denis Vieira
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
Comunidade NetPonto
 
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 web2py
Relsi 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. 6
Fabio Spanhol
 

Semelhante a Integrando Python e 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 Nuvem
Luiz Cláudio Silva
 
Usando BDs NoSQL com Python
Usando BDs NoSQL com PythonUsando BDs NoSQL com Python
Usando BDs NoSQL com Python
Luiz Cláudio Silva
 
Computacao em Nuvem
Computacao em NuvemComputacao em Nuvem
Computacao em Nuvem
Luiz 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 Python
Luiz 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 Python
Luiz 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
 

Integrando Python e 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.