--- layout: main title: Ruby in Ruby sub-title: To implement ruby in ruby hopes make the the mysterious more accessible, shed light in the farthest (ruby) corners, and above all, empower you ---
Ruby is the better tool to do the job. Any software job that is. We who use ruby daily do so because it is more productive, better in almost every way. The only downside is speed and we argue that with cheap resources.
Why it has taken this long to even seriously attempt a ruby implementation in ruby is due to the overwhelming influence of C (folks).
Just a short and subjective list of why ruby is the better tool:
Rails has evolved tremendously from what was already a good start. All the development around it has nurtured ruby developement in all areas. Rails and all those parts make up the most mature and advanced software system i know.
The "rails effect" is due to the accessibility of the system, imho. Ie it is written in ruby.
Ruby itself has not enjoyed this rails effect, and that is because it is written in C (or c++)
It is my firm belief that given a vm in ruby, ruby development will "take off" too. In other words, given an easy way to improve his tools, a developer will do so. Easy means understandable and that means ruby for a ruby developer
The first thing any decent compiler does, is compile itself. It is the maturity test of a language to implement itself in itself, and the time has come for ruby. The mark of growing up is being independant, in ruby's case of C.
Having just learned Assembler, i can attest what a great improvement C is over Assembler. But that was then and it is not just chance that developemnt has been slow in the last 50 years.
There is this attitude C believers elude and since they are the gatekeepers of the os, everyone is fooled into believing only c is fast. Whereas what is true is that static code is fast.
On a very similar note we are lead to believe that os features must be used from c. Whereas system calls are software interrupts and only the c std library makes them look like c functions. But they are not.
So now, are we ready to generate some bytes? even if they are Machine Code. And go to the Source? I say we are!