Ada-Developers-Academy/curriculum — pull request #17 by yaauie (2013-10-02 04:52:16+00:00)
Title: Ruby-the-VM vs. Ruby-the-Language

I'm *especially* open to feedback on this patch.

Separating the concepts of the world-you-create and the language you
use to create it is the one thing that actually made things *click* for me,
and opened the doors for me to dive in deeper and really *understand*
what I was doing instead of copying and pasting from forums.

(cc: @eliseworthy, relevant discussion in #6)

Introduce the Ruby VM and the Ruby Language as two separate but
closely-related concepts. I think this helps combat the "everything in Ruby
is an object except lulz I tricked you these things aren't objects" we had
going on. While I think this is a necessary distinction to make, I'm not
sure I went into enough depth describing each Ruby program as a little universe
consisting only of the concepts introduced in the code it includes. Ruby, of
course, isn't the only way you can interact with the Ruby VM -- yay C-ext in
MRI and Rubinius, & native Java-code in JRuby -- but it is the language *built*
around the concepts that the Ruby VM provides.