On Mon., 28 Sep. 2020, 1:22 am Marco Sulla, <marco.sulla.pyt...@gmail.com>
wrote:

> I like this, but IMHO adding a character at the end of the macro name
> (the exclamation mark), lowers readability.
> I'd prefer a character at the start of the macro, a character that is
> not used as an unary operator.
>

For usage, whether something is a macro or not should either be irrelevant
(when they're used as a more powerful function call or decorator), or else
entirely obvious from the way you use it (when they're defining a new
pseudo-statement), so it doesn't make sense to emphasize the syntactic
marker too much. Putting the marker gives the compiler the info and reader
the info they need without being too obtrusive (and also matches the way
Rust macros are used). Using "!" as a prefix operator is also effectively
already claimed by IPython for shell command execution, so I'd be surprised
if we ever used that spelling for anything else.

For the PEP itself, I'd like to see the bijection macro presented in the
abstract to give context for the specification section. While I've had my
doubts about macros in the past due to the inevitable evolution of
different "dialects" of Python, I think we already hit that point years ago
through sophisticated use of metaclasses and other features (Django code
looks very different from NumPy code, for example). Judicious use of macros
should offer opportunities to make domain specific dialects *easier* for
new users to pick up, rather than harder.

For the specification section, my main question/suggestion would be around
sibling macros: how about calling those "decorator macros" and making the
invocation syntax "@name!" rather than the bare "name!"?

Cheers,
Nick.






>
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/6JLGAL5GMR7BXCLUK5J63UQOEABMXQ74/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to