J2 proposal: keyword
Robert Brewer
fumanchu at amor.org
Sun Aug 22 10:38:49 EDT 2004
Just to put collected wisdom in one spot for now, here's what's in my
draft:
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
Transform).
-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,
confer
-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
MIS
Amor Ministries
fumanchu at amor.org
More information about the Python-list
mailing list