>I would be happier of we just let the whole nightmare that is the
>indirect object syntax die the death it deserves! :-)

If functions, not indirect object methods, *always* took parens,
then I think without deep thought that this, too, would solve that
problem--amongst others.  I'm not ready to commit to advocating
this, though.  This is a hard enough problem to require more than
a purely reactive response.

>Methods aren't subroutines and I see no benefit -- and many drawbacks --
>in syntactically confusing the two.

Currently you cannot know (in isolation) what's happening with:

    X Y;

This I certainly find quite disturbing.  I often think that should
much prefer that it be

    X(Y);
or
    Y->X;

respectively, yet even that is not sufficient for some cases, 
where 

    Y::->X

instead.  Blech.

Even with 

    X Y Z;

you don't know whether that's

    Y->X(Z)

or 

    X(Y(Z))

or whatnot.

But at some level, I don't think I'd stress to people that "subroutines
aren't methods".  I like to say that methods are a special way of
invoking a subroutine.  Certainly in both cases, you have things
that take arguments and return values, have their own scope, etc.
Only two things differ: inheritance and invocant access.  

But given that these *do* differ, it seems reasonable to require
different things to have different syntaxes.  I hate not knowing
what's going on.

But I will *not* relish typing

    STDERR->print("darn")


--tom

Reply via email to