William Djaja Tjokroaminata wrote:
> Hi Christian,
> 
> It is a very interesting reading.  Now I realize more and more that all
> the problems that are explicitly exposed when someone learns C++ do not
> simply disappear in Ruby.  For example, C++ explicitly differentiates
> "+" from "+=", C++ explicitly discusses assignment operator and copy
> constructor, etc.

Moreover I also started a discussion (like you) about the possibility
of extending Ruby by (optional) type constraints to
enable more optimization. Then,I was said these are common
symptoms that Ruby beginners have... :)

> 
> I guess part of the "magic" of Ruby is a conscious design decision on what
> problems are to be suppressed (such as making "a += b" as simply an alias
> of "a = a + b" at the cost of some performance and not providing a deep
> copy method) in its OO design.

Well said.
In fact, I think, matz has a very clear design philosophy:
Conciseness and naturalness has always higher priority than performance.
Of course it does not mean that things are slowed down
unnecessarily, but he never compromises the first for the latter.
This must be hard because there is a lot of temptation, but he
seems to succeed somehow ;)

Best Regards, Christian