parse / my.sig.net wrote:
> ... 
> The authors praise Ruby for having dropped this "non-standard"
> syntax.  I can see how dropping it would be a selling point if you
> were thinking about enticing people to pick up Ruby after C++, Java
> or Python, and maybe it's just a matter of making reasonable trade
> offs, but if you bracket concerns about people's prior familiarity
> with other languages, I lament the loss of the Smalltalk messaging
> syntax.  For how many years will we be designing new languages that
> look enough like whatever looked enough like C to catch on?

There are other reasons besides wanting to look like C - efficiency
comes to mind, as I suspect the Smalltalk-style syntax can't be parsed
as quickly (somebody who knows the innards of the interpreter, as I
don't claim to, can probably confirm or deny this).  Seems there's a
balance to be struck with regard to verbosity too.  Those missing
prepositions are sometimes clear from context, in which case we don't
miss the extra keystrokes; or they can be creatively or awkwardly wedged
into the method names, but somehow it doesn't seem very necessary to do
that in Ruby.  Though yes, once in a while it isn't clear what order the
params should go in, and I end up having to look it up.

> What Ruby does share with Smalltalk is the use of blocks.  I might
> grow to like blocks, and I'm not denying it's a powerful feature.
> But it is not a feature that lends itself to readable code.  I find
> it much easier to quickly get my head around a Python statement like
> 
>         for each item in myCollection

FWIW, the 'for' in ruby is not much different from that.  I usually
prefer using 'for' rather than 'object.each{}', but not everybody does.
 
> I'm going to keep an open mind about this.  But the decision to
> borrow blocks and drop the Smalltalk messaging syntax is the exact
> opposite of what I would have wished for.

I'm not sure I entirely disagree, though the thing I'm most glad it
didn't inherit from Smalltalk is the programming environment, which as
one of my colleagues says, "helps make sure your mistakes live forever!"
:-)

> But maybe in six months I'll come round.

Or maybe it won't take that long.  Ruby seems to me the language closest
to Smalltalk in spirit and capability.  It doesn't try as hard to mimic
natural language, but you still get a nice high-level feel, and the
ideas tend to flow smoothly into working code.  And its level of
readability is a big step up from Perl's (and Java's too, as far as I'm
concerned).

  -- Mark