J2 proposal: keyword

Robert Brewer fumanchu at amor.org
Sun Aug 22 16:38:49 CEST 2004

Just to put collected wisdom in one spot for now, here's what's in my

III. Choosing a keyword

If a keyword is to be chosen over @ or other punctuation, the question
remains, "which word should it be?" Many words have been proposed, and
although we may recommend a small number here, it is more important that
we establish guidelines for the selection of a keyword. The keyword: 

-Should not be used widely as an identifier in existing Python code. 
-Should be easy to remember when writing new code. 
-Should be easy to remember when reading existing code. 
-Should be easy to search for, in both docs and Google. 
-Should not be a word with a planned future. This rules out "with" and
"as" (I should probably footnote this). 
-In this author's opinion (back me up here, people), it should not be a
form of the word "decorate". The term "decorate" conflicts with two
separate concepts: both the GoF Decorator pattern (which is a runtime
wrapper, not a compile-time one), and with our own beloved
"decorate-sort-undecorate" pattern (aka Schwartzian or Guttman-Rosler

-Candidates for keywords have fallen into two or three camps, and
emphasize different aspects of decorators: 

-Declarative: declare, predef, moddef 
-Transformative: transform, wrap, modify, mutate 
-Attributive/Annotative: amend, using, having 
-Directive: pragma, signify 
-Associative: helper, qualify, qual, meta 
-Cross-cutting: imbue, endow, bestow, embellish, extend, accum, glom,
-Prepositions/Adverbs: using, through, per, via, by

I had an ugly paragraph promoting 'declare' as a top candidate, but I've
always liked 'using' (which many of you promoted within the past 24
hours). Maybe the above will produce further polarization among you. ;)

Robert Brewer
Amor Ministries
fumanchu at amor.org

More information about the Python-list mailing list