J2 paper 0.2.1

Tim Hochberg tim.hochberg at ieee.org
Tue Aug 24 23:32:38 CEST 2004

Robert Brewer wrote:
> First, thanks for the comments!
> Paul Moore wrote:
>>1. I differ on the "it doesn't matter what the keyword is" statement.
>>   On the contrary, my view could completely change depending on the
>>   keyword - I'd loathe "predef", whereas "using" is acceptable to me.
>>   Putting the proposal forward *without* an agreed keyword isn't
>>   (IMHO) fair to people who have this view.
> I understand your emotion, now, but not your reasoning, and in the
> absence of that, I can't generate a fix for the proposal. If you could
> go into more detail *why* you would loathe predef, it would go a long
> way toward allowing a stronger statement in the doc. I feel "using" has
> positives, but I don't know what the negatives of "predef" are. Happy to
> make it stronger if there's an argument in addition to passion. Without
> a logical argument, such a position comes down to "it's ugly", which
> Guido has specifically said he doesn't care about or want to hear.

I agree with Paul that the choice of keyword *is* important. A 
misleading keyword is worse than cryptic punctuation. The keyword is 
lying, while the punctuation is merely silent.

I also agree that predef reads poorly. I presume it's meant to imply 
something like preample or header, but I read it as predefine, which 
makes me think of some sort of evil forward declaration, not a 
decorator. It also just feels wrong to me, not that that carries much 

Not that I'm wild about "using" either. It seems a legitimate gripe that 
'def...using' reads slightly better than the proposed 'using..def' 
syntax, which is probably going to lead to some thinkos down the line. 
Still, even with those gripes "using" is marginally better than "@"

Sadly I don't have any better ideas for a keyword. While I'm on the 
topic, let me point out some of the other keywords mentioned in the 
proposal that read poorly. "amend", "extend" and "qualify" all share a 
common flaw that in normal usage the thing being amended/extended/etc 
should follow the word. Thus the natural reading of:

def bar():

is somewhere between "huh?" and "clearly bar is used to amend foo."



P.S. I commend you on the proposal, it's quite good.

More information about the Python-list mailing list