Charles Nutter <headius / headius.com> wrote:
> I think we should roll back to Evan's original pure-Ruby
> implementation and get rid of all that nasty C++. After all, if we
> truly believe that Ruby makes software development more enjoyable and
> more productive, then it only stands to reason that we should
> eliminate all non-Ruby languages from Ruby implementations.

More seriously, I agree that Ruby should be used whenever it makes sense
and I feel MRI uses too much C.

However, I still spend more time with MRI (than Rubinius) for the
following reasons:

1) From my experience, Rubinius aims to provide a Ruby environment.
   I don't want a "Ruby environment", I want Ruby to be a /part/ of my
   existing Unix environment (which includes sh/awk/sed/perl among
   others).  I like MRI startup is still reasonably fast.  I can
   easily swap out existing pieces of awk/sed for one-off Ruby scripts
   instead of one-off C programs when I need something I can't do as
   easily in awk/sed.

   I could use Perl instead of Ruby, but I prefer Ruby to Perl as a
   language.

2) I have no interest/skill in debugging/fixing C++ bugs in Rubinius.
   I usually fix C bugs in MRI without much effort.  I suspect
   more potential contributors are capable of debugging/fixing C code
   _written_by_other_people_ than C++.
   Of course, more Ruby code would open the door to more maintainers, still.

With better Ruby APIs (like String#byteslice in 1.9.3) and proposed
non-blocking IO methods[1], I think more parts of MRI could be
implemented in Ruby without significant performance loss.

[1] http://redmine.ruby-lang.org/issues/5138