"to put it succinctly" -- IMO we shouldn't discuss features without giving thought to their implementation.

On Fri, Jun 23, 2017 at 11:28 AM, Brendan Barnwell <brenbarn@brenbarn.net> wrote:
On 2017-06-23 09:49, Brett Cannon wrote:
Everyone, please be upfront when proposing any ideas if you refuse to
implement your own idea yourself. It's implicit that if you have an idea
to discuss here that you are serious enough about it to see it happen,
so if that's not the case then do say so in your first email (obviously
if your circumstances change during the discussion then that's
understandable). Otherwise people will spend what little spare time they
have helping you think through your idea, and then find out that the
discussion will more than likely end up leading to no change because the
most motivated person behind the discussion isn't motivated enough to
actually enact the change.

And if you lack knowledge in how to implement the idea or a certain area
of expertise, please be upfront about that as well. We have had
instances here where ideas have gone as far as PEPs to only find out the
OP didn't know C which was a critical requirement to implementing the
idea, and so the idea just fell to the wayside and hasn't gone anywhere.
It's totally reasonable to ask for help, but once again, please be
upfront that you will need it to have any chance of seeing your idea
come to fruition.

To be perfectly frank, I personally find it misleading to not be told
upfront that you know you will need help (if you learn later because you
didn't know e.g. C would be required, that's different, but once you do
learn then once again be upfront about it). Otherwise I personally feel
like I was tricked into a discussion under false pretenses that the OP
was motivated enough to put the effort in to see their idea come to be.
Had I known to begin with that no one was actually stepping forward to
make this change happen I would have skipped the thread and spent the
time I put in following the discussion into something more productive
like reviewing a pull request.

        That is a reasonable position, but I think if that's really how this list is supposed to work then it'd be good to state those requirements more explicitly in the list description.  Right now the description (https://mail.python.org/mailman/listinfo/python-ideas) just says the list is for "discussion of speculative language ideas for Python". There is no hint that any particular technical qualifications are required other than having used Python enough to have an idea about how to improve it.  I also don't think such a requirement is obvious even from reading the list traffic (since I've rarely seen anyone explicitly state their inability to implement, as you suggest, although it does sometimes come up later, as in this case).  No doubt this leads to the occasional cockamamie proposal but I think it also allows discussion of useful ideas that otherwise might never be raised.  Also, the description does mention that at some point ideas might get moved on to python-dev; although it's not explicit about how this works, I think that creates a vague impression that thinking about how or whether you can implement an idea might be something for a later stage.

        That said, I don't personally agree with your position here.  My impression of discussion on this list is that a good deal of it doesn't really have to do with implementation at all.  It has to do with the proposal itself in terms of how it would feel to use it, hashing out what its semantics would be, what the benefits would be for code readability, what confusion it might create etc. --- in short, discussion from the perspective of people who USE Python, not people who implement Python.  I think that's good discussion to have even if the proposal eventually stalls because no one with the right skills has the time or inclination to implement it.  It would be a shame for all such discussion to get nipped in the bud just because the person with the original proposal doesn't know C or whatever.  Also, because, as you say, some people don't know what would be needed to implement their ideas, requiring this kind of disclosure might perversely muffle discussion from people who know enough to know they don't know how to implement their idea, while still allowing all the ideas from people who don't even know whether they know how to implement their idea --- and the latter are probably more likely to fall into the cockamamie category.

        I realize you're not proposing that all such discussion be stopped entirely, just that it be tagged as I-can't-implement-this-myself at the outset.  However, your last paragraph suggests to me that the effect might be similar.  You seem to be saying that (some of) those who do know how to implement stuff would like to be able to ignore discussion from anyone who doesn't know how to implement stuff.  That's certainly anyone's prerogative, but I think it would be a shame if this resulted in a bifurcation of the list in which ideas can't reach the attention of people who could implement them unless they're proposed by someone who could do so themselves.  To me, that would somewhat blur the distinction between python-ideas and python-dev, and potentially chill discussion of "mid-level" ideas proposed by people who know enough to have a potentially useful idea, but not enough to bring it to fruition.  We presumably don't want a situation where a person with some amount of knowledge thinks "This might be a good idea. . .  but I don't know how to implement it, so if I bring it up on the list the more knowledgeable people will ignore it, oh well, I guess I won't" --- while a person with no knowledge blithely jumps in with "Golly everyone I have this great idea!"  (I don't mean to say that is directly what you're proposing, but it is the evolution that came to my mind when I read your comment.)

        So to put it succinctly, as someone who's found discussion on this list interesting and valuable, I think there is value in having discussion about "what would Python be like if this idea were implemented" even if we never get very far with "how would we implement this idea in Python".  And I would find it unfortunate if discussion of the former were prematurely restricted by worries about the latter.

Brendan Barnwell
"Do not follow where the path may lead.  Go, instead, where there is no path, and leave a trail."
   --author unknown
Python-ideas mailing list
Code of Conduct: http://python.org/psf/codeofconduct/

--Guido van Rossum (python.org/~guido)