Nos últimos anos tem havido um número crescente de linguagens "portadas" para o Java Virtual Machine (JVM) ou criadas exclusivamente para executar na JVM. Alguns exemplos incluem Ruby (JRuby), JavaScript (Rhino), Groovy e Python (Jython). Especificamente, mais ou menos no ano passado Python tem realmente ganhado tração na JVM, graças aos recentes avanços do Jython.
Jython é uma implementação da linguagem de programação Python projetada para ser executada na JVM. Jython está por aí por pouco mais de 10 anos, mas esteve em um estado de relativa estagnação em grande parte desse tempo. Mais recentemente aconteceu mais coisas em torno do Jython o que está ajudando Python a aumentar a seu rastro na JVM. A InfoQ recentemente teve a oportunidade de entrevistar o líder do projeto Jython, Frank Wierzbicki, sobre Jython e o estado de Python na JVM.
Durante o ano passado, realmente parece que houve mais burburinho em torno Jython, a que você atribui isso?
Acho que a versão 2.5 do Jython, que é mais compatível com CPython do que qualquer versão anterior do Jython, tem sido uma grande parte disso. Estamos aptos a executar uma porcentagem muito maior de aplicações e frameworks em Python do que nunca. Django, Pylons, Py2Web estão funcionando bem, SQLAlchemy 0.6 irá funcionar com Jython, e o trabalho está progredindo com relação ao Twisted, TurboGears, e Grok (para citar alguns). Tudo isso sendo capaz de acessar bibliotecas Java como se fossem nativas do Python.
Qual é o papel da Sun Microsystems no desenvolvimento do Jython?
A Sun me permite trabalhar no Jython em tempo integral. Também ajudo o pessoal do NetBeans a fazer de Python e Jython linguagens de primeira classe do NetBeans IDE, e a fazer com que Jython, Django e Pylons funcionem no GlassFish. E, obviamente, as equipes estão ajudando o Jython ao incorporá-lo em seus trabalhos.
Quais são as mudanças mais importantes no Jython 2.5?
O foco do 2.5 era fazer do Jython uma implementação de Python moderna e compatível com CPython. Nós realmente tentamos fazer com que o maior número possível de frameworks e aplicações puramente escritos em Python funcionassem. Nós não gastamos muito tempo no ajuste de performance, mas nós estamos considerando isso para a próxima versão. Dito isto, estamos com uma performance razoavelmente boa comparada ao CPython.
Quais são os planos para o Jython 2.6?
Estamos agora trabalhando fortemente no desempenho, mas também estamos adicionando muitas funcionalidades. Por exemplo, estamos planejando melhorar nossa integração com as bibliotecas Java. Em particular, precisamos substituir uma ferramenta presente do Jython 2.2.x e anteriores, chamada "jythonc", que tornava mais conveniente a implementação de certos tipos de integração com Java e pacotes que resultavam em jars (Um dos formatos de distribuição Java). Nós não conseguimos suportar algumas das novas funcionalidades do Python com jythonc devido ao seu design interno. Também estaremos nos certificando que, ainda mais aplicações e frameworks funcionem no Jython. Estamos ansiosos pelo dia em que ter um aplicativo que não roda em Jython será considerado um bug no aplicativo :)
Vai existir um Jython3k?
Sem dúvida! 3.0 é o futuro do Python, e por isso é o futuro do Jython. Nós não começamos a trabalhar sério no Jython3k, mas eu espero que comecemos a fazer isso após o lançamento do 2.6. A razão pela qual estamos esperando o 2.6 é que, as ferramentas para a migração de Python 2 para Python 3 exigem o 2.6 como ponto de partida.
Você está vendo a adoção de Jython para mais aplicações corporativas?
Eu sei de pessoas que estão colocando arquivos WAR com Pylons ou Django sobre Jython em produção, e eu ouvi falar de algumas empresas que acham que a integração com JDBC do Jython funciona melhor para eles do que o acesso a banco de dados do CPython em determinadas circunstâncias. O fato do 2.5 ser um Python moderno o torna uma boa opção em muitas situações.Não sei se as pessoas sabem o quão antigo Jython é -- seu primeiro release aconteceu em julho de 1998. Na época, ela era a linguagem de programação mais completa rodando na JVM, fora Java. Assim, empresas vem realmente usando Jython a um bom tempo. Por exemplo, Jython é a linguagem de script usada no IBM WebSphere e no WebLogic da Oracle.
Qual a sua opinião sobre o estado do Python na JVM?
As coisas estão indo muito bem para o Python na JVM. O projeto Da Vinci Machine, liderado por John Rose, tem trabalhado duro para fazer da JVM um lugar melhor para linguagens dinâmicas. Este trabalho está trilhando seu caminho para o JDK 7 e irá ajudar muito a performance do Jython aumentar gritantemente uma vez que formos capazes de tirar vantagem dele. Eu estou prototipando um Jython que tira proveito desse trabalho agora.
Além de todo trabalho sendo feito na linguagem de programação Jython, outros recursos vem surgindo em torno da linguagem, incluindo um novo livro sobre a linguagem, um livro sobre como administrar o WebSphere com Jython, um livro online, um podcast, palestras e tutoriais na PyCon. Para começar, acesse alguns dos links acima ou entre no site oficial do Jython para saber tudo que você precisa para explorar Python na JVM.
Recursos adicionais
- Jython 2.5.1 Release
- Python Developer Center da Sun Microsystems
- Suporte a linguagens dinâmicas na Máquina Virtual Java (Artigo)
- Jython Posts
- Python-Hibernate-Jynx