Peepcode sponsors akitaonrails.com Locaweb sponsors akitaonrails.com

GemStone: SmalltalkVM for Ruby !!!

AkitaOnRails / 30.Apr.2008 at 07:53pm

Avi Bryant cantou a bola primeiro na RailsConf 2006: “Eu sou do futuro, eu sei como essa história termina. Todas as pessoas que dizem que não é possível implementar Ruby numa virtual machine rápida estão errados. Essa máquina já existe hoje, é chamada GemStone e poderia certamente ser adaptada para rodar Ruby.”

Pois bem, este dia chegou e Avi também envolvido nisso! A InfoQ entrevistou o gerente de produto Bob Walker, e é exatamente o que vocês estão pensando: uma máquina virtual Smalltalk adaptada para suportar Ruby dentro dela.

A idéia é ter um ambiente híbrido que tanto pode ser um substituto ao MRI (drop-in replacement) como também rodar na forma tradicional de persistência do Smalltalk (image). O conceito é muito parecido com o Rubinius, a diferença é que o Rubinius ainda está escrevendo uma VM do zero enquanto a GemStone tem uma VM pronta que eles estão adaptando ao Ruby.

Ela irá gerar bytecode de Ruby, está começando a usar as mesmas specs da linguagem que o Rubinius tem. Eles provavelmente vão ter algo mais concreto para a RailsConf 2008 que acontecerá em 29 de maio.

Portanto, além de YARV, JRuby, IronRuby, Rubinius, MacRuby agora teremos uma versão com uma VM independente robusta, que já é eficiente em rodar Smalltalk, rodando seu primo genético, Ruby. Em breve talvez eles consigam atingir o “ponto de singularidade Rails”, ou seja, poderemos considerar que eles atingiram um ponto “bom” quando forem capazes de rodar uma aplicação não-modificada feita em Rails. Vamos ver!

2 Comments

É muita viagem isso. Credo.

Avi Bryant é um gênio. Ter escolhido Smalltalk para criar produtos fantásticos como Seaside e DabbleDB com certeza demonstra isso.

Porém, diferente dos xiitas, Avi é um pragmático. Antes de Smalltalk ele era desenvolvedor na excelente plataforma WebObjects (ignorada por todos menos a Apple) e com base nisso criou o framework IOWA em Ruby.

Na época, Ruby não tinha o poder de fogo suficiente para levar isso me frente. Resolveu migrar para Smalltalk e com isso o segundo nível de IOWA – inspirado no WebObjects – se tornou Seaside.

Mas o desejo secreto de Avi é poder usar mais Ruby e, talvez, um dia termos um Seaside in Ruby. Eis sua vontade há anos de existir um Ruby que roda sobre um SmalltalkVM e sua afirmação que Smalltalk e Ruby são muito parecidos.

Como era de se esperar, ele estava certo. Em breve talvez tenhamos uma virtual machine GemStone rodando bytecode Ruby e possivelmente rodando aplicações como Rails ainda mais rápido que todas as outras virtual machines, de JRuby a Yarv.

É sem dúvida o melhor de dois mundos.

Leave a Comment