Publicado por Rafael Rosa em 22 de Novembro de 2009
Lançado o Alpha do MagLev - Uma nova e escalável implementação do Ruby
MagLev é uma "nova" implementação do Ruby criada pela Gemstone Systems com o objetivo de oferecer uma camada de persistência de objetos integrada e um cache compartilhado distribuído - uma implementação realmente escalável do Ruby. Porém, o Maglev tinha uma cara de vaporware, após sua divulgação no começo de 2008 e estava disponível apenas para um pequeno grupo de testadores até agora. Hoje tudo isso mudou, com o lançamento do primeiro alpha público!
Em 2008, o gerente do projeto, Bob Walker, deu uma uma entrevista para o InfoQ sobre ele quando disse que 8 pessoas estavam trabalhando no projeto, ou seja, era um projeto importante. Avi Bryant, um dos desenvolvedores, fez uma breve apresentação na RailsConf 2008 onde explicou o que é o MagLev e também fez algumas demonstrações ao vivo.
Por que você deveria se importar?
Resumidamente o MagLev é legal por várias razões, sendo as duas principais 1) MagLev roda na virtual machine do SmallTalk, o que, dizem, deve trazer ganhos de performance signifcativos à uma linguagem como o Ruby, e 2) o ambiente do MagLev permite, se você quiser, a execução de processos Ruby em múltiplas virtual machines permitindo que compartilhem os mesmos objetos simultaneamente, fazendo com que seja simples de fazê-lo escalar. O vídeo do Avi é excelente se quiser ter uma idéia de como isso funciona:
Apresentação do MagLev na RailsConf 2008 por Monty Williams on Vimeo.
O desenvolvedor Monty Williams deixou bem claro que ainda é uma versão alpha, não beta, então não espere ser capaz de rodar Rails ou qualquer gem que necessite de extensões em C. Isto posto, ele consegue rodar Sinatra, Rack, e RubyGems, e estão fazendo um esforço considerável fazê-lo passar no RubySpec, ou seja, eles não estão fazendo um implementação incompleta.
Se quiser saber mais, siga a equipe do MagLev no Twitter em @MagLev e dê uma olhada na lista de discussão oficial ("maglev-discussion").
Instalação (ou seja, um console do irb que funciona)
Tenha em mente que o MagLev só irá funcionar em versões 64 bit do OS X, Linux, e Solaris, então, se você ainda está no clube dos 32 bit, pode parar por aqui (por enquanto).
Se baixar o script de instalação do MagLev (um pequeno arquivo ZIP), você pode rodar o script installMaglev.sh e instalar a última versão da seguinte maneira:
./installMaglev.sh 22578
O artigo anunciando o lançamento não deixa claro que você deve informar o número da versão. Porém, mencionaram o número 22578, e ele parece funcionar corretamente.
Uma vez instalado, ele dá algumas informações sobre as variáveis de ambiente que você precisará adicionar ao seu arquivo .bashrc ou .bash_profile. Siga as instruções, abra um novo terminal e você poderá abrir uma nova sessão do irb da seguinte maneira:
$ maglev start
startnetldi[Info]: Starting GemStone network server "gs64ldi".
startnetldi[Error]: could not start server
startstone[Info]: Starting Stone repository monitor "maglev".
startstone[Info]: GemStone server 'maglev' has been started.
$ maglev-irb
irb(main):001:0> 20 + 20
=> 40
irb(main):002:0> exit
error , SystemExit Error, nil,
during /Users/peter/Downloads/MagLev-installer/MagLev-22578.MacOSX/bin/maglev-irb
SystemExit Error, nil
Alternativa: Instalação via GitHub
O MagLev também está disponível no GitHub. Para instalá-lo a partir do GitHub:
git clone git://github.com/MagLev/maglev.git cd maglev ./install.sh
.. depois siga as instruções para adicionar o path ao seu .bashrc ou .bash_profile e executar o Rake em um novo console (mas no diretório do maglev).
Se você conseguir fazer alguma coisa interessante com ele, não deixe de enviar um comentário

Clique aqui para adicionar ao del.icio.us


22 de Novembro de 2009 às 10:21
[...] This post was mentioned on Twitter by Ruby Inside Brasil, Rafael Amorim. Rafael Amorim said: RT: @rubyinside_br: Lançado o Alpha do MagLev - Uma nova e escalável implementação do Ruby http://bit.ly/8h9k1D [...]