R
Robert Brewer
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
(e-mail address removed)
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
(e-mail address removed)