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

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

BT