BT
x A sua opinião é importante! Por favor preencha a pesquisa do InfoQ sobre os seus hábitos de leitura!

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

por Werner Schuster , traduzido por Ricardo Almeida em 30 Abr 2009 |

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 .

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

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT