Daniel Berger <djberg96 / hotmail.com> wrote:
> Daniel Amelang wrote:
> > (leaving us only Hash.new) than the adding block syntax with empty
> > pipes {|| puts 'eek'}. If the {} hash constructor is the *only* thing
> > between us and making {} refer to blocks and blocks only, I think
> it's
> > worth the loss.
> >
> > Alternatively, you could make [:] the empty hash constructor. Quite a
> > shortcut for an associative array, if I do say so myself :)
> >
> > Dan
> 
> I vote we leave well enough alone.  All this mess so we can avoid
> typing the word "proc"?

What mess?  Daniel's suggestion unifies the Array/Hash literal syntax
in a pleasant way and makes anonymous block creation a bit more
elegant overall.

> As I think David Black mentioned in one of his posts, this doesn't feel
> like a unification of the proc/lambda/Proc/block syntax.  It feels more
> like we're just shifting ownership of "{}" to another class.

I'm not sure if David said that.  I think he also said he didn't like 
{|| puts "eww"} instead of {puts "this r0x0rs!"}.  Unifying the Array/Hash
syntax conveniently provides the latter.  I think David also said to
consider how you might design things if you weren't limited by 
constraints such as backwards compatibility.  People did exactly that.

I'm sure David has other strong opinions that I might have missed though.

Cheers,
Navin.