The important thing to remember about Ruby is that there isn't a big
difference between ``compile time'' and ``runtime.'' It's all the
same. You can add code to a running process. You
can redefine methods on the fly, change their scope from
, and so on. You can even alter basic types, such
Once you get used to this flexibility, it is hard to go back to a
static language such as C++, or even to a half-static language such as
But then, why would you want to?