SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosElaine Cecília Gatto
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a ObjetosOrlando Junior
 
Polimorfismo java
Polimorfismo javaPolimorfismo java
Polimorfismo javaFAFICA
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à ProgramaçãoMario Sergio
 
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
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
 
Introdução a Informática
Introdução a InformáticaIntrodução a Informática
Introdução a InformáticaDaniel Brandão
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismoArthur Emanuel
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaDaniel Brandão
 

Tendances (20)

Complexidade Ciclomática
Complexidade CiclomáticaComplexidade Ciclomática
Complexidade Ciclomática
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Hierarquia de Chomsky
Hierarquia de ChomskyHierarquia de Chomsky
Hierarquia de Chomsky
 
Minicurso de App Inventor
Minicurso de App InventorMinicurso de App Inventor
Minicurso de App Inventor
 
Aula básica de internet
Aula básica de internetAula básica de internet
Aula básica de internet
 
POO - 11 - Prática de Herança
POO - 11 - Prática de HerançaPOO - 11 - Prática de Herança
POO - 11 - Prática de Herança
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos Básicos
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Polimorfismo java
Polimorfismo javaPolimorfismo java
Polimorfismo java
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
POO - Aula 09 - Herança
POO - Aula 09 - HerançaPOO - Aula 09 - Herança
POO - Aula 09 - Herança
 
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)
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Introdução a Informática
Introdução a InformáticaIntrodução a Informática
Introdução a Informática
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismo
 
POO - 16 - Polimorfismo
POO - 16 - PolimorfismoPOO - 16 - Polimorfismo
POO - 16 - Polimorfismo
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
 
Design de interação
Design de interaçãoDesign de interação
Design de interação
 
POO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de MétodosPOO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de Métodos
 
POO - 17 - Interfaces
POO - 17 - InterfacesPOO - 17 - Interfaces
POO - 17 - Interfaces
 

En vedette

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ó
 

En vedette (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
 

Similaire à 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
 

Similaire à 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
 

Plus 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
 

Plus 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.