BT

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

Contribuir

Tópicos

Escolha a região

Início Notícias Mobile em Ruby: Symbian Ruby 1.9, Android, JME, iPhone e Mono

Mobile em Ruby: Symbian Ruby 1.9, Android, JME, iPhone e Mono

Favoritos

Uma versão do Ruby 1.9 para Symbian já está disponível, uma versão do Ruby 1.8 já estava disponível há algum tempo (bem como o Python para Symbian).

Além do Ruby Symbian, não há muito suporte para Ruby em celulares no momento.  É possível executar a versão do Ruby ARM no Android.

Desde que o Android é baseado em Java, outra opção seria executar JRuby no Android. A questão é que o Android não executa bytecodes do Java, mas sim bytecodes do Dalvik (Bytecodes JVM devem ser traduzidos para bytecodes do Dalvik ). Em uma discussão sobre a lista de usuários jruby, Charles Nutter do JRuby lista as possíveis soluções:

Há dois possíveis cenários de execução funcionariam com essas limitações:
* Puramente interpretado, onde todos os códigos são parseados no dispositivo e executados com nosso interpretador lógico AST. Isso seria provavelmente mais lento do que gostaríamos mas torna o trabalho mais fácil.
* Puramente Compilado, com todos invokers/handles gerados antecipadamente também.
Ambos os casos já são possíveis na atual base de código; o único truque é produzir um .jar que fornece apenas um e não depende do outro.


Executar JRuby no JME não é realmente uma opção. Uma adaptação do JRuby para JME foi apresentado no JavaOne em 2007. O arquivo Zip indicado no link contem os slides da apresentação do JavaOne, o qual detalha o processo envolvido na obtenção do subconjunto do JRuby para executar no JME. Considerando que o JME é uma versão resumida do Java, conseguir que o JRuby rode envolve uma reescrita grandes partes do JRuby. A versão atual do JRuby depende do Java 5 - mas como mostram os slides, no JME faltam classes e métodos adicionados desde o Java 1.2. Entre as maiores omissões estão as Regular Expressions ou grandes partes da Collections API.

Outra opção em breve poderá se tornar disponível sob a forma do IronRuby e Mono para o iPhone. Enquanto o AppStore do iPhone não permite o download de interpretadores, as ultimas versões do Mono tem uma solução: compilação antecipada, ex. código no CIL é compilado para as instruções da CPU, no caso do iPhone para as instruções ARM. Considerando que o IronRuby pode compilar o código Ruby para CIL, ao invés de interpretá-lo, é possível compilar uma aplicação Ruby para CIL, AOT compila e executa sobre o iPhone. Como Miguel de Icaza menciona, alguns problemas remanescentes antes que o código IronRuby possa ser executado:

É claro, uma vez que você remova o JIT você não será capaz de usar nenhum código gerado dinamicamente. Isso significa sem reflection. Emite dinamicamente e pelo menos por enquanto ou não IronPython/IronRuby.
John Lam me disse no PDC que eles estão tentando trazer compilação estática para IronPython/IronRuby/DLR novamente, então essa só pode ser uma limitação de curta duração.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

  • JRuby

    by Sudamar Cerqueira,

    Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!

    Não entendi quais seriam as limitações tão GRAVES do JRuby dentro da JME?

    NÃO! Eu não acho JME uma boa opção! Mas no que diz respeito aa portabilidade, ainda é A OPÇÃO!

    A opção mais atraente é montar uma infra para se rodar JRuby dentro do Android... o Ruby pegaria uma BOA CARONA com o BOOOOMMM do Android e até lá, dependendo da demanda e da REAL facilidade de se trabalhar com o Ruby (que ainda carece de maiores explorações de minha parte) pode "exigir" do google a melhora no suporte à plataforma!

    Abs

  • Re: JRuby

    by Felipe Rodrigues,

    Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!

    Pois é, mas me parece que o google investe muito mais em Python do que em Ruby.

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

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

BT