misc #9438

Implementation naming

Added by Zachary Scott 3 months ago. Updated 3 months ago.

[ruby-core:59949]
Status:Open
Priority:Normal
Assignee:Zachary Scott
Category:doc
Target version:current: 2.2.0

Description

There seems to be an unclear decision on what to call this implementation.

We should make a decision between CRuby and MRI and update relating documentation to use one of them.

This discussion is based off a ticket on ruby-lang.org, but also affects ruby-trunk source code as MRI is mentioned periodically.

History

#1 Updated by Martin Dürst 3 months ago

A certain amount of streamlining is certainly a good thing, but we
should be aware that people use both "CRuby" and "MRI", often
indifferently. We should make sure that people who only understand one
of them, or who don't understand either, can still follow the documentation.

Regards, Martin.

On 2014/01/22 11:54, e@zzak.io wrote:

Issue #9438 has been reported by Zachary Scott.


misc #9438: Implementation naming
https://bugs.ruby-lang.org/issues/9438

  • Author: Zachary Scott
  • Status: Open
  • Priority: Normal
  • Assignee: Zachary Scott
  • Category: doc

* Target version: current: 2.2.0

There seems to be an unclear decision on what to call this implementation.

We should make a decision between CRuby and MRI and update relating documentation to use one of them.

This discussion is based off a ticket on ruby-lang.org, but also affects ruby-trunk source code as MRI is mentioned periodically.

#2 Updated by Hiroshi SHIBATA 3 months ago

We should use "Ruby".

#3 Updated by Yorick Peterse 3 months ago

Issue #9438 has been updated by Hiroshi SHIBATA.
We should use "Ruby".

This would imply that MRI is the only Ruby implementation, or at least
the only one that matters. I'd say this is very far from the truth as
there are quite a few different implementations out there. Rubinius and
JRuby are just two but there's also Maglev, Topaz and a few others.

Stating that Ruby and MRI are the same would lead to confusion. Because
of this one might think that JRuby and MRI are the same things when in
reality they're not.

In short, Ruby is the language and not the implementation. I could
create an implementation called CatRuby that's powered by cats, but that
wouldn't make Ruby and CatRuby identical to each other.

Personally I'd stick with MRI/CRuby as those are already the two
commonly used terms. CRuby is a bit more explicit about the underlying
technology whereas MRI is a bit more explicit about the people behind
it.

#4 Updated by Mohamed Wael Khobalatte 3 months ago

Yorick Peterse wrote:

Issue #9438 has been updated by Hiroshi SHIBATA.
We should use "Ruby".

This would imply that MRI is the only Ruby implementation, or at least
the only one that matters. I'd say this is very far from the truth as
there are quite a few different implementations out there. Rubinius and
JRuby are just two but there's also Maglev, Topaz and a few others.

Stating that Ruby and MRI are the same would lead to confusion. Because
of this one might think that JRuby and MRI are the same things when in
reality they're not.

In short, Ruby is the language and not the implementation. I could
create an implementation called CatRuby that's powered by cats, but that
wouldn't make Ruby and CatRuby identical to each other.

This seems to be a non-issue for most other languages. Usually a language X
and its first implementation are used interchangeably, and I would rather stick
to that, i.e. go with "Ruby", since its a common usage. Going out of your way to
make sure people know which implementation is optimizing for a very small
subset of your users.

#5 Updated by Shyouhei Urabe 3 months ago

Should we also change the name of the binary created when you make
to be MRI for instance to let users type MRI -ropen-uri -e... ?

It is almost self-evident that the implementation is explicitly
named ruby.

#6 Updated by Marcus Stollsteimer 3 months ago

I suppose all agree that

  1. this only relates to documentation (not to the binary name), and that
  2. as a general rule "Ruby" should be used whenever possible.

But: There are cases where a distinction between different implementations is necessary.
For instance, cause of this ticket was the text snippet "MRI committers and authors of other Ruby implementations".

IMO "MRI" better identifies which implementation is meant; "CRuby" somehow implies this is the only (relevant) implementation written in C. I can also live with using both terms interchangeably, though.

#7 Updated by Tsuyoshi Sawada 3 months ago

Neither "MRI" nor "CRuby" sounds official. They just emerged out of the community using it. I believe the official name of the implementation is Ruby. When you need to distinguish it from other implementations, I think you can use words like "the original (Ruby) implementation", "original Ruby", "the authentic (Ruby) implementation", "authentic Ruby". Maybe "MRI" would also make sense since it is short for "Matz Ruby implementation", which can be (re)interpreted as "Matz' Ruby implementation", which is explanatory. "CRuby" sounds like a proper noun, while there has not been such official naming, and hence sounds wrong.

But I also wonder how this issue is dealt with in other languages. Maybe we can learn from it.

#8 Updated by Joshua Ballanco 3 months ago

As a point of comparison, I've often heard members of the Python community refer to the original implementation as "CPython". Also, not that this should necessarily carry any weight, but it's worth noting that CPython has its own page on Wikipedia ( http://en.wikipedia.org/wiki/CPython ). I was actually interested to learn that Wikipedia also has an entry for MRI ( http://en.wikipedia.org/wiki/Ruby_MRI ) distinct from the entry for Ruby ( http://en.wikipedia.org/wiki/Ruby_(programming_language) ), though even they seem to be confused as to the correct way to refer to the original implementation stating that it is "also called CRuby".

If I may add one other anecdote to the conversation, I've done a fair amount of speaking on Ruby at conferences and meet ups. More than once I've had the experience of someone unfamiliar with the deeper internal workings of the Ruby community ask me after my talk: "what does MRI mean?". I still often refer to MRI but I have made an effort, at least when speaking publicly, to refer to it as "CRuby" since it seems this is easier for newcomers to grasp quickly.

Also available in: Atom PDF