BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias JRuby Roundup: Google App Engine Support, BiteScript, Novo Compilador

JRuby Roundup: Google App Engine Support, BiteScript, Novo Compilador

JRuby 1.2 foi liberado a poucas semanas atrás (A cobertura da InfoQ do JRuby 1.2RC1 contém uma visão geral das mudanças). Com esse release, o time do JRuby agora começou a explorar alguns novos projetos.
Ola Bini esteve ocupado testando JRuby e Ioke no novo suporte a Java no Google App Engine (Uma cobertura do Java no GAE da InfoQ). Ola explica os requerimentos do JRuby e Rails no GAE e como configurar uma aplicação JRuby on Rails:

Você precisa de uma nova cópia do JRuby. Muitas das mudanças necessárias para o JRuby foi adicionado no trunk após o release JRuby 1.2, então verifique e construa algo depois desse release. A mais nova versão do Rails funciona bem também.

Como o GAE não suporta um RDBMS, não existe JDBC. Ola fornece Bumble, uma fachada para o DataStore do Google.

JRuby é apenas uma das linguagens suportadas pelo GAE, outras foram Clojure ou Rhino (Google mantém uma lista de linguagens suportadas). Ola também lista algumas das restrições do GAE que causam problemas para linguagens na JVM; exemplos são mudados na reflexão, threading, verificação de bytecode e outros.

Entretanto, Tom Enebo criou JRuby-Parser, o qual extrai o parser do JRuby do JRuby e permite IDEs ou outras ferramentas usá-lo sem considerar o JRuby completo.

Charles Nutter começou a trabalhar em um novo compilador Ruby, que tem objetivo de compilar tipos Ruby para classes Java:

* Ele vai usar meu bytecode DSL "BiteScript", como fez Duby 
* Irá usar a definição *runtime* de uma classe para gerar a versão Java

O segundo ponto é muito importante. Ao invés de ter um compilador offline que inspeciona um arquivo e gera código dele, o compiladoe irá na verdade usar a classe em runtime para criar a versão do Java. Isso significa que você será capaz de usar toda facilidade de metaprogramação útil, e em qualquer ponto o compilador pega sua classe para ver todos os seus métodos.

Charles também liberou uma ferramenta útil para gerar bytecode com JRuby: BiteScript, uma DSL interna para criar bytecode. JVM bytecode mnemonics são mapeados a métodos Ruby que geram os bytecodes; métodos para criar classes ou métodos para completar a API fornecer uma maneira compacta de gerar arquivos de classe.
Para mais informação, veja o post de Charles sobre o release do BiteScript .

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT