Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why Are There Different Ruby Implementations?

I am a novice programmer who mainly uses Java. Recently I have become interested in Ruby, and when I went to download an IDE, I was surprised to find that there is no single implementation or interpreter of the language. I've been trying to research the issue, but I don't really understand how a language is created well enough to know what to look for.

How is it possible for a single language to have multiple interpreters? Does this mean that there are important differences between them, and what does that mean for the programmer? Please excuse me if this is a misguided question in the first place!

like image 886
cotroxell Avatar asked Apr 20 '11 17:04

cotroxell


2 Answers

Because different language implementors decide to focus on a particular area. For instance, compatibility with the Java runtime (JRuby), or experiment with JIT (rubinius), target Ruby at the enterprise (REE), etc., etc...

This isn't unique to Ruby either, it's healthy in a language, if a particular group sees potential with the language in a certain area, it can help foster growth within that community.

like image 142
jer Avatar answered Sep 27 '22 20:09

jer


Most languages have multiple implementations. It turns out there are tradeoffs that can't always be worked around with a single project.

  • Platform Integration
    The closer you integrate with one platform, the further you are from integration on others. So there is a fundamental choice to make: specialization or generality.

  • Stability
    If you are willing to accept instability, then more ambitious goals can be pursued. So there is a fundamental choice choice to make: development or stability.

  • Management Team
    There is only room for so much management in any given project. The only way to create a new management space is to create a new project. So there is a fundamental choice to make: your project or my project. In a sense, this is the "master reason", as different managers will choose different priorities.

like image 21
DigitalRoss Avatar answered Sep 27 '22 18:09

DigitalRoss