On Wed, Aug 10, 2011 at 1:40 AM, Mike S. [email protected]
wrote:
Whilst Ruby is probably a perfectly logical and self-consistent language
I personally think it has no right whatsoever to claim least surprise.I’ve always said Matz finds Ruby unsurprising, but that’s because he
wrote it.–
Posted via http://www.ruby-forum.com/.
From artima - The Philosophy of Ruby
Bill V.: In an interview, you said “I designed Ruby to minimize my
surprise. I was very amazed when people around the world told me that
Ruby
reduced their surprise and enhanced their joy of programming. Now I’m
pretty
sure that programmer’s minds are alike all over the world.” Why the
principle of least surprise?
Yukihiro M.: Actually, I didn’t make the claim that Ruby follows
the
principle of least surprise. Someone felt the design of Ruby follows
that
philosophy, so they started saying that. I didn’t bring that up,
actually.
I wanted to minimize my frustration during programming, so I want to
minimize my effort in programming. That was my primary goal in designing
Ruby. I want to have fun in programming myself. After releasing Ruby and
many people around the world got to know Ruby, they said they feel the
way I
feel. They came up with the phrase the principle of least surprise. But
actually, it’s often misunderstood.
Bill V.: How is it misunderstood?
Yukihiro M.: Everyone has an individual background. Someone may
come
from Python, someone else may come from Perl, and they may be surprised
by
different aspects of the language. Then they come up to me and say, “I
was
surprised by this feature of the language, so therefore Ruby violates
the
principle of least surprise.” Wait. Wait. The principle of least
surprise is
not for you only. The principle of least surprise means principle of
least my surprise. And it means the principle of least surprise after
you
learn Ruby very well. For example, I was a C++ programmer before I
started
designing Ruby. I programmed in C++ exclusively for two or three years.
And
after two years of C++ programming, it still surprised me.