Dropbox anuncia Pyston, uma nova implementação Python baseada em compilação JIT
Objetivo do Pyston é ser uma implementação de alto desempenho e auxiliar a empresa a atingir suas metas de desempenho impossíveis de alcançar com o Python.
Recentemente, o Dropbox anunciou 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 alto desempenho e auxiliar a empresa a atingir suas metas de desempenho impossíveis de alcançar com o Python.
Houve a necessidade de desenvolver o Pyston porque o Python é muito utilizado no Dropbox, mas o código Python acabava sendo reescrito em outra linguagem em algumas situações, devido às necessidades de desempenho que eram exigidas quando o projeto era escalado.
Kevin Modzelewski, engenheiro de software da empresa sediada em São Francisco, explicou 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 do desempenho do JavaScript. Nossa esperança é que, ao usar técnicas semelhantes (de compilação JIT), consigamos alcançar resultados parecidos no desempenho do Python.
Embora já existam implementações Python – como PyPy, Jython e 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.
Outro diferencial 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.
É válido ressaltar que o desenvolvimento do Pyston ainda está no início, e apenas um conjunto mínimo da linguagem Python é suportado. Por isso, as avaliações de desempenho também não são possíveis, e ainda falta dar suporte para um conjunto maior de benchmarks para ser representativo e para 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 de fevereiro de 2014 e, por enquanto, ela é compatível somente com o Python 2.7, roda apenas em plataformas x86_64 e só foi testada no Ubuntu. Mas 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; e 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.
Com informações de InfoQ







