A Microsoft#microsoft está preparando uma implementação do Ruby (IronRuby) para a sua plataforma de desenvolvimento, o .NET. Lembro-me que há alguns meses isso foi discutido no fórum rubyonbr, e foi recebido com um pé atrás pelo Taq. A questão levantada foi: o quão compatível seria o IronRuby com a implementação em C do Ruby? (conhecida também como MRI – Matz’s Ruby Interpreter)
O que me surpreendeu é que John Lam, o homem contratado para essa tarefa, embora esteja compromissado com o desenvolvimento de uma versão 100% compatível, não pode olhar o código fonte do MRI. Difícil de acreditar? É o que está dito em diversos sites de pessoas da comunidade Ruby.
Segundo Charles Nutter, um dos caras por trás do JRuby, Jim Hugunin, o implementador do IronPython também teve a mesma restrição, mas com uma vantagem: ele é o autor original do JPython (posteriormente abreviado para Jython), e muito provavelmente John Lam não tem o mesmo nível de experiência com Ruby. Sendo rails o garoto-propaganda do ruby, quanto tempo será que vai demorar pra eles implementarem uma versão ruby capaz de rodar Rails no .NET sem ver o fonte do MRI? Ou melhor: eles vão querer isso?
Enquanto isso, JRuby desponta no horizonte. A versão 1.0 final está próxima de ser lançada, e tem causado agito na comunidade Ruby. E Python, onde fica?
Uns meses atrás eu instalei o Jython apenas para brincar – mas aí eu percebi que ele implementava uma versão compatível com a versão 2.1 do CPython, que já está na 2.5. Isso seria um problema menor, se não tivesse ocorrido uma mudança muito grande no Python2.2: a introdução de new-style classes. Aos poucos, o Jython vai se aproximando da versão 2.2 do Python.
Mas o Jython não atraiu muito a atenção dos Javistas. E os olhos da comunidade Python estão voltados para o PyPy. Transcrevo aqui um trecho de um e-mail que o Leonardo Santagada enviou para a python-brasil:
De modo simples, é um framework pra construir interpretadores. O que isso quer dizer é que tu descreve o teu interpretador usando python (RPython pra ser mais preciso) sem ter especificado particularidades de hardware, ou de gerenciamento de memoria (e mais um bando de coisas). Assim o translator do pypy pega o teu código RPython e traduz ele pra uma plataforma especifica, por exemplo pra gerar um interpretador de python tipo o cpython é produzir um binario para
i386 e powerpc. Mas nessa tradução muitas coisas de legal podem ser feitas, como trocar o gerenciamento de memória, o target ser uma vm de alto nivel (jvm ou a cli do .net) e outras coisas legais.
Uma outra tentativa de explicar é: Eu pego meu interpretador de javascript que é um programa python quase normal (RPython) e com uma tradução gera um binario otimizado pra i386 com suporte ao garbage collector boehm. Ou faz outra transformação e eu tenho um executavel para .net.
sante ver como o processo de re-implementação do Ruby tem ajudado a separar a linguagem(especificação) Ruby do interpretador Ruby. Outro ponto interessante é que essas duas linguagens (Python e Ruby) têm ido onde nenhuma linguagem dinâmica jamais esteve. Além disso, já é possível rodar o Python na série Maemo da Nokia. Com ou sem Microsoft, isso está ficando mais e mais interessante!
Atualização 27/07/2007: Já foi lançado o pre-alfa do Iron Ruby

E o melhor é saber que estamos fazendo parte disto.
*O JRuby foi lançado ontem acho
Bem, o Pypy é realmente um projeto interessante, o Jruby e o Jython tem uma importância relevante, torna o java uma plataforma melhor sem o java
E imagino grandes aplicações escritas em java possam ter python ou ruby como linguagem de scripting ( Eclipse com plugins escritos em Python!!!). Mas assim, pessoalmente eu nunca rodaria uma aplicação rails no java se eu posso ter rodando em um mongrel usando o lighttpd, pound ou Apache como proxy/servidor de arquivos estáticos. Mas deve ter alguma utilidade rails rodar em java, talvez integração com algumas aplicações grandes já feitas, alguns ERPs etc. Lembrando que o novo Ruby que está em desenvolvimento terá uma máquina virtual que deixará ruby mais rápido que o atual (que é lento
).
No caso do Ruby, a vantagem estaria na velocidade inerente do bytecode, mas como você bem lembrou, ruby suportará bytecode em breve! Mas devemos manter em mente que os javistas estão de olho em linguagens dinâmicas
Abraço!