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
public
to
private, and so on. You can even alter basic types, such
as
Class and
Object.
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
Java.
But then, why would you want to?