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!
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With