Re:Ruby Threads and the Global Interpreter Lock in C
by cremno on Thursday November 27, 2014 @04:10PM
(#8668742)
CRuby's standard library is partially written in Ruby.
https://github.com/ruby/ruby/tree/trunk/lib
Rubinius' one (called RubySL) also includes some rewrites of standard libraries, that were originally written in C. And as you may know, Rubinius itself is just Ruby code to some extent.
mruby has some Ruby code, too. Even some parts of the core language are written in it.
Re:Ruby Threads and the Global Interpreter Lock in C
by Argorak on Thursday November 27, 2014 @05:20PM
(#8668935)
Rubinius has been traditionally lagging behind in features (e.g. for a long time didn't implement 1.9 string encoding properly) and wasn't necessarily _that_ much faster.
Also, people that do want to work at the core of a language usually have knowledge of multiple and don't mind using C or any other implementation language.
Ruby stdlib is mostly written in Ruby, btw.
Still, with Rubinius 3.0 coming up, I'm very interested what is coming there.
Re:Ruby Threads and the Global Interpreter Lock in C
by montanalow on Thursday November 27, 2014 @03:37PM
(#8668665)
Rubinius is neat, but for me personally (and I think most of the community) it's performance. Writing C enables optimizations by hand that still yield very significant performance gains over the best of what any other high level language (java, c++, ruby) can muster. I don't want to write C, but I'm glad someone else does so I get the benefits when I write Ruby.
Re:Ruby Threads and the Global Interpreter Lock in C
by FranzVonSuppe on Thursday November 27, 2014 @03:55PM
(#8668703)
I don't understand how you can say Java, C++, and Ruby in the same breath. They are not at all alike. Also what optimizations are available to C which are not in C++? C++ is (almost) a strict superset of C.
Slightly of topic, but can anyone with better knowledge then myself of ruby implementations and internals explain why it hasn't caught much of a following (what it seems anyway, I may be wrong here).
To me it seems like a pretty good idea to implement Ruby mostly in Ruby, since it makes it easier to get contributions (especially to less performance-sensitive parts of the language, e.g. parts of the standard lib).