There’s been a lot of hype this year about Ruby ‘replacing’ other programing languages and seducing their developers. I think this has masked something far more interesting and much less confrontational: different programing languages are getting much better at working together.
Ruby runs on its own dedicated interpreter but recently there’s been a lot of activity on porting the language to run on VMs predominantly used by other languages, specifically the Java JVM, .Net’s CLR and Perl6’s Parrot. There are also ‘bridges’ that let a non-Ruby application embed a traditional Ruby interpreter. Either method allows developers to mix and match other languages with Ruby.
The main JVM effort (JRuby) is going well:
Ruby on Rails almost running properly within Java
Deploying Ruby on Rails inside Glassfish
And the Ruby Java Bridge lets you use Java classes from within traditionaly executed Ruby apps.
It’s even possible to extend Java classes using Ruby
Microsoft’s .Net developers can join in the Ruby fun too:
Microsoft hires Ruby .Net developers
There are at least two working .Net compilers for Ruby: Ruby.Net and Iron Ruby.
There’s a Ruby bridge for .Net too, called Ruby CLR
Perl’s Parrot VM was the first to talk about re-implementing Ruby and promises great things but sadly has made relatively little progress. Of course, Perl6 itself is taking its time too.
The current Parrotised Ruby is Cardinal. One day Parrot will allow you to build an application from a mix of various languages, including Perl 6 and Ruby, all snuggled up together.
Perl being Perl, there is of course a Ruby bridge for Perl 5.