BT

A sua opinião é importante! Por favor preencha a pesquisa do InfoQ!

Dropbox anuncia o Pyston: uma nova implementação Python baseada em compilação JIT

| por Ivo La Puma Seguir 0 Seguidores em 28 mai 2014. Tempo estimado de leitura: 3 minutos |

A note to our readers: As per your request we have developed a set of features that allow you to reduce the noise, while not losing sight of anything that is important. Get email and web notifications by choosing the topics you are interested in.

A Dropbox anunciou recentemente em seu blog técnico que está desenvolvendo o Pyston, uma nova implementação em código-aberto da linguagem Python. O objetivo do Pyston é ser uma implementação de alta performance e ajudar a empresa a atingir suas metas de desempenho impossíveis de alcançar com o Python.

A necessidade de desenvolver o Pyston surgiu porque o Python é muito utilizado dentro da Dropbox. Entretanto, o código Python acabava sendo reescrito em outra linguagem em algumas situações, devido às necessidades de performance que eram exigidas quando o projeto era escalado.

Kevin Modzelewski, engenheiro de software da empresa sediada em São Francisco, explica como surgiu a ideia de desenvolver o Pyston:

Após abandonar algumas experiências com compilação estática, nós percebemos como as técnicas de compilação just-in-time (JIT) têm sido aplicadas com sucesso no mundo JavaScript: o V8 do Chrome, em particular, aumentou consideravelmente o status quo da performance do JavaScript. Nossa esperança é que ao usar técnicas semelhantes (de compilação JIT), consigamos alcançar resultados parecidos na performance do Python.

Apesar de já existirem implementações Python - como por exemplo o PyPy, o Jython e o IronPython - que usam técnicas de compilação JIT sofisticadas, o Pyston é diferente porque o seu desenvolvimento é baseado na maioria das promissoras técnicas JIT que são incompatíveis com essas implementações. Por exemplo, o mundo JavaScript já trocou as técnicas de rastreamento JIT, utilizadas no PyPy, por técnicas method-at-a-time JIT devido aos seus benefícios na performance.

Sobre se o Pyston será bem sucedido, Kevin Modzelewski comenta:

Se as mesmas vantagens de performance se manterão ou não com o Python é uma questão em aberto, mas uma vez que as duas abordagens (de técnicas JIT) são fundamentalmente incompatíveis, a única maneira de começar a responder essa questão é construir (uma nova implementação baseada) em method-at-a-time JIT."

Outro ponto de diferenciação do Pyston é o uso planejado de um garbage collector conservativo para apoiar eficientemente os módulos de extensão. Além disso, o Pyston está sendo construído em cima da Low Level Virtual Machine (LLVM), uma infraestrutura de compilação escrita em C++ projetada para realizar otimizações em tempo de compilação, execução e "ociosidade" de programas escritos em qualquer linguagem.

O estado atual do Pyston

O desenvolvimento do Pyston ainda está no início, apenas um conjunto mínimo da linguagem Python é suportado. Por conta disso, as avaliações de desempenho também não são possíveis, ainda falta dar suporte a um conjunto maior de benchmarks para ser representativo e ainda falta dar suporte a todos os recursos em tempo de execução do Python. Por enquanto, o Pyston é capaz de superar o desempenho do CPython, mas ainda está atrás do PyPy.

A versão 0.1 do Pyston está disponível desde 4/2/2014. Por enquanto, é compatível somente com o Python 2.7, roda somente em plataformas x86_64 e foi testado somente no Ubuntu. Contudo, a compatibilidade com outras plataformas e com o Python 3 está planejada para o futuro.

Para a versão 0.2, está planejada a implementação dos seguintes recursos:

  • Exceções;
  • Herança de classes e metaclasses;
  • Argumentos default, keywords, *args e **kwargs;
  • Closures;
  • Generators;
  • Integer promotion.

O código-fonte e demais informações do projeto estão disponíveis no Github sob a licença Apache 2.0. Além disso, é possível contribuir para o Pyston, basta assinar o Acordo de Licença de Contribuinte Dropbox. Para acompanhar o progresso do projeto, existe também uma lista de notícias em que é possível se inscrever.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT