Well, I’m also a beginner at Ruby, so I can’t say too much about it. But
while I was evaluating which language I should prefer to learn, given the
choice between Python and Ruby, there was one major thing that really put me
off of Python. And that was that Python does not protect a class instance’s
datamembers from getting clobbered. I gather that Python conventions
apparently include “Thou shalt not clobber a class instance’s datamembers.”.
But in my experience conventions are a poor substitute for guarantees
that a language tries to enforce. I have a C++ background and I feel that
protecting a class instance’s datamembers is a mark of true (and basic)
object orientation. I may not be comfortable with all of the things Ruby
lets you do to a class and/or it’s instantiations, but it does protect
class datamembers from (accidental) clobberings.
Sincerely,
Martin