On 7/21/05 8:14 PM, Larry Wall wrote:
> On Thu, Jul 21, 2005 at 03:25:17PM -0400, John Siracusa wrote:
>> The only thing I immediately don't like is the use of the normal identifier
>> character "_" to indicate the "specialness" of a particular variable (or
>> attribute or whatever we're calling them these days).  IMO, a "_" should
>> just be a "_" no matter where it occurs.  Making a leading "_" mean
>> something special (triggering a slew of new semantics) in a particular
>> context seems a bit hacky to me.
>> 
>> Damian may not like the colon, but I couldn't help thinking that the "_"
>> could be replaced with ":" and things would be cleaner.
> 
> Well, but the _ really is part of the name, insofar as it's trying to
> isolate the namespace.  Even with : we had to say that it would probably
> be stored in the symbol table with the leading colon.

Eh, an implementation detail (or, arguably, syntactic sugar for symbol table
lookups, depending on how it was "really" implemented in Parrot).

> Plus history is on the side of leading _ meaning "private implementation
> detail"

Sure, by *convention*, not as imperative magic :)

> and the : is awfully confusing in the neighborhood of adverb pairs.  If it
> were just sigiled variables, the : would probably be fine, but
> 
>     method :foo() {...}
> 
> just has a strangeness to it that won't go away.  Arguably that's a feature,
> but I'm mostly worried with visual confusion with all the other colons
> in Perl 6.

I'm not married to the colon.  Speaking of traits and adverbs, why not use
one of those in the "has" declaration instead?  That'd certainly be a lot
more explicit than the magic leading underscore (although I'm at a loss as
to what the trait would be named...)

-John


Reply via email to