This is an extract from our keynote presentation / PDF that we have online. If you've already read that, then this will bore you. Otherwise, read on...
The Problem
Simply put, writing ruby internals in C requires a mental context switch every time you go from ruby to C and back.
C sucks.
This makes the internals harder to understand.
Which makes it harder to recruit otherwise good coders to work on ruby internals.
Which slows down ruby’s development.
Our Proposal
Implement the whole thing in ruby, and translate to C.
No more context switching.
Able to test changes live in the system.
More understandable internals.
More accessible to others.
Must be in a subset of ruby that is easily translatable to C.
Current Status
We currently have code that can convert the following example code:
def hello(n)
1.upto(n) do
puts "hello world"
end
end