Perhaps an easier next step would be to get better data about people's
opinions with a simple poll? Is there a standard way to vote on things in
this list?

I say we do a simple approval vote. Everyone ticks all the syntaxes that
they think would be acceptable to include in the language. It's not very
precise but it's easy and may inform what to do next.

Here is a script to generate a bunch of options:

```
for template in [
    'foo(bar, baz="thing", %s)',
    '{"baz": "thing", %s}',
]:
    for affix in ["=", ":", "::"]:
        for rest in [
            f'spam{affix}, stuff{affix}',
            f'{affix}spam, {affix}stuff',
        ]:
            print(template % rest)

for template in [
    'foo(bar, baz="thing", %s, spam, stuff)',
    '{"baz": "thing", %s, spam, stuff}',
]:
    for separator in ["*", "**", ":", "::", "="]:
        print(template % separator)

# These options are currently valid syntax that are guaranteed to fail at
runtime
print("""\
foo(bar, baz="thing", **(spam, stuff))
foo(bar, baz="thing", **{spam, stuff})
{{"baz": "thing", spam, stuff}}
""")
```

The output:

```
foo(bar, baz="thing", spam=, stuff=)
foo(bar, baz="thing", =spam, =stuff)
foo(bar, baz="thing", spam:, stuff:)
foo(bar, baz="thing", :spam, :stuff)
foo(bar, baz="thing", spam::, stuff::)
foo(bar, baz="thing", ::spam, ::stuff)
{"baz": "thing", spam=, stuff=}
{"baz": "thing", =spam, =stuff}
{"baz": "thing", spam:, stuff:}
{"baz": "thing", :spam, :stuff}
{"baz": "thing", spam::, stuff::}
{"baz": "thing", ::spam, ::stuff}
foo(bar, baz="thing", *, spam, stuff)
foo(bar, baz="thing", **, spam, stuff)
foo(bar, baz="thing", :, spam, stuff)
foo(bar, baz="thing", ::, spam, stuff)
foo(bar, baz="thing", =, spam, stuff)
{"baz": "thing", *, spam, stuff}
{"baz": "thing", **, spam, stuff}
{"baz": "thing", :, spam, stuff}
{"baz": "thing", ::, spam, stuff}
{"baz": "thing", =, spam, stuff}
foo(bar, baz="thing", **(spam, stuff))
foo(bar, baz="thing", **{spam, stuff})
{{"baz": "thing", spam, stuff}}
```

Are there any other options to consider? If people think this list looks
complete I can create an online poll with them. I'm open to suggestions
about preferred software/websites.

On Fri, Apr 17, 2020 at 6:41 PM Eric V. Smith <e...@trueblade.com> wrote:

> On 4/17/2020 12:28 PM, Chris Angelico wrote:
> > On Sat, Apr 18, 2020 at 1:54 AM David Mertz <me...@gnosis.cx> wrote:
> >> Hmmm... I disagree with Chris.
> >>
> >> I'm definitely -1 on a magic dangling 'foo=' after variable names. And
> something less than -1 on the even more magic "Lisp symbol that isn't a
> symbol" ':foo'.
> >>
> >> Those are just ugly and mysterious.
> >>
> >> However, I don't HATE the "mode switch" use of '*' or '**' in function
> calls. I've certainly written plenty of code where I use the same variable
> name in the calling scope as I bind in the call. Moreover, function
> *definitions* have an an analogous mode switch with an isolated '*'.
> >>
> > It sounds to me like there's a lot of weak support or weak opposition,
> > with some of it spread between the proposal itself and the individual
> > spellings.
> >
> > Rodrigo, it may be time to start thinking about writing a PEP. If the
> > Steering Council approves, I would be willing to be a (non-core-dev)
> > sponsor; alternatively, there may be others who'd be willing to
> > sponsor it. A PEP will gather all the different syntax options and the
> > arguments for/against each, and will mean we're not going round and
> > round on the same discussion points all the times.
>
> I've been around for a while, and I can't imagine that any of these
> proposals would be accepted (but I've been accused of having a bad
> imagination). I'm saying that not to dissuade anyone from writing a PEP:
> far from it. I think it would be useful to have this on paper and
> accepted or rejected, either way. I'm saying this to set expectations: a
> PEP is a ton of work, and it can be disheartening to put in so much work
> for something that is rejected.
>
> So, I'd be willing to sponsor such a PEP, but I'd be arguing that it get
> rejected.
>
> And  I say this as someone who has maybe 20 hours of work left on a PEP
> of my own that I think has less than a 50% chance of success. I already
> probably have 10 to 15 hours invested in it already.
>
> Eric
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/python-ideas@python.org/message/K46TLULIGNUSYBH3GEK7HFBQSOGRDOHE/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/TVPJ5C7ZFGUSFHWHE6E5D7H2LMG5OYLF/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to