Python: Seja híbrido! Use dialetos

01104588500

Seja híbrido!

Olá galera!

Venho tocando frequentemente no assunto Jython aqui no PTI e acho que já é hora de falarmos abertamente sobre outros dialetos conhecidos do Python.

Segundo o Wikipedia:

Um dialeto é a forma como uma língua é realizada numa região específica.

Python tem influência forte de linguagens como LISP, Smalltalk, Modula-3, Haskell, etc. Por ser uma linguagem de script, e com orientação a objetos forte, é possível criar desde scripts de configuração à frameworks robustas de uma forma uniforme e clara.

No caso de uma framework, temos à disposição uma camada de ferramentas. Alguns comportamentos são executados sem o “consentimento” do desenvolvedor (claro, se você entende a arquitetura da framework que usa com certeza sabe o que acontece), outros requerem uma intervenção mais direta. Mas acima de tudo, não deixamos de programar na linguagem.

No caso dos dialetos Python, temos uma camada de escrita Python que executa sobre a camada de recursos de um ambiente. Os dialetos Python que conheço são:

  • CPython: É a implementação principal da linguagem. É desenvolvida e mantida por Guido van Rossum e sua comunidade;
  • IronPython: É a implementação da linguagem para a plataforma .NET;
  • PyPy: É uma implementação de Python escrita em Python;
  • Jython: É uma implementação de Python para máquinas virtuais Java.

CPython: Um dialeto?

CPython é a implementação de Python escrita em C. É a forma padrão de executar Python.

A máquina virtual que você possui aí é implementada nas especificações do CPython. Todos os recursos da linguagem estão alí, o que você escreve é só um documento Python que o interpretador irá ler, tentar entender e traduzir para o computador.

Em outras palavras: É o interpretador Python compilado para a sua arquitetura, traduzindo diretamente suas instruções Python para comando de máquina.

IronPython: Python para plataformas .NET

Já no IronPython é possível escrever Python utilizando recursos da plataforma .NET. IronPython é escrito em C# e a forma de escrita do script é praticamente a mesma do CPython, o que muda são as bibliotecas que você têm à disposição.

Tem algumas listas e fóruns que chegam a mencionar que a performance do IronPython é superior a do CPython. Bom, como não sou usuário Windows não tenho como comprovar.

Em outras palavras: O seu script Python será executado em .Net.

Jython: Escrevendo Python para JVMs

A mesma filosofia! Só que para Java.

Possuímos um interpretador específico que irá interpretar e gerar o bytecode para as máquinas virtuais do Java. É a sintaxe do Python acessando recursos do Java. Simples assim…

Em outras palavras: Jython é um .class Java, ou seja, uma máquina virtual Python rodando sobre uma máquina virtual Java.

PyPy: Python em Python?

O PyPy é interessante… o interpretador é construído em RPython e não em C.

O RPython é um dialeto Python com uma série de restrições que permite criar de extensões para a linguagem até sistemas standalone. Um bom exemplo de uso é escrever um jogo em Flash utilizando RPython.

Em outras palavras: É um interpretador Python feito em Python =)

No site oficial do Python, há uma lista com mais dialetos.

Até a próxima…

Klaus Peter Laube

Mais artigos deste autor »

Tecnólogo em Análise e Desenvolvimento de Sistemas pelo Centro Universitário de Jaraguá do Sul (UNERJ). Desenvolvedor Web de longa data, apaixonado por Python e defensor dos padrões Web. Escreve quando pode no http://www.klauslaube.com.br.


14 Comentários

Carina Moraes
1

Credo, que site feio. Cheio de publicidade inutil, vc usou o br-linux.org para gerar pageview né?! tsc, tsc, tsc

Jackson
2

Olá Carina,
Se tiveres capacidade de fazer algo melhor e se puderes tbm pagar as contas, dá um toque, estamos abertos a negociações.
Obrigado pelo pageview 😉

Klaus Peter Laube
5

@Carina
Crítica anotada! Obrigado por participar.
@André
Sinceramente André, não concordo com você. Tens argumentos?
@Ejedelmal:
Não conhecia esse… obrigado por compartilhar.

Rodrigo Macedo
8

Trabalho com .net há alguns anos, sempre tive vontade de conhecer outra linguagem, especialmente fora da CLR do .net para conseguir flexibilidade. Acho Python uma excelente iniciativa, mas python puro. Desconheço o lucro real de programar indiretamente para um ambiente (JVM / CLR).
Enfim, ótimo post. Bom trabalho.

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!