views:

492

answers:

3

SAP announced Blue Ruby, a version of Ruby that runs inside the ABAP Virtual Machine.

This seems to lend additional credibility to the Ruby language but, except for SAP developers, does this have any applicability to the rest of the Ruby community?

I'm just wondering what other significance this may have. Additional job opportunities, perhaps, for Ruby developers to be hired to work on SAP projects?

Any other potential benefits for Ruby programmers?

Also, something I'm not clear about: Besides MRI and JRuby, how many different implementations are there and why do I, as a Ruby programmer, need any implementation except the MRI? I understand I might need JRuby if I want to integrate with Java libraries. Are there any other times I might need to look into an implementation besides the MRI or JRuby?

I notice that Blue Ruby is compiled. Is that a big benefit and would this be the first compiled version of Ruby?

Sorry - maybe too many questions but this is being discussed as a big deal except I'm not sure why/if it really is. Would be grateful to get some feedback from people who understand Ruby (and I.T.) better than I do.

+2  A: 

Each implementation has its own use cases. JRuby is useful for much the same reasons Jython is. IronRuby will be useful in a .NET environment, when it exists in a usable state.

Things like this make Ruby more acceptable on the Enterprise level, and hasten the spread of Good Programming Languages.

Kalium
+7  A: 

There are actually quite a few alternative implementations. The reason for so many versions is partly because while Ruby itself has a lot of fans, MRI is often considered to be not quite as nice as the language it hosts.

This is a list of all the other Ruby implementations I know of:

  • MRI

  • JRuby for Java. Its speed advantage isn't as great now that Ruby 1.9 is out, but it's still a big player for its integration with Java.

  • IronRuby (still in development) for .NET

  • MacRuby for making native Mac OS X applications. It's currently based on Ruby 1.9, but they're going to release a new LLVM-based virtual machine for the next version, which looks to offer a major speed boost and will hopefully be portable to other LLVM target platforms.

  • MagLev (still very much in development) for high-capacity Web apps. It will probably be a commercial product.

  • Rubinius is a ground-up reimplementation meant as an alternative to MRI with a much cleaner foundation.

I doubt Blue Ruby will have much of an impact on the general software development landscape. It will probably be nice for SAP programmers and allow them to cast a wider net for potential hires since Ruby is somewhat more popular than ABAP.

All of the current Ruby implementations are compiled to bytecode. Contrary to SAP's claims, as of Ruby 1.9, MRI itself includes a bytecode compiler, though the ability to save the compiled bytecode to disk disappeared somewhere in the process of merging the YARV virtual machine. JRuby is compiled into Java .class files. I don't have a lot of details on MagLev, but it seems safe to say it will take that road as well.

Chuck
Note: Ruby 1.9 uses YARV (http://en.wikipedia.org/wiki/YARV) (aka KRI). They're not still calling it MRI in 1.9, are they?
Jordan Brough
MRI+YARV is still generally referred to as "MRI" even though Ko1 wrote the central VM.
Chuck
Nice answer. Thanks. Do you know are any of these other versions compiled or are they all interpreted like MRI (with the exception of Blue Ruby)? It sounds like this doesn't have much use to the average Ruby developer though.
Paul Dexter
I think I'm going to ask another question about this compilation issue. I'm still confused about that. But thanks for the great info.
Paul Dexter
fyi, I posted a new question here that references this answer: http://stackoverflow.com/questions/717490/is-ruby-really-an-interpreted-language-if-all-of-its-implementations-are-compiled
Paul Dexter
+1  A: 

Of course, Blue Ruby is intended for SAP related people. I don't think is going to have much more of an impact on the Ruby community because most Ruby developers are not related to ABAP development.

The main purpose of Blue Ruby is to bring a powerful Scripting Language into the ABAP world, providing more tools for ABAP developers.

You can read my blog on Blue Ruby providing an SE16 (Data table explorer) emulator.

https://weblogs.sdn.sap.com/pub/wlg/14222

Greetings,

Alvaro "Blag" Tejada Galindo.

Senior ABAP Consultant - SAP Mentor.