Alex Hall wrote:
> > Conversely, I can't remember a case where I've ever
> > accidentally
> > iterated over a string when I meant not to.
> > Do you ever return a string from a function where you should have returned
> a list containing one string? Or similarly passed a string to a function?
> Forgotten to put a trailing comma in a singleton tuple? Forgotten to add
> .items() to for key, value in kwargs:?
> > compelling arguments are typically
> > around demonstrating how much code would be demonstrably better with
> > the new behaviour
> > That represents a misunderstanding of my position. I think I'm an outlier
> among the advocates in this thread, but I do not believe that implementing
> any of the ideas in this proposal would significantly affect code that
> lives in the long term. Some code would become slightly better, some
> slightly worse. My concern surrounds the user experience when debugging
> code that accidentally iterates over a string. So it's impossible for me to
> show you code that becomes significantly better because that's not what I'm
> arguing about, and it's unfair to say that quoting people who have
> struggled with these bugs is not evidence for the problem.
> Similarly for jdveiga, I cannot give you "real workable surprising code"
> because I'm talking about code that isn't workable as a result of being
> surprising. I have given examples of real non-working surprising code, and
> I can give more, and if that's not indicative of a real problem then I'm
> very confused and would appreciate more explanation.
> On Mon, Feb 24, 2020 at 7:11 PM Paul Moore p.f.mo...@gmail.com wrote:
> > On Mon, 24 Feb 2020 at 16:23, Alex Hall alex.moj...@gmail.com wrote:
> > Roughly, though I think you might be hearing me
> > wrong. There is lots of
> > existing code that correctly and intentionally iterates over strings. And
> > code that unintentionally does it probably doesn't live for long. But if
> > you took a random sample of all the times that someone has written code
> > that creates new behaviour which iterates over a string, most of them would
> > be mistakes. And essentially the developer was 'wrong' in those instances.
> > In my case, since I can't think of when I've needed to iterate over a
> > string, I've probably been wrong at least 90% of the time.
> > Conversely, I can't remember a case where I've ever accidentally
> > iterated over a string when I meant not to. I can remember many
> > times when I've relied on strings being iterable.
> > Me quoting my experience is neither more nor less valuable than you
> > quoting yours. However, mine aligns with the current behaviour of
> > Python, and keeping things as they are so that my experience doesn't
> > change has no backward compatibility implications. So I don't need to
> > justify a preference that the language does what suits me best :-)
> > I don't think (I haven't checked the thread closely) that anyone is
> > saying your experience/expectation is "wrong". But to be sufficient to
> > result in a change in the language, you have to establish that your
> > behaviour is significantly better than the status quo, and I don't
> > think that you're doing that at the moment. And IMO, you're never
> > likely to do so simply by quoting numbers of people who do or don't
> > prefer the current behaviour - compelling arguments are typically
> > around demonstrating how much code would be demonstrably better with
> > the new behaviour, along with showing that code that is detrimentally
> > affected has an easy workaround. Your .chars() proposal targets the
> > latter question, but neither you, nor anyone else in past iterations
> > of this discussion, have yet come up with anything persuasive for the
> > former, that I'm aware of.
> > Paul
> >

If you can provide a real code of strings wrongdoing, I will be convinced.

On the contrary, you have provided two examples --as long as I can remember-- 
on the expected and implemented behaviour of strings in Python. Nothing wrong 
on language implementation. Just your desire that things work in a different 
manner -- but this is not suffice to change the foundations of any programming 
language: start your own language if you feel so disappointed; Guido did.

I am really eager to be convinced. Please, show us a snippet that proves your 
point of view. If you cannot, accept that Python's string model is just a 
convention and that programming languages are purely conventional. Computation 
is not about Python, or Lisp, or Java, is about algorithms.
_______________________________________________
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/RQTZ464QSQZUVIFROYSTGESP3FR3PFZD/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to