As https://bugs.python.org/issue33257 and https://bugs.python.org/issue33316 showed, Tkinter is broken, for both Py2 and Py3, with both threaded and non-threaded Tcl, since 2002 at least, and no-one gives a damn. This seems to be a testament that very few people are actually interested in or are using it. If that's so, there's no use keeping it in the standard library -- if anything, because there's not enough incentive and/or resources to support it. And to avoid screwing people (=me) up when they have the foolishness to think they can rely on it in their projects -- nowhere in the docs it is said that the module is only partly functional. -- Regards, Ivan
Wow. I guess your code was broken and now you seem really upset. Go punch a bag or something, and then propose something a little more constructive, like adding a warning to the docs. I can assure you that there are many people using apps written using Tkinter (e.g. IDLE) and there's a mailing list as well (tkinter-discuss@python.org). On Wed, May 2, 2018 at 1:51 PM, Ivan Pozdeev via Python-Dev < python-dev@python.org> wrote:
As https://bugs.python.org/issue33257 and https://bugs.python.org/issue3 3316 showed, Tkinter is broken, for both Py2 and Py3, with both threaded and non-threaded Tcl, since 2002 at least, and no-one gives a damn.
This seems to be a testament that very few people are actually interested in or are using it.
If that's so, there's no use keeping it in the standard library -- if anything, because there's not enough incentive and/or resources to support it. And to avoid screwing people (=me) up when they have the foolishness to think they can rely on it in their projects -- nowhere in the docs it is said that the module is only partly functional.
--
Regards, Ivan
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/guido% 40python.org
-- --Guido van Rossum (python.org/~guido)
On 2 May 2018, at 22:51, Ivan Pozdeev via Python-Dev <python-dev@python.org> wrote:
As https://bugs.python.org/issue33257 and https://bugs.python.org/issue33316 showed, Tkinter is broken, for both Py2 and Py3, with both threaded and non-threaded Tcl, since 2002 at least, and no-one gives a damn.
The second issue number doesn’t refer to a Tkinter issue, the former is about a month old and has reactions from a core developer. That’s not “nobody cares”.
This seems to be a testament that very few people are actually interested in or are using it.
Not necessarily, it primarily reflects that CPython is volunteer-driven project. This appears to be related to the interaction of Tkinter and threads, and requires hacking on C code. That seriously shrinks the pool of people that feel qualified to work on this.
If that's so, there's no use keeping it in the standard library -- if anything, because there's not enough incentive and/or resources to support it. And to avoid screwing people (=me) up when they have the foolishness to think they can rely on it in their projects -- nowhere in the docs it is said that the module is only partly functional.
Tkinter is used fairly often as an easily available GUI library and is not much as you imply. I don’t know how save calling GUI code from multiple threads is in general (separate from this Tkinter issue), but do know that this is definitely not save across platforms: at least on macOS calling GUI methods in Apple’s libraries from secondary threads is unsafe unless those methods are explicitly documented as thread-safe. Ronald
--
Regards, Ivan
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/ronaldoussoren%40mac.com
On Wed, May 2, 2018 at 16:55 Ivan Pozdeev via Python-Dev < python-dev@python.org> wrote:
As https://bugs.python.org/issue33257 and https://bugs.python.org/issue33316 showed, Tkinter is broken, for both Py2 and Py3, with both threaded and non-threaded Tcl, since 2002 at least, and no-one gives a damn.
This seems to be a testament that very few people are actually interested in or are using it.
If that's so, there's no use keeping it in the standard library -- if anything, because there's not enough incentive and/or resources to support it. And to avoid screwing people (=me) up when they have the foolishness to think they can rely on it in their projects -- nowhere in the docs it is said that the module is only partly functional.
For the future, this is not how you communicate with the development mailing list of any open source software project. I would suggest reading https://www.python.org/psf/codeofconduct/ for some pointers on how people typically behave around here in particular.
On Wed, 02 May 2018 21:24:07 +0000 Brian Curtin <brian@python.org> wrote:
On Wed, May 2, 2018 at 16:55 Ivan Pozdeev via Python-Dev < python-dev@python.org> wrote:
As https://bugs.python.org/issue33257 and https://bugs.python.org/issue33316 showed, Tkinter is broken, for both Py2 and Py3, with both threaded and non-threaded Tcl, since 2002 at least, and no-one gives a damn.
This seems to be a testament that very few people are actually interested in or are using it.
If that's so, there's no use keeping it in the standard library -- if anything, because there's not enough incentive and/or resources to support it. And to avoid screwing people (=me) up when they have the foolishness to think they can rely on it in their projects -- nowhere in the docs it is said that the module is only partly functional.
For the future, this is not how you communicate with the development mailing list of any open source software project. I would suggest reading https://www.python.org/psf/codeofconduct/ for some pointers on how people typically behave around here in particular.
Perhaps it would be more constructive to address the OP's point than to play speech police. Regards Antoine.
On Wed, 2 May 2018 23:28:22 +0200 Antoine Pitrou <solipsis@pitrou.net> wrote:
On Wed, 02 May 2018 21:24:07 +0000 Brian Curtin <brian@python.org> wrote:
On Wed, May 2, 2018 at 16:55 Ivan Pozdeev via Python-Dev < python-dev@python.org> wrote:
As https://bugs.python.org/issue33257 and https://bugs.python.org/issue33316 showed, Tkinter is broken, for both Py2 and Py3, with both threaded and non-threaded Tcl, since 2002 at least, and no-one gives a damn.
This seems to be a testament that very few people are actually interested in or are using it.
If that's so, there's no use keeping it in the standard library -- if anything, because there's not enough incentive and/or resources to support it. And to avoid screwing people (=me) up when they have the foolishness to think they can rely on it in their projects -- nowhere in the docs it is said that the module is only partly functional.
For the future, this is not how you communicate with the development mailing list of any open source software project. I would suggest reading https://www.python.org/psf/codeofconduct/ for some pointers on how people typically behave around here in particular.
Perhaps it would be more constructive to address the OP's point than to play speech police.
To elaborate a bit: the OP, while angry, produced both a detailed analysis *and* a PR. It's normal to be angry when an advertised feature doesn't work and it makes you lose hours of work (or, even, forces you to a wholesale redesign). Producing a detailed analysis and a PR is more than most people will ever do. Regards Antoine.
So what do *you* think. Do you agree with the OP that Tkinter (and hence IDLE) should be scrapped? On Wed, May 2, 2018 at 2:37 PM, Antoine Pitrou <solipsis@pitrou.net> wrote:
On Wed, 02 May 2018 21:24:07 +0000 Brian Curtin <brian@python.org> wrote:
On Wed, May 2, 2018 at 16:55 Ivan Pozdeev via Python-Dev < python-dev@python.org> wrote:
As https://bugs.python.org/issue33257 and https://bugs.python.org/issue33316 showed, Tkinter is broken, for both Py2 and Py3, with both threaded and non-threaded Tcl, since 2002 at least, and no-one gives a damn.
This seems to be a testament that very few people are actually interested in or are using it.
If that's so, there's no use keeping it in the standard library -- if anything, because there's not enough incentive and/or resources to support it. And to avoid screwing people (=me) up when they have the foolishness to think they can rely on it in their projects -- nowhere in the docs it is said that the module is only partly functional.
For the future, this is not how you communicate with the development mailing list of any open source software project. I would suggest reading https://www.python.org/psf/codeofconduct/ for some pointers on how
On Wed, 2 May 2018 23:28:22 +0200 Antoine Pitrou <solipsis@pitrou.net> wrote: people
typically behave around here in particular.
Perhaps it would be more constructive to address the OP's point than to play speech police.
To elaborate a bit: the OP, while angry, produced both a detailed analysis *and* a PR. It's normal to be angry when an advertised feature doesn't work and it makes you lose hours of work (or, even, forces you to a wholesale redesign). Producing a detailed analysis and a PR is more than most people will ever do.
Regards
Antoine.
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/ guido%40python.org
-- --Guido van Rossum (python.org/~guido)
I have no opinion about scrapping IDLE and Tkinter, but if we don't, I think his concerns deserve addressing instead of being dismissed by wielding the CoC magic wand. Regards Antoine. Le 02/05/2018 à 23:41, Guido van Rossum a écrit :
So what do *you* think. Do you agree with the OP that Tkinter (and hence IDLE) should be scrapped?
On Wed, May 2, 2018 at 2:37 PM, Antoine Pitrou <solipsis@pitrou.net <mailto:solipsis@pitrou.net>> wrote:
On Wed, 2 May 2018 23:28:22 +0200 Antoine Pitrou <solipsis@pitrou.net <mailto:solipsis@pitrou.net>> wrote: > On Wed, 02 May 2018 21:24:07 +0000 > Brian Curtin <brian@python.org <mailto:brian@python.org>> wrote: > > On Wed, May 2, 2018 at 16:55 Ivan Pozdeev via Python-Dev < > > python-dev@python.org <mailto:python-dev@python.org>> wrote: > > > > > As https://bugs.python.org/issue33257 <https://bugs.python.org/issue33257> and > > > https://bugs.python.org/issue33316 <https://bugs.python.org/issue33316> showed, Tkinter is broken, for both > > > Py2 and Py3, with both threaded and non-threaded Tcl, since 2002 at > > > least, and no-one gives a damn. > > > > > > This seems to be a testament that very few people are actually > > > interested in or are using it. > > > > > > If that's so, there's no use keeping it in the standard library -- if > > > anything, because there's not enough incentive and/or resources to > > > support it. And to avoid screwing people (=me) up when they have the > > > foolishness to think they can rely on it in their projects -- nowhere in > > > the docs it is said that the module is only partly functional. > > > > > > For the future, this is not how you communicate with the development > > mailing list of any open source software project. I would suggest reading > > https://www.python.org/psf/codeofconduct/ <https://www.python.org/psf/codeofconduct/> for some pointers on how people > > typically behave around here in particular. > > Perhaps it would be more constructive to address the OP's point than to > play speech police.
To elaborate a bit: the OP, while angry, produced both a detailed analysis *and* a PR. It's normal to be angry when an advertised feature doesn't work and it makes you lose hours of work (or, even, forces you to a wholesale redesign). Producing a detailed analysis and a PR is more than most people will ever do.
Regards
Antoine.
_______________________________________________ Python-Dev mailing list Python-Dev@python.org <mailto:Python-Dev@python.org> https://mail.python.org/mailman/listinfo/python-dev <https://mail.python.org/mailman/listinfo/python-dev> Unsubscribe: https://mail.python.org/mailman/options/python-dev/guido%40python.org <https://mail.python.org/mailman/options/python-dev/guido%40python.org>
-- --Guido van Rossum (python.org/~guido <http://python.org/~guido>)
Hello list, If I may voice my opinion I would like to say that I just built an application using Tkinter using python3. I used it because it was included in python by default and I didn't have to using something like PyQT or any other framework that was heavy. While I agree that the docs can sometimes be confusing, I am not sure that it warrants tossing it out. I am not even sure that my opinion gives much weight but I figured I would just toss in a quick here is my vote and my story about using Tkinter with SqlAlchemy and Py2App to build a native Mac OS X app as of last month. Best Regards, Josh Stephens On May 2, 2018 at 4:46:29 PM, Antoine Pitrou (antoine@python.org) wrote:
I have no opinion about scrapping IDLE and Tkinter, but if we don't, I think his concerns deserve addressing instead of being dismissed by wielding the CoC magic wand.
Regards
Antoine.
Le 02/05/2018 à 23:41, Guido van Rossum a écrit :
So what do *you* think. Do you agree with the OP that Tkinter (and hence IDLE) should be scrapped?
On Wed, May 2, 2018 at 2:37 PM, Antoine Pitrou > > > wrote:
On Wed, 02 May 2018 21:24:07 +0000 Brian Curtin > wrote:
On Wed, May 2, 2018 at 16:55 Ivan Pozdeev via Python-Dev < python-dev@python.org > wrote:
As https://bugs.python.org/issue33257 and https://bugs.python.org/issue33316 showed, Tkinter is broken, for both Py2 and Py3, with both threaded and non-threaded Tcl, since 2002 at least, and no-one gives a damn.
This seems to be a testament that very few people are actually interested in or are using it.
If that's so, there's no use keeping it in the standard library -- if anything, because there's not enough incentive and/or resources to support it. And to avoid screwing people (=me) up when they have the foolishness to think they can rely on it in their projects -- nowhere in the docs it is said that the module is only partly functional.
For the future, this is not how you communicate with the development mailing list of any open source software project. I would suggest reading https://www.python.org/psf/codeofconduct/ for some pointers on how
On Wed, 2 May 2018 23:28:22 +0200 Antoine Pitrou > wrote: people
typically behave around here in particular.
Perhaps it would be more constructive to address the OP's point than to play speech police.
To elaborate a bit: the OP, while angry, produced both a detailed analysis *and* a PR. It's normal to be angry when an advertised feature doesn't work and it makes you lose hours of work (or, even, forces you to a wholesale redesign). Producing a detailed analysis and a PR is more than most people will ever do.
Regards
Antoine.
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: https://mail.python.org/mailman/options/python-dev/guido%40python.org
-- --Guido van Rossum (python.org/~guido )
Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/bsdtux%40gmail.com
On 2018-05-02 22:56, Josh Stephens wrote:
Hello list,
If I may voice my opinion I would like to say that I just built an application using Tkinter using python3. I used it because it was included in python by default and I didn't have to using something like PyQT or any other framework that was heavy. While I agree that the docs can sometimes be confusing, I am not sure that it warrants tossing it out. I am not even sure that my opinion gives much weight but I figured I would just toss in a quick here is my vote and my story about using Tkinter with SqlAlchemy and Py2App to build a native Mac OS X app as of last month.
I have a few applications that use tkiner. Whilst it has its limitations, it's too useful to throw out. It's a battery, not a power station, but batteries have their uses.
Guido van Rossum wrote:
So what do *you* think. Do you agree with the OP that Tkinter (and hence IDLE) should be scrapped?
I don't have an opinion on that, but the issue of whether tkinter should be in the stdlib has been debated at least once before, and I took the OP as saying "maybe we should talk about that again". -- Greg
On 2018-05-02, 21:41 GMT, Guido van Rossum wrote:
So what do *you* think. Do you agree with the OP that Tkinter (and hence IDLE) should be scrapped?
It absolutely impossible to remove Tkinter IMHO (it has been part of stdlib since like forever and people expect it there; its removal would be betrayal on the level of switching = to :=), I have my doubts about IDLE though. I know, the same argument applies, but really, does anybody use IDLE for development for long time, what is its real value for the community? Although, even this argument is questionable, because Python has some affinity with the learning, and IDLE is a nice for first steps nibbling into Python. Best, Matěj -- https://matej.ceplovi.cz/blog/, Jabber: mcepl@ceplovi.cz GPG Finger: 3C76 A027 CA45 AD70 98B5 BC1D 7920 5802 880B C9D8 Only two of my personalities are schizophrenic, but one of them is paranoid and the other one is out to get him.
On Thu, May 03, 2018 at 07:39:05AM +0200, Matěj Cepl wrote:
I have my doubts about IDLE though. I know, the same argument applies, but really, does anybody use IDLE for development for long time
Yes, tons of beginners use it. On the tutor and python-list mailing lists, there are plenty of questions from people using IDLE. -- Steve
On Thursday, May 3, 2018, Steven D'Aprano <steve@pearwood.info> wrote:
On Thu, May 03, 2018 at 07:39:05AM +0200, Matěj Cepl wrote:
I have my doubts about IDLE though. I know, the same argument applies, but really, does anybody use IDLE for development for long time
Yes, tons of beginners use it. On the tutor and python-list mailing lists, there are plenty of questions from people using IDLE.
Turtle is built with Tkinter: https://docs.python.org/3/library/turtle.html IIRC, I used IDLE when first learning Python. Dive Into Python 3 recommends IDLE. http://www.diveintopython3.net/installing-python.html#idle Hopefully this bug is fixed by someone. PyQt and PySide: - are more accessible to screen readers - support QThread, QThreadPool, QRunnable - quamash is an asyncio event loop with/for Qt - PyQtGraph
-- Steve _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/ wes.turner%40gmail.com
[Matěj Cepl <mcepl@cepl.eu>]
It absolutely impossible to remove Tkinter IMHO (it has been part of stdlib since like forever and people expect it there; its removal would be betrayal on the level of switching = to :=), I have my doubts about IDLE though. I know, the same argument applies, but really, does anybody use IDLE for development for long time, what is its real value for the community? Although, even this argument is questionable, because Python has some affinity with the learning, and IDLE is a nice for first steps nibbling into Python.
IDLE isn't just for eager beginners, but also for those so old & senile they're incapable of learning anything new ever again. As proof, IDLE is still _my_ primary Python development environment, used multiple times every day, and I'm so old & out-of-it that I'm +1 on the binding expressions PEP ;-)
On 2018-05-03, 15:56 GMT, Tim Peters wrote:
IDLE isn't just for eager beginners, but also for those so old & senile they're incapable of learning anything new ever again. As proof, IDLE is still _my_ primary Python development environment, used multiple times every day, and I'm so old & out-of-it that I'm +1 on the binding expressions PEP ;-)
Glad to find that such person exists! I thought that you are just a mythical legend, I am glad to be shown otherwise. Best, Matěj Cepl -- https://matej.ceplovi.cz/blog/, Jabber: mcepl@ceplovi.cz GPG Finger: 3C76 A027 CA45 AD70 98B5 BC1D 7920 5802 880B C9D8 To err is human, to purr feline.
On Wed, May 2, 2018 at 5:37 PM Antoine Pitrou <solipsis@pitrou.net> wrote:
On Wed, 02 May 2018 21:24:07 +0000 Brian Curtin <brian@python.org> wrote:
On Wed, May 2, 2018 at 16:55 Ivan Pozdeev via Python-Dev < python-dev@python.org> wrote:
As https://bugs.python.org/issue33257 and https://bugs.python.org/issue33316 showed, Tkinter is broken, for both Py2 and Py3, with both threaded and non-threaded Tcl, since 2002 at least, and no-one gives a damn.
This seems to be a testament that very few people are actually interested in or are using it.
If that's so, there's no use keeping it in the standard library -- if anything, because there's not enough incentive and/or resources to support it. And to avoid screwing people (=me) up when they have the foolishness to think they can rely on it in their projects -- nowhere in the docs it is said that the module is only partly functional.
For the future, this is not how you communicate with the development mailing list of any open source software project. I would suggest reading https://www.python.org/psf/codeofconduct/ for some pointers on how
On Wed, 2 May 2018 23:28:22 +0200 Antoine Pitrou <solipsis@pitrou.net> wrote: people
typically behave around here in particular.
Perhaps it would be more constructive to address the OP's point than to play speech police.
To elaborate a bit: the OP, while angry, produced both a detailed analysis *and* a PR. It's normal to be angry when an advertised feature doesn't work and it makes you lose hours of work (or, even, forces you to a wholesale redesign). Producing a detailed analysis and a PR is more than most people will ever do.
It may be normal to be angry when something doesn't work the way it should, but analyzing and creating a PR aren't the gateway to normalizing this behavior. Sending thousands of people this type of email isn't how it works. To address their point: no, next topic.
On 2 May 2018 at 22:37, Antoine Pitrou <solipsis@pitrou.net> wrote:
To elaborate a bit: the OP, while angry, produced both a detailed analysis *and* a PR. It's normal to be angry when an advertised feature doesn't work and it makes you lose hours of work (or, even, forces you to a wholesale redesign). Producing a detailed analysis and a PR is more than most people will ever do.
His *other* email seems reasonable, and warrants a response, yes. But are we to take the suggestion made here (to drop tkinter) seriously, based on the fact that there's a (rare - at least it appears that the many IDLE users haven't hit it yet) race condition that causes a crash in Python 2.7? (It appears that the problem doesn't happen in the python.org 3.x builds, if I understand the description of the issue). I don't have an opinion on the proposed fixes to tkinter, but I definitely don't think that dropping it is a reasonable option. Nor do I think the tone of his message here is acceptable - regardless of how annoyed he is, posting insults ("no-one gives a damn") about volunteer contributors in a public mailing list isn't reasonable or constructive. Call that "playing speech police" if you want, but I think that being offended or annoyed and saying so is perfectly reasonable. Paul
On Wed, 2 May 2018 22:54:04 +0100 Paul Moore <p.f.moore@gmail.com> wrote:
On 2 May 2018 at 22:37, Antoine Pitrou <solipsis@pitrou.net> wrote:
To elaborate a bit: the OP, while angry, produced both a detailed analysis *and* a PR. It's normal to be angry when an advertised feature doesn't work and it makes you lose hours of work (or, even, forces you to a wholesale redesign). Producing a detailed analysis and a PR is more than most people will ever do.
His *other* email seems reasonable, and warrants a response, yes. But are we to take the suggestion made here (to drop tkinter) seriously, based on the fact that there's a (rare - at least it appears that the many IDLE users haven't hit it yet) race condition that causes a crash in Python 2.7? (It appears that the problem doesn't happen in the python.org 3.x builds, if I understand the description of the issue).
I and others actually suggested it seriously in the past. Now, admittedly, at least IDLE seems better maintained than it used to be -- not sure about Tkinter itself.
Nor do I think the tone of his message here is acceptable - regardless of how annoyed he is, posting insults ("no-one gives a damn") about volunteer contributors in a public mailing list isn't reasonable or constructive. Call that "playing speech police" if you want, but I think that being offended or annoyed and saying so is perfectly reasonable.
Will all due respect, it's sometimes unpredictable what kind of wording Anglo-Saxons will take as an insult, as there's lot of obsequiosity there that doesn't exist in other cultures. To me, "not give a damn" reads like a familiar version of "not care about something", but apparently it can be offensive. Regards Antoine.
On Wed, 2 May 2018 22:54:04 +0100 Paul Moore <p.f.moore@gmail.com> wrote:
To elaborate a bit: the OP, while angry, produced both a detailed analysis *and* a PR. It's normal to be angry when an advertised feature doesn't work and it makes you lose hours of work (or, even, forces you to a wholesale redesign). Producing a detailed analysis and a PR is more than most people will ever do. His *other* email seems reasonable, and warrants a response, yes. But are we to take the suggestion made here (to drop tkinter) seriously,
On 2 May 2018 at 22:37, Antoine Pitrou <solipsis@pitrou.net> wrote: based on the fact that there's a (rare - at least it appears that the many IDLE users haven't hit it yet) race condition that causes a crash in Python 2.7? (It appears that the problem doesn't happen in the python.org 3.x builds, if I understand the description of the issue). In 3.x, Tkinter+threads is broken too, albeit in a different way -- see https://bugs.python.org/issue33412 (this should've been the 2nd link in
On 03.05.2018 1:01, Antoine Pitrou wrote: the initial message, sorry for the mix-up). The 2.x bug also shows in 3.x if it's linked with a nonthreaded version of Tcl (dunno how rare that is, but the code still supports this setup).
I and others actually suggested it seriously in the past. Now, admittedly, at least IDLE seems better maintained than it used to be -- not sure about Tkinter itself.
Nor do I think the tone of his message here is acceptable - regardless of how annoyed he is, posting insults ("no-one gives a damn") about volunteer contributors in a public mailing list isn't reasonable or constructive. Call that "playing speech police" if you want, but I think that being offended or annoyed and saying so is perfectly reasonable. Will all due respect, it's sometimes unpredictable what kind of wording Anglo-Saxons will take as an insult, as there's lot of obsequiosity there that doesn't exist in other cultures. To me, "not give a damn" reads like a familiar version of "not care about something", but apparently it can be offensive. Confirm, never meant this as an insult.
I had to use emotional language to drive the point home that it's not some nitpick, it really causes people serious trouble (I lost a source of income, for the record). Without the emotional impact, my message could easily be ignored as some noise not worth attention. This time, it's just too damn important to allow this possibility. The module being abandoned and unused is truly the only explanation I could think of when seeing that glaring bugs have stayed unfixed for 15 years (an infinity in IT), in an actively developed and highly used software. This may be flattering for my ego, but if the module really is in any production use to speak of, then in all these years, with all this humongous user base, someone, somewhere in the world, at some point, should have looked into this. I don't even program in C professionally, yet was able to diagnose it and make a PR! --- I'll make a PR with the doc warning as Guido suggested unless there are any better ideas. Meanwhile, I'd really appreciate any response to my other message -- it is about actually fixing the issue, and I do need feedback to be able to proceed. No need to delve all the way in and give an official authorization or something. I'm only looking for an opinion poll on which redesign option (if any) looks like the most reasonable way to proceed and/or in line with the big picture (the last one -- to provide a unifying vision -- is _the_ job of a BDFL IIRC).
Regards
Antoine. _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/vano%40mail.mipt.ru
-- Regards, Ivan
On Thu, May 3, 2018 at 12:12 AM, Ivan Pozdeev via Python-Dev < python-dev@python.org> wrote:
On 03.05.2018 1:01, Antoine Pitrou wrote:
On Wed, 2 May 2018 22:54:04 +0100 Paul Moore <p.f.moore@gmail.com> wrote:
On 2 May 2018 at 22:37, Antoine Pitrou <solipsis@pitrou.net> wrote:
To elaborate a bit: the OP, while angry, produced both a detailed analysis *and* a PR. It's normal to be angry when an advertised feature doesn't work and it makes you lose hours of work (or, even, forces you to a wholesale redesign). Producing a detailed analysis and a PR is more than most people will ever do.
His *other* email seems reasonable, and warrants a response, yes. But are we to take the suggestion made here (to drop tkinter) seriously, based on the fact that there's a (rare - at least it appears that the many IDLE users haven't hit it yet) race condition that causes a crash in Python 2.7? (It appears that the problem doesn't happen in the python.org 3.x builds, if I understand the description of the issue).
In 3.x, Tkinter+threads is broken too, albeit in a different way -- see https://bugs.python.org/issue33412 (this should've been the 2nd link in the initial message, sorry for the mix-up).
Tcl (dunno how rare that is, but the code still supports this setup).
I and others actually suggested it seriously in the past. Now, admittedly, at least IDLE seems better maintained than it used to be -- not sure about Tkinter itself.
Nor do I think the tone of his message here is acceptable - regardless
of how annoyed he is, posting insults ("no-one gives a damn") about volunteer contributors in a public mailing list isn't reasonable or constructive. Call that "playing speech police" if you want, but I think that being offended or annoyed and saying so is perfectly reasonable.
Will all due respect, it's sometimes unpredictable what kind of wording Anglo-Saxons will take as an insult, as there's lot of obsequiosity there that doesn't exist in other cultures. To me, "not give a damn" reads like a familiar version of "not care about something", but apparently it can be offensive.
Confirm, never meant this as an insult.
I had to use emotional language to drive the point home that it's not some nitpick, it really causes people serious trouble (I lost a source of income, for the record). Without the emotional impact, my message could easily be ignored as some noise not worth attention. This time, it's just too damn important to allow this possibility.
With respect, I would say you CHOSE to use emotional language. I don't see
The observation in that issue that tkinter and threads should be handled in specific ways is certainly a given for old hands, who have long put the GUI code in one thread with one or more concurrent worker threads typically communicating through queues. But I haven't built anything like that recently, so I couldn't say how helpful the current documenation might be. The 2.x bug also shows in 3.x if it's linked with a nonthreaded version of that much indication that its absence had failed to produce responses, though they may not have been the responses you wanted. Unfortunately the developers are rather too used to this kind of gratuitous abuse and so many of them may have overlooked your detailed analysis of the issues you were experiencing, since constructive contributions don't normally accompany such rants. The module being abandoned and unused is truly the only explanation I could
think of when seeing that glaring bugs have stayed unfixed for 15 years (an infinity in IT), in an actively developed and highly used software. This may be flattering for my ego, but if the module really is in any production use to speak of, then in all these years, with all this humongous user base, someone, somewhere in the world, at some point, should have looked into this. I don't even program in C professionally, yet was able to diagnose it and make a PR!
I think the fact that alarm bells haven't clanged is likely a product of tkinter's relatively small user base, perhaps amplified by dwindling availability of "GYU in one thread" lore. Anyway they have certainly clanged now.
---
I'll make a PR with the doc warning as Guido suggested unless there are any better ideas.
In the absence of other actions this would be a good first step. Thank
you.
Meanwhile, I'd really appreciate any response to my other message -- it is about actually fixing the issue, and I do need feedback to be able to proceed. No need to delve all the way in and give an official authorization or something. I'm only looking for an opinion poll on which redesign option (if any) looks like the most reasonable way to proceed and/or in line with the big picture (the last one -- to provide a unifying vision -- is _the_ job of a BDFL IIRC).
I wouldn't presume to tell Guido his job, given that I've never done it and wouldn't be capable of it. Do you want the £5 opinion poll or the £10 opinion poll? Let's hope nobody here wants an argument ;-) regards Steve
On 2018-05-03 13:24, Steve Holden wrote:
On Thu, May 3, 2018 at 12:12 AM, Ivan Pozdeev via Python-Dev <python-dev@python.org <mailto:python-dev@python.org>> wrote:
On 03.05.2018 1:01, Antoine Pitrou wrote:
On Wed, 2 May 2018 22:54:04 +0100 Paul Moore <p.f.moore@gmail.com <mailto:p.f.moore@gmail.com>> wrote:
On 2 May 2018 at 22:37, Antoine Pitrou <solipsis@pitrou.net <mailto:solipsis@pitrou.net>> wrote:
To elaborate a bit: the OP, while angry, produced both a detailed analysis *and* a PR. It's normal to be angry when an advertised feature doesn't work and it makes you lose hours of work (or, even, forces you to a wholesale redesign). Producing a detailed analysis and a PR is more than most people will ever do.
His *other* email seems reasonable, and warrants a response, yes. But are we to take the suggestion made here (to drop tkinter) seriously, based on the fact that there's a (rare - at least it appears that the many IDLE users haven't hit it yet) race condition that causes a crash in Python 2.7? (It appears that the problem doesn't happen in the python.org <http://python.org> 3.x builds, if I understand the description of the issue).
In 3.x, Tkinter+threads is broken too, albeit in a different way -- see https://bugs.python.org/issue33412 <https://bugs.python.org/issue33412> (this should've been the 2nd link in the initial message, sorry for the mix-up).
The observation in that issue that tkinter and threads should be handled in specific ways is certainly a given for old hands, who have long put the GUI code in one thread with one or more concurrent worker threads typically communicating through queues. But I haven't built anything like that recently, so I couldn't say how helpful the current documenation might be.
Interacting with the GUI only in the main thread is something that I've had to do in other languages (it is/was the recommended practice), so I naturally do the same with Python and tkinter. It's also easier to reason about because you don't get elements of the GUI changing unexpectedly. [snip]
On May 3, 2018 11:56:24 AM MRAB <python@mrabarnett.plus.com> wrote:
On 2018-05-03 13:24, Steve Holden wrote:
On Thu, May 3, 2018 at 12:12 AM, Ivan Pozdeev via Python-Dev <python-dev@python.org <mailto:python-dev@python.org>> wrote:
On 03.05.2018 1:01, Antoine Pitrou wrote:
On Wed, 2 May 2018 22:54:04 +0100 Paul Moore <p.f.moore@gmail.com <mailto:p.f.moore@gmail.com>> wrote:
On 2 May 2018 at 22:37, Antoine Pitrou <solipsis@pitrou.net <mailto:solipsis@pitrou.net>> wrote:
To elaborate a bit: the OP, while angry, produced both a detailed analysis *and* a PR. It's normal to be angry when an advertised feature doesn't work and it makes you lose hours of work (or, even, forces you to a wholesale redesign). Producing a detailed analysis and a PR is more than most people will ever do.
His *other* email seems reasonable, and warrants a response, yes. But are we to take the suggestion made here (to drop tkinter) seriously, based on the fact that there's a (rare - at least it appears that the many IDLE users haven't hit it yet) race condition that causes a crash in Python 2.7? (It appears that the problem doesn't happen in the python.org <http://python.org> 3.x builds, if I understand the description of the issue).
In 3.x, Tkinter+threads is broken too, albeit in a different way -- see https://bugs.python.org/issue33412 <https://bugs.python.org/issue33412> (this should've been the 2nd link in the initial message, sorry for the mix-up).
The observation in that issue that tkinter and threads should be handled in specific ways is certainly a given for old hands, who have long put the GUI code in one thread with one or more concurrent worker threads typically communicating through queues. But I haven't built anything like that recently, so I couldn't say how helpful the current documenation might be.
Interacting with the GUI only in the main thread is something that I've had to do in other languages (it is/was the recommended practice), so I naturally do the same with Python and tkinter. It's also easier to reason about because you don't get elements of the GUI changing unexpectedly.
To add to this, most GUI frameworks disallow modifications outside the main thread altogether. IIRC both GTK+ and Qt require this, or else it's undefined altogether.
[snip] _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/rymg19%40gmail.com
-- Ryan (ライアン) Yoko Shimomura, ryo (supercell/EGOIST), Hiroyuki Sawano >> everyone else https://refi64.com/
On 03.05.2018 20:11, Ryan Gonzalez wrote:
On May 3, 2018 11:56:24 AM MRAB <python@mrabarnett.plus.com> wrote:
On 2018-05-03 13:24, Steve Holden wrote:
On Thu, May 3, 2018 at 12:12 AM, Ivan Pozdeev via Python-Dev <python-dev@python.org <mailto:python-dev@python.org>> wrote:
On 03.05.2018 1:01, Antoine Pitrou wrote:
On Wed, 2 May 2018 22:54:04 +0100 Paul Moore <p.f.moore@gmail.com <mailto:p.f.moore@gmail.com>> wrote:
On 2 May 2018 at 22:37, Antoine Pitrou <solipsis@pitrou.net <mailto:solipsis@pitrou.net>> wrote:
To elaborate a bit: the OP, while angry, produced both a detailed analysis *and* a PR. It's normal to be angry when an advertised feature doesn't work and it makes you lose hours of work (or, even, forces you to a wholesale redesign). Producing a detailed analysis and a PR is more than most people will ever do.
His *other* email seems reasonable, and warrants a response, yes. But are we to take the suggestion made here (to drop tkinter) seriously, based on the fact that there's a (rare - at least it appears that the many IDLE users haven't hit it yet) race condition that causes a crash in Python 2.7? (It appears that the problem doesn't happen in the python.org <http://python.org> 3.x builds, if I understand the description of the issue).
In 3.x, Tkinter+threads is broken too, albeit in a different way -- see https://bugs.python.org/issue33412 <https://bugs.python.org/issue33412> (this should've been the 2nd link in the initial message, sorry for the mix-up).
The observation in that issue that tkinter and threads should be handled in specific ways is certainly a given for old hands, who have long put the GUI code in one thread with one or more concurrent worker threads typically communicating through queues. But I haven't built anything like that recently, so I couldn't say how helpful the current documenation might be.
Interacting with the GUI only in the main thread is something that I've had to do in other languages (it is/was the recommended practice), so I naturally do the same with Python and tkinter. It's also easier to reason about because you don't get elements of the GUI changing unexpectedly.
To add to this, most GUI frameworks disallow modifications outside the main thread altogether. IIRC both GTK+ and Qt require this, or else it's undefined altogether.
You still need some facility (*cough*SendMessage*cough*) to send update commands to the GUI (the model->view link in MVC, presenter->view in MVP). Who and how specifically carries out these commands is unimportant, an implementation detail. Every GUI has an event/message queue exactly for that, that other threads can sent work requests into: https://doc.qt.io/qt-5.10/qcoreapplication.html#postEvent , https://developer.gnome.org/gdk3/stable/gdk3-Threads.html#gdk3-Threads.descr... , https://en.wikipedia.org/wiki/Event_dispatching_thread#Submitting_user_code_... , the aforementioned WinAPI's SendMessage() and PostMessage() just to name a few. Tcl/Tk, being arguably the oldest usable GUI toolkit in existence, has an event queue likewise but doesn't provide a complete event loop implementation, only the building blocks for it. Tkinter fills that gap with its `tk.mainloop()`. It fails to provide a working means to send work into it though. Having to use a second, duplicating event queue and poll it (=busy loop) instead is an obvious crutch.
[snip] _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/rymg19%40gmail.com
-- Ryan (ライアン) Yoko Shimomura, ryo (supercell/EGOIST), Hiroyuki Sawano >> everyone else https://refi64.com/
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/vano%40mail.mipt.ru
-- Regards, Ivan
On 5/2/2018 6:01 PM, Antoine Pitrou wrote:
On Wed, 2 May 2018 22:54:04 +0100 Paul Moore <p.f.moore@gmail.com> wrote:
His *other* email seems reasonable, and warrants a response, yes. But are we to take the suggestion made here (to drop tkinter) seriously, based on the fact that there's a (rare - at least it appears that the many IDLE users haven't hit it yet) race condition that causes a crash in Python 2.7? (It appears that the problem doesn't happen in the python.org 3.x builds, if I understand the description of the issue).
I got the same impression, and indeed got no crashes in 25 tries.
I and others actually suggested it seriously in the past. Now, admittedly, at least IDLE seems better maintained than it used to be -- not sure about Tkinter itself.
Serhiy continues to work on tkinter even though he now works on much else. We just made an overlooked 2to3 fix last week. -- Terry Jan Reedy
On Thu, May 03, 2018 at 12:01:53AM +0200, Antoine Pitrou wrote:
On Wed, 2 May 2018 22:54:04 +0100 Paul Moore <p.f.moore@gmail.com> wrote:
Nor do I think the tone of his message here is acceptable - regardless of how annoyed he is, posting insults ("no-one gives a damn") about volunteer contributors in a public mailing list isn't reasonable or constructive. Call that "playing speech police" if you want, but I think that being offended or annoyed and saying so is perfectly reasonable.
Will all due respect, it's sometimes unpredictable what kind of wording Anglo-Saxons will take as an insult, as there's lot of obsequiosity there that doesn't exist in other cultures. To me, "not give a damn" reads like a familiar version of "not care about something", but apparently it can be offensive.
I'm Anglo-Saxon[1], and honestly I believe that it is thin-skinned to the point of ludicrousness to say that "no-one gives a damn" is an insult. This isn't 1939 when Clark Gable's famous line "Frankly my dear, I don't give a damn" was considered shocking. Its 2018 and to not give a damn is a more forceful way of saying that people don't care, that they are indifferent. It is a truism on the internet that nobody gets to decide for anyone else what they do or don't find offensive, but I think that the respectful and kind response is to interpret Ivan's statement as a cry of anguish and pain, to read it with at least a modicum of sympathy, rather than to read it as an insult and offensive accusation of indifference. (And why should being accused of indifference be offensive? The world is full of things I have neither the time nor inclination to give a damn about. I deny that I ought to feel guilty or ashamed by that fact.) I think Guido's response was great: acknowledge Ivan's pain (apparently he lost a job or some income) without attacking him, neither dismissing Ivan's feelings nor validating them as a tactic for getting his way. Thank you Guido for leading by example. With respect to Paul, I literally cannot imagine why he thinks that *anyone*, not even the tkinter maintainers or developers themselves, ought to feel *offended* by Ivan's words. But I think a clue might be his subsequent use of the word *annoyed*. Is it annoying to be told that "no-one cares" when in fact you care? Of course it can be. It is a perfectly reasonable to feel annoyed. But it isn't reasonable to lash out at every little annoyance. All interpersonal interactions can involve annoyances. And none of us are purely on the receiving end, we all also cause them. None of us are so perfect that we can afford to lash out each time somebody causes some tiny little annoyance. We ought to gloss over the little ones, just as we hope others will swallow *their* annoyance at the things we do. If we're going to be open, respectful and considerate, we have a duty not to have a hair-trigger "I'm offended" response at tiny annoyances. "That's offensive!", in this day and age, is the nuclear weapon of interpersonal conflict, and nothing Ivan said was so terrible that it deserved such an attack. Not if we are to be open, considerate and respectful. We ought to start by respecting the clear emotional pain in his email and not responding by going on the attack. "A soft answer turns away wrath". [1] By culture, not genetics. -- Steve
On 3 May 2018 at 03:26, Steven D'Aprano <steve@pearwood.info> wrote:
Will all due respect, it's sometimes unpredictable what kind of wording Anglo-Saxons will take as an insult, as there's lot of obsequiosity there that doesn't exist in other cultures. To me, "not give a damn" reads like a familiar version of "not care about something", but apparently it can be offensive.
I'm Anglo-Saxon[1], and honestly I believe that it is thin-skinned to the point of ludicrousness to say that "no-one gives a damn" is an insult. This isn't 1939 when Clark Gable's famous line "Frankly my dear, I don't give a damn" was considered shocking. Its 2018 and to not give a damn is a more forceful way of saying that people don't care, that they are indifferent.
Sigh. That's not what I was saying at all. I was trying to point out that Antoine's claim that people should ignore the rhetoric and that complaining about the attitude was unreasonable, was in itself unfair. People have a right to point out that a mail like the OP's was badly worded.
With respect to Paul, I literally cannot imagine why he thinks that *anyone*, not even the tkinter maintainers or developers themselves, ought to feel *offended* by Ivan's words.
Personally, they didn't offend me. I don't pretend to know how others might take them. But they *did* annoy me. I'm frankly sick of people (not on this list) complaining that people who work on projects in their own time, free of charge, "don't care enough" or "are ignoring my requirement". We all do it, to an extent, and it's natural to get frustrated, but the onus is on the person asking for help to be polite and fair. And maybe this response was the one where I finally let that frustration show through. I may read less email for a week or two, just to get a break.
But I think a clue might be his subsequent use of the word *annoyed*. Is it annoying to be told that "no-one cares" when in fact you care? Of course it can be. It is a perfectly reasonable to feel annoyed. But it isn't reasonable to lash out at every little annoyance.
Correct, I'm personally annoyed rather than offended. And maybe I reacted strongly (although my reaction was mainly a defense of people's right to be annoyed or offended, not a direct response to the OP). I *hope* it wasn't "lashing out", but I concede that others may view it differently than I do. It *certainly* isn't against "every little annoyance" though - I've been dealing politely and calmly with *many* entitled and misguided complaints recently (in many lists and fora - no point in trying to go hunting down what I'm referring to ;-)) and this was one too many. I should probably have just shut up and deleted the thread. I *will* stop at this point and not respond again on this thread.
All interpersonal interactions can involve annoyances. And none of us are purely on the receiving end, we all also cause them. None of us are so perfect that we can afford to lash out each time somebody causes some tiny little annoyance. We ought to gloss over the little ones, just as we hope others will swallow *their* annoyance at the things we do.
If we're going to be open, respectful and considerate, we have a duty not to have a hair-trigger "I'm offended" response at tiny annoyances.
While true, this is biased in favour of people who start new threads, allowing them the freedom to not consider other's feelings or situations while expecting the recipients to be forgiving of hyperbole and overstated rhetoric. Relevant xkcd: https://xkcd.com/1984/
"That's offensive!", in this day and age, is the nuclear weapon of interpersonal conflict, and nothing Ivan said was so terrible that it deserved such an attack. Not if we are to be open, considerate and respectful. We ought to start by respecting the clear emotional pain in his email and not responding by going on the attack. "A soft answer turns away wrath".
If that's directed at me, it's unfair. Personally, I consider "it's offensive" to be a mild expression of distaste at what someone says - often used somewhat jokingly, in reference to "political correctness" style jokes. Antoine clearly took it otherwise - his mention of "Anglo Saxon" suggests to me that he feels it's a cultural thing - although if so, he's misinterpreted the relevant cultures as far as I can see. British informal culture in my experience tends to be similar to what I describe above as my view. Or maybe he's just thinking of "people taking too much care to stick within the letter of codes of conduct", I don't know. I'm happy to try to avoid the word "offensive" in my future posts - it clearly has connotations that don't match what I intend. I've said my piece, so I'll leave it at that. I don't want mailing lists to become sterile places where everyone feels unable to speak their mind for fear of upsetting others, but I do think we *all* need to consider the other person's perspective. And I *particularly* think that people who start new threads need to be careful of the tone they want to set for the thread. For me, having to deal with a huge range of people with radically different backgrounds and experiences is one of the biggest benefits of participating in open source, and of the internet in general - I'd hate for that benefit to be stifled by excessive need for "careful" speech. But conversely, we need to respect and learn from those differences, not ignore them. Sermon over, sorry. Paul
On Thu, 3 May 2018 at 01:27 Paul Moore <p.f.moore@gmail.com> wrote:
On 3 May 2018 at 03:26, Steven D'Aprano <steve@pearwood.info> wrote:
Will all due respect, it's sometimes unpredictable what kind of wording Anglo-Saxons will take as an insult, as there's lot of obsequiosity there that doesn't exist in other cultures. To me, "not give a damn" reads like a familiar version of "not care about something", but apparently it can be offensive.
I'm Anglo-Saxon[1], and honestly I believe that it is thin-skinned to the point of ludicrousness to say that "no-one gives a damn" is an insult. This isn't 1939 when Clark Gable's famous line "Frankly my dear, I don't give a damn" was considered shocking. Its 2018 and to not give a damn is a more forceful way of saying that people don't care, that they are indifferent.
Sigh. That's not what I was saying at all. I was trying to point out that Antoine's claim that people should ignore the rhetoric and that complaining about the attitude was unreasonable, was in itself unfair. People have a right to point out that a mail like the OP's was badly worded.
With respect to Paul, I literally cannot imagine why he thinks that *anyone*, not even the tkinter maintainers or developers themselves, ought to feel *offended* by Ivan's words.
Personally, they didn't offend me. I don't pretend to know how others might take them. But they *did* annoy me. I'm frankly sick of people (not on this list) complaining that people who work on projects in their own time, free of charge, "don't care enough" or "are ignoring my requirement". We all do it, to an extent, and it's natural to get frustrated, but the onus is on the person asking for help to be polite and fair. And maybe this response was the one where I finally let that frustration show through. I may read less email for a week or two, just to get a break.
I had the same response as Paul: annoyed. And while Ivan thought he was using "emotional language to drive the point home that it's not some nitpick", it actually had the reverse effect on me and caused me not to care because I don't need to invite annoyance into my life when putting in my personal time into something. No one is saying people can't be upset and if you are ever upset there's something wrong; we're human beings after all. But those of us speaking up about the tone are saying that you can also wait until you're not so upset to write an email. This was never going to be resolved in an hour, so waiting an hour until you're in a better place to write an email that wasn't quite so inflammatory seems like a reasonable thing to ask.
On 03.05.2018 21:31, Brett Cannon wrote:
On Thu, 3 May 2018 at 01:27 Paul Moore <p.f.moore@gmail.com <mailto:p.f.moore@gmail.com>> wrote:
On 3 May 2018 at 03:26, Steven D'Aprano <steve@pearwood.info <mailto:steve@pearwood.info>> wrote:
>> Will all due respect, it's sometimes unpredictable what kind of wording >> Anglo-Saxons will take as an insult, as there's lot of obsequiosity >> there that doesn't exist in other cultures. To me, "not give a damn" >> reads like a familiar version of "not care about something", but >> apparently it can be offensive. > > I'm Anglo-Saxon[1], and honestly I believe that it is thin-skinned to > the point of ludicrousness to say that "no-one gives a damn" is an > insult. This isn't 1939 when Clark Gable's famous line "Frankly my dear, > I don't give a damn" was considered shocking. Its 2018 and to not give a > damn is a more forceful way of saying that people don't care, that they > are indifferent.
Sigh. That's not what I was saying at all. I was trying to point out that Antoine's claim that people should ignore the rhetoric and that complaining about the attitude was unreasonable, was in itself unfair. People have a right to point out that a mail like the OP's was badly worded.
> With respect to Paul, I literally cannot imagine why he thinks that > *anyone*, not even the tkinter maintainers or developers themselves, > ought to feel *offended* by Ivan's words.
Personally, they didn't offend me. I don't pretend to know how others might take them. But they *did* annoy me. I'm frankly sick of people (not on this list) complaining that people who work on projects in their own time, free of charge, "don't care enough" or "are ignoring my requirement". We all do it, to an extent, and it's natural to get frustrated, but the onus is on the person asking for help to be polite and fair. And maybe this response was the one where I finally let that frustration show through. I may read less email for a week or two, just to get a break.
I had the same response as Paul: annoyed. And while Ivan thought he was using "emotional language to drive the point home that it's not some nitpick", it actually had the reverse effect on me and caused me not to care because I don't need to invite annoyance into my life when putting in my personal time into something.
No one is saying people can't be upset and if you are ever upset there's something wrong; we're human beings after all. But those of us speaking up about the tone are saying that you can also wait until you're not so upset to write an email. This was never going to be resolved in an hour, so waiting an hour until you're in a better place to write an email that wasn't quite so inflammatory seems like a reasonable thing to ask.
Let me express things right from the horse's mouth. The sole purpose of the tone was to not let the mesage be flat-out ignored. I had my neutral-toned, to-the-point messages to mailing lists flat-out ignored one too many times for reasons that I can only guess about. This time, the situation was too important to let that happen. Whatever anyone may think of this, it worked. I got my message through, and got the feedback on the topic that I needed to proceed in resolving the problem that caused it. I seriously doubt I could achieve that with a neutral-toned message just stating the facts: dry facts would not show ppl how this could be important ("ah, just another n00b struggling with Tkinter basics" or something).
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/vano%40mail.mipt.ru
-- Regards, Ivan
On Thu, May 3, 2018 at 2:45 PM Ivan Pozdeev via Python-Dev < python-dev@python.org> wrote:
On 03.05.2018 21:31, Brett Cannon wrote:
On Thu, 3 May 2018 at 01:27 Paul Moore <p.f.moore@gmail.com> wrote:
On 3 May 2018 at 03:26, Steven D'Aprano <steve@pearwood.info> wrote:
Will all due respect, it's sometimes unpredictable what kind of wording Anglo-Saxons will take as an insult, as there's lot of obsequiosity there that doesn't exist in other cultures. To me, "not give a damn" reads like a familiar version of "not care about something", but apparently it can be offensive.
I'm Anglo-Saxon[1], and honestly I believe that it is thin-skinned to the point of ludicrousness to say that "no-one gives a damn" is an insult. This isn't 1939 when Clark Gable's famous line "Frankly my dear, I don't give a damn" was considered shocking. Its 2018 and to not give a damn is a more forceful way of saying that people don't care, that they are indifferent.
Sigh. That's not what I was saying at all. I was trying to point out that Antoine's claim that people should ignore the rhetoric and that complaining about the attitude was unreasonable, was in itself unfair. People have a right to point out that a mail like the OP's was badly worded.
With respect to Paul, I literally cannot imagine why he thinks that *anyone*, not even the tkinter maintainers or developers themselves, ought to feel *offended* by Ivan's words.
Personally, they didn't offend me. I don't pretend to know how others might take them. But they *did* annoy me. I'm frankly sick of people (not on this list) complaining that people who work on projects in their own time, free of charge, "don't care enough" or "are ignoring my requirement". We all do it, to an extent, and it's natural to get frustrated, but the onus is on the person asking for help to be polite and fair. And maybe this response was the one where I finally let that frustration show through. I may read less email for a week or two, just to get a break.
I had the same response as Paul: annoyed. And while Ivan thought he was using "emotional language to drive the point home that it's not some nitpick", it actually had the reverse effect on me and caused me not to care because I don't need to invite annoyance into my life when putting in my personal time into something.
No one is saying people can't be upset and if you are ever upset there's something wrong; we're human beings after all. But those of us speaking up about the tone are saying that you can also wait until you're not so upset to write an email. This was never going to be resolved in an hour, so waiting an hour until you're in a better place to write an email that wasn't quite so inflammatory seems like a reasonable thing to ask.
Let me express things right from the horse's mouth.
The sole purpose of the tone was to not let the mesage be flat-out ignored. I had my neutral-toned, to-the-point messages to mailing lists flat-out ignored one too many times for reasons that I can only guess about. This time, the situation was too important to let that happen.
Whatever anyone may think of this, it worked. I got my message through, and got the feedback on the topic that I needed to proceed in resolving the problem that caused it. I seriously doubt I could achieve that with a neutral-toned message just stating the facts: dry facts would not show ppl how this could be important ("ah, just another n00b struggling with Tkinter basics" or something).
As I said on the other thread, that doesn't make it any more acceptable as over time it normalizes the behavior. If enough people want results—because yes, sometimes things break, it's not fun, and sometimes things don't receive response in the most timely fashion—they'll take that tone and sometimes get what they want. Eventually it'll work enough that it becomes more acceptable to behave that way, and eventually the people who are willing to accept that type of behavior will be gone.
EVENTUALLY WE'LL ALL BE SHOUTING ALL THE TIME. Sad. On Thu, May 3, 2018, 11:57 Brian Curtin <brian@python.org> wrote:
On Thu, May 3, 2018 at 2:45 PM Ivan Pozdeev via Python-Dev < python-dev@python.org> wrote:
On 03.05.2018 21:31, Brett Cannon wrote:
On Thu, 3 May 2018 at 01:27 Paul Moore <p.f.moore@gmail.com> wrote:
On 3 May 2018 at 03:26, Steven D'Aprano <steve@pearwood.info> wrote:
Will all due respect, it's sometimes unpredictable what kind of wording Anglo-Saxons will take as an insult, as there's lot of obsequiosity there that doesn't exist in other cultures. To me, "not give a damn" reads like a familiar version of "not care about something", but apparently it can be offensive.
I'm Anglo-Saxon[1], and honestly I believe that it is thin-skinned to the point of ludicrousness to say that "no-one gives a damn" is an insult. This isn't 1939 when Clark Gable's famous line "Frankly my dear, I don't give a damn" was considered shocking. Its 2018 and to not give a damn is a more forceful way of saying that people don't care, that they are indifferent.
Sigh. That's not what I was saying at all. I was trying to point out that Antoine's claim that people should ignore the rhetoric and that complaining about the attitude was unreasonable, was in itself unfair. People have a right to point out that a mail like the OP's was badly worded.
With respect to Paul, I literally cannot imagine why he thinks that *anyone*, not even the tkinter maintainers or developers themselves, ought to feel *offended* by Ivan's words.
Personally, they didn't offend me. I don't pretend to know how others might take them. But they *did* annoy me. I'm frankly sick of people (not on this list) complaining that people who work on projects in their own time, free of charge, "don't care enough" or "are ignoring my requirement". We all do it, to an extent, and it's natural to get frustrated, but the onus is on the person asking for help to be polite and fair. And maybe this response was the one where I finally let that frustration show through. I may read less email for a week or two, just to get a break.
I had the same response as Paul: annoyed. And while Ivan thought he was using "emotional language to drive the point home that it's not some nitpick", it actually had the reverse effect on me and caused me not to care because I don't need to invite annoyance into my life when putting in my personal time into something.
No one is saying people can't be upset and if you are ever upset there's something wrong; we're human beings after all. But those of us speaking up about the tone are saying that you can also wait until you're not so upset to write an email. This was never going to be resolved in an hour, so waiting an hour until you're in a better place to write an email that wasn't quite so inflammatory seems like a reasonable thing to ask.
Let me express things right from the horse's mouth.
The sole purpose of the tone was to not let the mesage be flat-out ignored. I had my neutral-toned, to-the-point messages to mailing lists flat-out ignored one too many times for reasons that I can only guess about. This time, the situation was too important to let that happen.
Whatever anyone may think of this, it worked. I got my message through, and got the feedback on the topic that I needed to proceed in resolving the problem that caused it. I seriously doubt I could achieve that with a neutral-toned message just stating the facts: dry facts would not show ppl how this could be important ("ah, just another n00b struggling with Tkinter basics" or something).
As I said on the other thread, that doesn't make it any more acceptable as over time it normalizes the behavior. If enough people want results—because yes, sometimes things break, it's not fun, and sometimes things don't receive response in the most timely fashion—they'll take that tone and sometimes get what they want. Eventually it'll work enough that it becomes more acceptable to behave that way, and eventually the people who are willing to accept that type of behavior will be gone. _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/guido%40python.org
On Thu, 3 May 2018 at 12:29 Guido van Rossum <gvanrossum@gmail.com> wrote:
EVENTUALLY WE'LL ALL BE SHOUTING ALL THE TIME. Sad.
Yep. And that leads to burn-out. So while Ivan may have lucked out in getting the attention of people who are helped him (and given the wrong kind of positive reinforcement that this approach is reasonable), this can lead to people quitting open source and not being available to help you next time (e.g. notice how it drove Paul Moore over the edge to pull back for a week or so and he may have been the expert you needed for packaging or me for imports; IOW I would say Ivan was lucky this time and may not be so lucky next time). -Brett
On Thu, May 3, 2018, 11:57 Brian Curtin <brian@python.org> wrote:
On Thu, May 3, 2018 at 2:45 PM Ivan Pozdeev via Python-Dev < python-dev@python.org> wrote:
On 03.05.2018 21:31, Brett Cannon wrote:
On Thu, 3 May 2018 at 01:27 Paul Moore <p.f.moore@gmail.com> wrote:
On 3 May 2018 at 03:26, Steven D'Aprano <steve@pearwood.info> wrote:
Will all due respect, it's sometimes unpredictable what kind of wording Anglo-Saxons will take as an insult, as there's lot of obsequiosity there that doesn't exist in other cultures. To me, "not give a damn" reads like a familiar version of "not care about something", but apparently it can be offensive.
I'm Anglo-Saxon[1], and honestly I believe that it is thin-skinned to the point of ludicrousness to say that "no-one gives a damn" is an insult. This isn't 1939 when Clark Gable's famous line "Frankly my dear, I don't give a damn" was considered shocking. Its 2018 and to not give a damn is a more forceful way of saying that people don't care, that they are indifferent.
Sigh. That's not what I was saying at all. I was trying to point out that Antoine's claim that people should ignore the rhetoric and that complaining about the attitude was unreasonable, was in itself unfair. People have a right to point out that a mail like the OP's was badly worded.
With respect to Paul, I literally cannot imagine why he thinks that *anyone*, not even the tkinter maintainers or developers themselves, ought to feel *offended* by Ivan's words.
Personally, they didn't offend me. I don't pretend to know how others might take them. But they *did* annoy me. I'm frankly sick of people (not on this list) complaining that people who work on projects in their own time, free of charge, "don't care enough" or "are ignoring my requirement". We all do it, to an extent, and it's natural to get frustrated, but the onus is on the person asking for help to be polite and fair. And maybe this response was the one where I finally let that frustration show through. I may read less email for a week or two, just to get a break.
I had the same response as Paul: annoyed. And while Ivan thought he was using "emotional language to drive the point home that it's not some nitpick", it actually had the reverse effect on me and caused me not to care because I don't need to invite annoyance into my life when putting in my personal time into something.
No one is saying people can't be upset and if you are ever upset there's something wrong; we're human beings after all. But those of us speaking up about the tone are saying that you can also wait until you're not so upset to write an email. This was never going to be resolved in an hour, so waiting an hour until you're in a better place to write an email that wasn't quite so inflammatory seems like a reasonable thing to ask.
Let me express things right from the horse's mouth.
The sole purpose of the tone was to not let the mesage be flat-out ignored. I had my neutral-toned, to-the-point messages to mailing lists flat-out ignored one too many times for reasons that I can only guess about. This time, the situation was too important to let that happen.
Whatever anyone may think of this, it worked. I got my message through, and got the feedback on the topic that I needed to proceed in resolving the problem that caused it. I seriously doubt I could achieve that with a neutral-toned message just stating the facts: dry facts would not show ppl how this could be important ("ah, just another n00b struggling with Tkinter basics" or something).
As I said on the other thread, that doesn't make it any more acceptable as over time it normalizes the behavior. If enough people want results—because yes, sometimes things break, it's not fun, and sometimes things don't receive response in the most timely fashion—they'll take that tone and sometimes get what they want. Eventually it'll work enough that it becomes more acceptable to behave that way, and eventually the people who are willing to accept that type of behavior will be gone. _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
https://mail.python.org/mailman/options/python-dev/guido%40python.org
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/brett%40python.org
On Thu, May 3, 2018 at 9:13 PM, Brett Cannon <brett@python.org> wrote:
On Thu, 3 May 2018 at 12:29 Guido van Rossum <gvanrossum@gmail.com> wrote:
EVENTUALLY WE'LL ALL BE SHOUTING ALL THE TIME. Sad.
Yep. And that leads to burn-out. So while Ivan may have lucked out in getting the attention of people who are helped him (and given the wrong kind of positive reinforcement that this approach is reasonable), this can lead to people quitting open source and not being available to help you next time (e.g. notice how it drove Paul Moore over the edge to pull back for a week or so and he may have been the expert you needed for packaging or me for imports; IOW I would say Ivan was lucky this time and may not be so lucky next time).
-Brett
Yup. Tolerance has to have its limits, and this came close to abusive behaviour. I suspect others among us might have been guilty of similar behaviours in the past I certainly couldn't cast the first stone), but times change as do standards, and it's certainly not the tone the majority of the readers of this list would want, I believe. Let's hope this message continues to come across loud and clear. regards Steve
On Fri, 4 May 2018 08:23:19 +0100 Steve Holden <steve@holdenweb.com> wrote:
Yup. Tolerance has to have its limits, and this came close to abusive behaviour.
I suspect others among us might have been guilty of similar behaviours in the past I certainly couldn't cast the first stone), but times change as do standards, and it's certainly not the tone the majority of the readers of this list would want, I believe.
Let's hope this message continues to come across loud and clear.
Since Terry Reedy (the IDLE maintainer) responded and refuted (some of?) the OP's assertions, I guess the case is settled. But that's not the same thing as threatening a poster with some accusations of CoC violation, just because the poster happened to use a familiar expression. Personally, I don't want people to be intimidated away from contributing because their English expression differs from that of the dominant (or, rather, most vocal and/or better organized) fraction. Regards Antoine.
Me neither, but I do want people to accept that there are norms, which should usually be observed. S Steve Holden On Fri, May 4, 2018 at 11:14 AM, Antoine Pitrou <solipsis@pitrou.net> wrote:
On Fri, 4 May 2018 08:23:19 +0100 Steve Holden <steve@holdenweb.com> wrote:
Yup. Tolerance has to have its limits, and this came close to abusive behaviour.
I suspect others among us might have been guilty of similar behaviours
in
the past I certainly couldn't cast the first stone), but times change as do standards, and it's certainly not the tone the majority of the readers of this list would want, I believe.
Let's hope this message continues to come across loud and clear.
Since Terry Reedy (the IDLE maintainer) responded and refuted (some of?) the OP's assertions, I guess the case is settled.
But that's not the same thing as threatening a poster with some accusations of CoC violation, just because the poster happened to use a familiar expression.
Personally, I don't want people to be intimidated away from contributing because their English expression differs from that of the dominant (or, rather, most vocal and/or better organized) fraction.
Regards
Antoine.
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/ steve%40holdenweb.com
On 5/3/2018 2:45 PM, Ivan Pozdeev via Python-Dev wrote:
Let me express things right from the horse's mouth.
Ditto, as the only person who responded on the tracker before you posted here and the only person other that Guido to respond on the tracker since and the only person to collect data which mostly refute your claims.
The sole purpose of the tone was to not let the mesage be flat-out ignored. I had my neutral-toned, to-the-point messages to mailing lists flat-out ignored one too many times for reasons that I can only guess about.
For 24 years, from 1994 to 2017, _tkinter.c has gotten 333 revisions at a steady rate, an average of about 1 patch per month. Tkinter's .py files have gotten even more -- 426 -- including 5 in the first 4 months of this year. I think at least 20 different core developers, including me, have been involved over the years. Calling this 'indifference' is dog poo. I believe these patches mostly or all happened from people making relatively calm reports, like you originally did. Other people wait at least a month, or two or three, without *any* response to a patch. If they care, they write a polite note to core-mentorship or pydev. Then someone nearly always responds and reviews their patch.
This time, the situation was too important to let that happen.
The situation was that the tkinter maintainer, Serhiy Storchaka, and a tkinter user, me, had already given you initial responses. I indecated that I considered the issue real and Serhiy promised a review of your patch. The tkinter situation is that if one makes tk calls to the main thread from other threads when using non-thread tcl/tk, bad thinks can happen. No surprise. It turns out that some of the people above have tried but only partly succeeded in making thread calls work even with non-thread tcl/tk. This was generally known, but you added the fact that tcl has a thread compile switch. I do appreciate knowing a concrete reason why different people get different results with the same code. If your patch improves the situation great, but very few people will be affected. This is really not important to people who don't do the above, and not worth disrupting pydev. You appear to claim that your 2nd example, sending fake events to the main thread, reposted to https://bugs.python.org/issue33412, fails even with thread tcl/tk. However, when I tested with 3.6 repository, 3.7 installed, and 3.8 repository builds, it nearly finished rather than failing immediately. When I fixed the deadlock bug, IT RAN TO COMPLETION. TO EVERYONE ELSE: If you want to be helpful, ignore the pydev threads. If you have a tcl thread build, as indicated by the 't' in 'tcl86t.dll' in /dlls, test the example, with my fix, on your machine and report on the tracker.
Whatever anyone may think of this, it worked.
This makes me want to scream. I was about to respond to msg316087 on https://bugs.python.org/issue33257 when I saw the crap about removing tkinter. I considered washing my hands of the issue then and there, to avoid 'rewarding' your nastiness. But because I care about tkinter, I decided to continue on the tracker and then inform you in yesterday's response on the thread that I did so in spite of, not because of, 'this'. Since you ignored me and continue to defend 'this', I say it again, and request that you retract your 'delete tkinter' post. -- Terry Jan Reedy
Whatever anyone may think of this, it worked.
I help on other forums and have two practises that I work at: When asking a question I try to be polite. It may be more challenging to be ultra polite but sometimes it's worthwhile. Being told I am polite online is a much rarer accolade and can lift my day :-) On those being brusk/abusive in asking for help then I don't like to reward that behaviour and someone will tell them it's not necessary. If repeated then the best one can do is ignore them leaving them knowing why. Hopefully it leads to a better community. People have to understand **"Help on the helpers terms".**
On Thu, May 03, 2018 at 06:31:03PM +0000, Brett Cannon wrote:
No one is saying people can't be upset and if you are ever upset there's something wrong; we're human beings after all. But those of us speaking up about the tone are saying that you can also wait until you're not so upset to write an email. This was never going to be resolved in an hour, so waiting an hour until you're in a better place to write an email that wasn't quite so inflammatory seems like a reasonable thing to ask.
Certainly! I'm not defending Ivan's initial email. His tantrum *was* annoying, unreasonable, and unfair to those who do care about tkinter. He could have done better. But *we* should be better too. Our response to Ivan has not been welcoming, and as a community we haven't lived up to our own standards, as we have piled onto him to express our rightous indignation: 1. Guido responded telling Ivan to calm down and work off his frustration elsewhere. And that's where things should have stopped, unless Ivan had persisted in his impoliteness. 2. Brian upped the ante by bringing the CoC into discussion. 3. Paul raised it again by describing Ivan's post as "offensive". 4. And now, Steve H has claimed that Ivan's initial post was bordering on "abusive". We've gone from rightly treating Ivan's post as intemperate and impolite, and telling him to chill, to calling his post "offensive", to "abusive". (Next, I presume, someone will claim to be traumatised by Ivan's email.) Just as Ivan should have waited until he had calmed down before firing off his rant, so we ought to resist the temptation to strike back with hostility at trivial social transgressions, especially from newcomers. This is what Ivan actually said: - Tkinter is broken and partly functional (an opinion with only the most tenuous connection with fact, but hardly abusive); - that nobody cares (factually wrong, but not abusive); - that possibly nobody is using it (factually wrong, but not abusive); - that if that's the case (it isn't), then it should be removed from the std lib (a reasonable suggestion if only the premise had been correct). Intemperate and impolite it certainly was, as well as full of factual inaccuracies, but to call it "close to abusive" is a hostile over- reaction. We ought to be kinder than that. Our response to Ivan has been more hostile, and less open and respectful, than his email that triggered the response. Brett is right to say people can afford to wait a little while before firing off an angry email. But the same applies to us: we too can afford to wait a little while before raising the threat of the CoC over a minor social faux pas. This community isn't so fragile that we have to jump down the throat of a newcomer lest the community immediately collapses into Call Of Duty gamer culture. -- Steve
Thank you Steven! I assume that Brian hadn't seen my response (such crossed messages due to delivery delays are very common in this mailing list). I'd like to use your email (nearly) verbatim to start off the discussion about civility we're going to have at the Language Summit. On Fri, May 4, 2018 at 8:43 AM, Steven D'Aprano <steve@pearwood.info> wrote:
On Thu, May 03, 2018 at 06:31:03PM +0000, Brett Cannon wrote:
No one is saying people can't be upset and if you are ever upset there's something wrong; we're human beings after all. But those of us speaking up about the tone are saying that you can also wait until you're not so upset to write an email. This was never going to be resolved in an hour, so waiting an hour until you're in a better place to write an email that wasn't quite so inflammatory seems like a reasonable thing to ask.
Certainly!
I'm not defending Ivan's initial email. His tantrum *was* annoying, unreasonable, and unfair to those who do care about tkinter. He could have done better.
But *we* should be better too. Our response to Ivan has not been welcoming, and as a community we haven't lived up to our own standards, as we have piled onto him to express our rightous indignation:
1. Guido responded telling Ivan to calm down and work off his frustration elsewhere. And that's where things should have stopped, unless Ivan had persisted in his impoliteness.
2. Brian upped the ante by bringing the CoC into discussion.
3. Paul raised it again by describing Ivan's post as "offensive".
4. And now, Steve H has claimed that Ivan's initial post was bordering on "abusive".
We've gone from rightly treating Ivan's post as intemperate and impolite, and telling him to chill, to calling his post "offensive", to "abusive". (Next, I presume, someone will claim to be traumatised by Ivan's email.)
Just as Ivan should have waited until he had calmed down before firing off his rant, so we ought to resist the temptation to strike back with hostility at trivial social transgressions, especially from newcomers. This is what Ivan actually said:
- Tkinter is broken and partly functional (an opinion with only the most tenuous connection with fact, but hardly abusive);
- that nobody cares (factually wrong, but not abusive);
- that possibly nobody is using it (factually wrong, but not abusive);
- that if that's the case (it isn't), then it should be removed from the std lib (a reasonable suggestion if only the premise had been correct).
Intemperate and impolite it certainly was, as well as full of factual inaccuracies, but to call it "close to abusive" is a hostile over- reaction. We ought to be kinder than that. Our response to Ivan has been more hostile, and less open and respectful, than his email that triggered the response.
Brett is right to say people can afford to wait a little while before firing off an angry email. But the same applies to us: we too can afford to wait a little while before raising the threat of the CoC over a minor social faux pas. This community isn't so fragile that we have to jump down the throat of a newcomer lest the community immediately collapses into Call Of Duty gamer culture.
-- Steve _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/ guido%40python.org
-- --Guido van Rossum (python.org/~guido)
On Fri, May 04, 2018 at 09:04:20AM -0700, Guido van Rossum wrote:
Thank you Steven! I assume that Brian hadn't seen my response (such crossed messages due to delivery delays are very common in this mailing list).
I'd like to use your email (nearly) verbatim to start off the discussion about civility we're going to have at the Language Summit.
Please do. I would be honoured! -- Steve
On 5/4/2018 12:04 PM, Guido van Rossum wrote:
Thank you Steven! I'd like to use your email (nearly) verbatim to start off the discussion about civility we're going to have at the Language Summit.
I won't be there but sounds like a good idea. I hope you consider that bad content as well as bad tone can be uncivil and negatively impact Python development. -- Terry Jan Reedy
On Fri, 4 May 2018 at 09:07 Guido van Rossum <guido@python.org> wrote:
Thank you Steven! I assume that Brian hadn't seen my response (such crossed messages due to delivery delays are very common in this mailing list).
I'd like to use your email (nearly) verbatim to start off the discussion about civility we're going to have at the Language Summit.
And I will also want to say thanks for the email, Steven! I agree with everything you said and that any expectations we have of others should apply equally to anyone on this list in any interaction. And I think it's especially true in our responses as we should try to keep the moral high ground by being examples of what we expect and want from others.
On Fri, May 4, 2018 at 8:43 AM, Steven D'Aprano <steve@pearwood.info> wrote:
On Thu, May 03, 2018 at 06:31:03PM +0000, Brett Cannon wrote:
No one is saying people can't be upset and if you are ever upset there's something wrong; we're human beings after all. But those of us speaking up about the tone are saying that you can also wait until you're not so upset to write an email. This was never going to be resolved in an hour, so waiting an hour until you're in a better place to write an email that wasn't quite so inflammatory seems like a reasonable thing to ask.
Certainly!
I'm not defending Ivan's initial email. His tantrum *was* annoying, unreasonable, and unfair to those who do care about tkinter. He could have done better.
But *we* should be better too. Our response to Ivan has not been welcoming, and as a community we haven't lived up to our own standards, as we have piled onto him to express our rightous indignation:
1. Guido responded telling Ivan to calm down and work off his frustration elsewhere. And that's where things should have stopped, unless Ivan had persisted in his impoliteness.
2. Brian upped the ante by bringing the CoC into discussion.
3. Paul raised it again by describing Ivan's post as "offensive".
4. And now, Steve H has claimed that Ivan's initial post was bordering on "abusive".
We've gone from rightly treating Ivan's post as intemperate and impolite, and telling him to chill, to calling his post "offensive", to "abusive". (Next, I presume, someone will claim to be traumatised by Ivan's email.)
Just as Ivan should have waited until he had calmed down before firing off his rant, so we ought to resist the temptation to strike back with hostility at trivial social transgressions, especially from newcomers. This is what Ivan actually said:
- Tkinter is broken and partly functional (an opinion with only the most tenuous connection with fact, but hardly abusive);
- that nobody cares (factually wrong, but not abusive);
- that possibly nobody is using it (factually wrong, but not abusive);
- that if that's the case (it isn't), then it should be removed from the std lib (a reasonable suggestion if only the premise had been correct).
Intemperate and impolite it certainly was, as well as full of factual inaccuracies, but to call it "close to abusive" is a hostile over- reaction. We ought to be kinder than that. Our response to Ivan has been more hostile, and less open and respectful, than his email that triggered the response.
Brett is right to say people can afford to wait a little while before firing off an angry email. But the same applies to us: we too can afford to wait a little while before raising the threat of the CoC over a minor social faux pas. This community isn't so fragile that we have to jump down the throat of a newcomer lest the community immediately collapses into Call Of Duty gamer culture.
-- Steve _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
https://mail.python.org/mailman/options/python-dev/guido%40python.org
-- --Guido van Rossum (python.org/~guido) _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/brett%40python.org
On 04.05.2018 19:04, Guido van Rossum wrote:
Thank you Steven! I assume that Brian hadn't seen my response (such crossed messages due to delivery delays are very common in this mailing list).
I'd like to use your email (nearly) verbatim to start off the discussion about civility we're going to have at the Language Summit.
Since I won't be present at the summit to tell my side of the story, you can see it below. It's up to you to judge it, but as least you need to know what to judge. In a nutshell, this is an exceptional situation, and I saw no better way that was guaranteed to work. I never meant or mean to use this as a standard tactic, this is only the second such case in my life.
On Fri, May 4, 2018 at 8:43 AM, Steven D'Aprano <steve@pearwood.info <mailto:steve@pearwood.info>> wrote:
On Thu, May 03, 2018 at 06:31:03PM +0000, Brett Cannon wrote:
> No one is saying people can't be upset and if you are ever upset there's > something wrong; we're human beings after all. But those of us speaking up > about the tone are saying that you can also wait until you're not so upset > to write an email. This was never going to be resolved in an hour, so > waiting an hour until you're in a better place to write an email that > wasn't quite so inflammatory seems like a reasonable thing to ask.
Certainly!
I'm not defending Ivan's initial email. His tantrum *was* annoying, unreasonable, and unfair to those who do care about tkinter. He could have done better.
But *we* should be better too. Our response to Ivan has not been welcoming, and as a community we haven't lived up to our own standards, as we have piled onto him to express our rightous indignation:
1. Guido responded telling Ivan to calm down and work off his frustration elsewhere. And that's where things should have stopped, unless Ivan had persisted in his impoliteness.
2. Brian upped the ante by bringing the CoC into discussion.
3. Paul raised it again by describing Ivan's post as "offensive".
4. And now, Steve H has claimed that Ivan's initial post was bordering on "abusive".
We've gone from rightly treating Ivan's post as intemperate and impolite, and telling him to chill, to calling his post "offensive", to "abusive". (Next, I presume, someone will claim to be traumatised by Ivan's email.)
Just as Ivan should have waited until he had calmed down before firing off his rant, so we ought to resist the temptation to strike back with hostility at trivial social transgressions, especially from newcomers. This is what Ivan actually said:
- Tkinter is broken and partly functional (an opinion with only the most tenuous connection with fact, but hardly abusive);
- that nobody cares (factually wrong, but not abusive);
- that possibly nobody is using it (factually wrong, but not abusive);
- that if that's the case (it isn't), then it should be removed from the std lib (a reasonable suggestion if only the premise had been correct).
As I suspected. This is a classic scenario that is occasionally seen anywhere: "everyone is underestimating a problem until a disaster strikes". The team's perception of Tkinter is basically: "well, there are slight issues, and the docs are lacking, but no big deal." Well, this _is_ a big deal. As in, "with 15+ years of experience, 5+ with Python, I failed to produce a working GUI in a week; no-one on the Net, regardless of experience, (including Terry) is ever sure how to do things right; every online tutorial says: "all the industry-standard and expected ways are broken/barred, we have to resort to ugly workarounds to accomplish just about anything"" big deal. This is anything but normal, and all the more shocking in Python where the opposite is the norm. And now, a disaster striked. Not knowing this, I've relied on Tkinter with very much at stake (my income for the two following months, basically), and lost. If that's not a testament just how much damage Tkinter's current state actually does, I dunno what is. Of course, it's up to me to write fixes and all since this is a volunteer project. But I can't do this alone, I must recruit the team's cooperation if I hope to ever be successful. Unless I shatter their current outlook on the matter first, any fixes I provide will likely be dismissed as unneeded or deferred indefinitely as unimportant. There are precedents of that, including with no response whatsoever, and the messages were written neutrally, with a thorough explanation, patch/PR etc. (I do believe the maintainers are doing their best. Still, the mere fact that they chose to work with other tickers over mine shows that they considered those more important. So it does matter if they underestimate a topic.) That's why I had to resort to shock value. First, it would guarantee that my message won't fall on deaf ears this time as well. Second, I had to express, somehow, that there indeed was a systemic disaster, not just your average newbie conundrum, in graphic details to shock the team and disrupt their current way of thinking about the Tkinter case. Putting the question point-blank: "drop/deprecate" -- also helped the shock value, and would also force the team to reassess if they really have the will or resources to bring the module up to Python standards or at least prevent any more such damage. I also did require the team's feedback on this question to assess the perspectives for results of my efforts -- thus if they're worth the time -- as explained in https://mail.python.org/pipermail/python-dev/2018-May/153330.html . By no means I consider this a standard way of action. This is only the second such case in my life. The previous one was when I created a translation project for the GPL and found that I cannot legally do that the way that was required to make it work due to overly defensive FSF's terms. This is the justification. It's up to you to judge how sound it is, but you need to know what to judge, at least. I wasn't happy to have to resort to this, but found no better way that would be guaranteed to work. Now that the social issues are out of the way and I got the required feedback to continue, I can finally concentrate on the patches, with confidence that my efforts won't go to waste.
Intemperate and impolite it certainly was, as well as full of factual inaccuracies, but to call it "close to abusive" is a hostile over- reaction. We ought to be kinder than that. Our response to Ivan has been more hostile, and less open and respectful, than his email that triggered the response.
Brett is right to say people can afford to wait a little while before firing off an angry email. But the same applies to us: we too can afford to wait a little while before raising the threat of the CoC over a minor social faux pas. This community isn't so fragile that we have to jump down the throat of a newcomer lest the community immediately collapses into Call Of Duty gamer culture.
-- Steve _______________________________________________ Python-Dev mailing list Python-Dev@python.org <mailto:Python-Dev@python.org> https://mail.python.org/mailman/listinfo/python-dev <https://mail.python.org/mailman/listinfo/python-dev> Unsubscribe: https://mail.python.org/mailman/options/python-dev/guido%40python.org <https://mail.python.org/mailman/options/python-dev/guido%40python.org>
-- --Guido van Rossum (python.org/~guido <http://python.org/%7Eguido>)
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/vano%40mail.mipt.ru
-- Regards, Ivan
The below is really just making this whole situation worse. On Sat, May 5, 2018 at 8:22 PM, Ivan Pozdeev via Python-Dev < python-dev@python.org> wrote:
As I suspected. This is a classic scenario that is occasionally seen anywhere: "everyone is underestimating a problem until a disaster strikes". The team's perception of Tkinter is basically: "well, there are slight issues, and the docs are lacking, but no big deal."
Well, this _is_ a big deal. As in, "with 15+ years of experience, 5+ with
Python, I failed to produce a working GUI in a week; no-one on the Net, regardless of experience, (including Terry) is ever sure how to do things right; every online tutorial says: "all the industry-standard and expected ways are broken/barred, we have to resort to ugly workarounds to accomplish just about anything"" big deal. This is anything but normal, and all the more shocking in Python where the opposite is the norm.
This is simply objectively wrong, and still rather insulting to the core developers. The real-world fact is that many people—including the authors of IDLE, which is included with Python itself—use Tkinter to develop friendly, working, GUIs. Obviously, there *is* a way to make Tkinter work. I confess I haven't worked with it for a while, and even when I had, it was fairly toy apps. I never saw any terrible problems, but I confess I also never pushed the edges of it. It's quite possible, even likely, that some sufficiently complicated GUI apps are better off eschewing Tkinter and using a different GUI library. It's also quite possible that the documentation around Tkinter could be improved to convey more accurate messaging around this (and to convey the common pattern of "GUI in one thread, workers in other threads."
And now, a disaster striked. Not knowing this, I've relied on Tkinter with very much at stake (my income for the two following months, basically), and lost. If that's not a testament just how much damage Tkinter's current state actually does, I dunno what is.
I've sunk two months each into trying to wrestle quite a large number of frameworks or libraries to do what I want. Sometimes I finally made it work, other times not. That's the reality of software development. Sometimes the problems were bugs per se, other times limits of my understanding. Often the problems were with extremely widely used and "solid" libraries (not just in Python, across numerous languages). There are a few recurring posters here and on python-ideas of whom I roll my eyes when I see a post is from them... I think most actual core contributors simply have them on auto-delete filters by now. I don't know where the threshold is exactly, but I suspect you're getting close to that with this post. Yours, David... -- Keeping medicines from the bloodstreams of the sick; food from the bellies of the hungry; books from the hands of the uneducated; technology from the underdeveloped; and putting advocates of freedom in prisons. Intellectual property is to the 21st century what the slave trade was to the 16th.
On Sun, May 6, 2018 at 10:22 AM, Ivan Pozdeev via Python-Dev <python-dev@python.org> wrote:
Well, this _is_ a big deal. As in, "with 15+ years of experience, 5+ with Python, I failed to produce a working GUI in a week; no-one on the Net, regardless of experience, (including Terry) is ever sure how to do things right; every online tutorial says: "all the industry-standard and expected ways are broken/barred, we have to resort to ugly workarounds to accomplish just about anything"" big deal. This is anything but normal, and all the more shocking in Python where the opposite is the norm.
And now, a disaster striked. Not knowing this, I've relied on Tkinter with very much at stake (my income for the two following months, basically), and lost. If that's not a testament just how much damage Tkinter's current state actually does, I dunno what is.
What exactly didn't work? I don't understand. What online tutorials are telling you that everything is broken, and how can you lose two months' income because things are exactly as broken as everything tells you? As far as I can tell, you ran into problems when you tried to put GUI operations onto a thread other than the main thread. Okay, so maybe that's a limitation that bit you, but I can't accept that this is "industry-standard". In fact, I would be much more inclined to say that the industry standard is single-threaded code, given how terrified a lot of people are of concurrency in general. (Not everyone, but a lot of people.) As long as your GUI operations happen on your main thread, you should be fine. I told my brother about that consideration recently, and the solution was simple: instead of doing socket operations on the main thread and GUI operations on a secondary thread, just switch them around. It's really that simple. So what actually went wrong when you tried, and how did you manage to get so far into it before disaster that you lost two months' income? Tkinter is an important part of Python's ecosystem. It isn't the greatest GUI toolkit (and it isn't trying to be), and it isn't stopping people from using GTK or Qt or wxWindows, but Tk and Tkinter can be depended on much more easily, since that's part of the standard library. If they were "broken" or "unusable", people would have figured that out by now. so that part is very definitely exaggeration. So if your words are not just empty hyperbole, be specific: what is broken? If I'm considering using Tkinter for something, what *precisely* do I need to be aware of? Is it just using Tkinter from threads other than the main thread? ChrisA
On Sun, May 06, 2018 at 11:09:21AM +1000, Chris Angelico wrote:
What exactly didn't work? I don't understand.
https://bugs.python.org/issue33412 -- Steve
On Sun, May 6, 2018 at 11:39 AM, Steven D'Aprano <steve@pearwood.info> wrote:
On Sun, May 06, 2018 at 11:09:21AM +1000, Chris Angelico wrote:
What exactly didn't work? I don't understand.
I've read it and I still don't fully understand the problem. Is it ALL of Tkinter that fails in threaded mode? Is it just certain specific calls? Are there calls that fail in single-threaded programs? If the given test-case is the only thing that fails, it's a horrific exaggeration to say that Tkinter is broken. But I don't know how far it can be generalized. ChrisA
On 5/5/2018 9:45 PM, Chris Angelico wrote:
On Sun, May 6, 2018 at 11:39 AM, Steven D'Aprano <steve@pearwood.info> wrote:
On Sun, May 06, 2018 at 11:09:21AM +1000, Chris Angelico wrote:
What exactly didn't work? I don't understand.
I've read it and I still don't fully understand the problem.
Chris this is an excellent series of questions. I think I have enough knowledge to answer somewhat adequately. This is partly thanks to things people like you and Steven have posted on python-list abouts threads, deadlocks, and volatile conditions, and partly thanks to Ivan's contribution on the thread above and https://bugs.python.org/issue33257.
Is it ALL of Tkinter that fails in threaded mode?
No. It is non-threaded tcl that fails in threaded mode, along with tkinter's attempt to make non-thread tcl work anyway. There are at least two different cases. Ivan has clarified the following. 1. Tcl has a 'threads' compile switch. 2. The default changed from 'off' for 8.5 and before to 'on' for 8.6. 3. When compiled with thread support, the resulting library file has t suffix. 4. The Windows installer for 2.7 installs tcl85.dll while at least 3.6 and later install tcl86t.dll. Hence things work that did not work before. 5. Changing 2.7 to tcl85t.dll and tk85t.dll could break 3rd code that interfaces to the .dlls. _tkinter is written with #ifdefs to accommodate thread or no thread compiles, but any code written just for the no-t version would could fail with the t version.
Is it just certain specific calls?
33257 is about calling widget modification methods from threads. The _tkinter code to make this work with non-t tcl fails haphazardly in maybe 1 in 10000 calls. Ivan signed the CA and submitted a PR which he claims fixes the Python and Tcl locking. Serhiy has not reviewed this yet. 33412 is about calling event_generate from threads. For non-t tcl and more than one thread making such calls, the example fails immediately. With thread tcl, the same example ran until it deadlocked during shutdown cleanup. I found one way to almost certainly avoid it. Ivan found a better way, which I am thinking about making part of a new doc section on tkinter and threads.
Are there calls that fail in single-threaded programs?
This is a different issue. I don't know of much of anything except a few things on MacOS, due to tcl/tk bugs or Apple changing the graphics system.
If the given test-case is the only thing that fails, Neither fails with properly written code when using the thread build of tcl.
it's a horrific exaggeration to say that Tkinter is broken.
Yep. But I don't care any more what Ivan writes here. I am sorry he lost a job bid or whatever. I appreciate what he has contributed on the tracker, in his more rational mode. -- Terry Jan Reedy
On Sun, May 6, 2018 at 6:54 PM, Terry Reedy <tjreedy@udel.edu> wrote:
Is it ALL of Tkinter that fails in threaded mode?
No. It is non-threaded tcl that fails in threaded mode, along with tkinter's attempt to make non-thread tcl work anyway. There are at least two different cases.
Ivan has clarified the following. 1. Tcl has a 'threads' compile switch. 2. The default changed from 'off' for 8.5 and before to 'on' for 8.6. 3. When compiled with thread support, the resulting library file has t suffix.
Okay, that makes a HUGE difference. Thank you for clarifying. So, in theory, threads SHOULD be supported, which means that bug reports of the nature of "this fails in threaded mode" are 100% valid. If it were up to me, I would deprecate non-threaded mode immediately, with a view to just paying whatever price threaded mode incurs (presumably performance) starting in Python 3.9 or thereabouts. Supporting threads is a Good Thing. Thank you for that explanation. ChrisA
On 5/6/2018 10:03 AM, Chris Angelico wrote:
On Sun, May 6, 2018 at 6:54 PM, Terry Reedy <tjreedy@udel.edu> wrote:
Is it ALL of Tkinter that fails in threaded mode?
No. It is non-threaded tcl that fails in threaded mode, along with tkinter's attempt to make non-thread tcl work anyway. There are at least two different cases.
Ivan has clarified the following. 1. Tcl has a 'threads' compile switch. 2. The default changed from 'off' for 8.5 and before to 'on' for 8.6. 3. When compiled with thread support, the resulting library file has t suffix.
Okay, that makes a HUGE difference. Thank you for clarifying. So, in theory, threads SHOULD be supported, which means that bug reports of the nature of "this fails in threaded mode" are 100% valid.
If the reported code does not have bugs, including thread deadlock and shutdown bugs, which are non-trivial to avoid, yes. I dug up more information. Though he did not say so, Ivan's first issue, https://bugs.python.org/issue33257, reopens and continues https://bugs.python.org/issue11077, using a slightly modified version of the original ballistic launch example. Ivan added discussion of the tcl thread-support compile switch, which was not mentioned in the original. Ditto for a patch. The originator of the original, Scott M., taught new programmers how to display data from multiple sources, some blocking. It seemed most natural to him and students to use threads to access sources and use the documented widget.method(*args) APIs to display data, rather than have to invent a protocol to pass such calls through a queue. See the initial message. In that older issue, I mentioned, as I did in response to Ivan, that 'thread' does not appear in the tkinter docs. Martin Löwis replied "My claim is that Tkinter is thread-safe as it stands. A lot of thought has been put into making Tkinter thread-safe, so if there is any claim to the contrary, we would need more details: what exact Python version is being used, what exact operating system is being used, what exact code is run, and what exact output is produced." and later said "It's supported on Unix since 1.5.1, and on Windows since 2.3."
If it were up to me, I would deprecate non-threaded mode immediately,
Given that 99% of tkinter users do not need threaded tcl, why cut some of them off? When tkinter is import and a root is created, tkinter cannot know whether the user is going to later make failing calls from threads. Tkinter has traditional been slow to remove support of old versions; it still supports 8.4. It will eventually become a moot point, at least on Windows, as current Windows installers install threaded tcl. I presume the same is true for the new Mac installers. I have no idea what people have on linux. -- Terry Jan Reedy
On Mon, May 7, 2018 at 6:04 AM, Terry Reedy <tjreedy@udel.edu> wrote:
On 5/6/2018 10:03 AM, Chris Angelico wrote:
If it were up to me, I would deprecate non-threaded mode immediately,
Given that 99% of tkinter users do not need threaded tcl, why cut some of them off?
"Non-threaded" really just means "non-thread-safe". There's nothing wrong with using thread-safe APIs when you're using only a single thread, other than the performance overhead. Is that significant enough to require the distinction?
When tkinter is import and a root is created, tkinter cannot know whether the user is going to later make failing calls from threads. Tkinter has traditional been slow to remove support of old versions; it still supports 8.4. It will eventually become a moot point, at least on Windows, as current Windows installers install threaded tcl. I presume the same is true for the new Mac installers. I have no idea what people have on linux.
That's what I'm hoping for, yes. Eventually threaded will be the only way to do things. ChrisA
On Thu, May 03, 2018 at 06:31:03PM +0000, Brett Cannon wrote:
No one is saying people can't be upset and if you are ever upset there's something wrong; we're human beings after all. But those of us speaking up about the tone are saying that you can also wait until you're not so upset to write an email. This was never going to be resolved in an hour, so waiting an hour until you're in a better place to write an email that wasn't quite so inflammatory seems like a reasonable thing to ask.
Certainly!
I'm not defending Ivan's initial email. His tantrum *was* annoying, unreasonable, and unfair to those who do care about tkinter. He could have done better.
But *we* should be better too. Our response to Ivan has not been welcoming, and as a community we haven't lived up to our own standards, as we have piled onto him to express our rightous indignation:
1. Guido responded telling Ivan to calm down and work off his frustration elsewhere. And that's where things should have stopped, unless Ivan had persisted in his impoliteness.
2. Brian upped the ante by bringing the CoC into discussion.
3. Paul raised it again by describing Ivan's post as "offensive".
4. And now, Steve H has claimed that Ivan's initial post was bordering on "abusive".
We've gone from rightly treating Ivan's post as intemperate and impolite, and telling him to chill, to calling his post "offensive", to "abusive". (Next, I presume, someone will claim to be traumatised by Ivan's email.)
I for one hold my hand up, and will simply not respond the next time I am tempted to respond in this way. I do not wish to enter into discussion on
On Fri, May 4, 2018 at 4:43 PM, Steven D'Aprano <steve@pearwood.info> wrote: the semantics of abuse, neither do I want to sidetrack the list from its intended purpose. regards Steve
On 5/4/2018 11:43 AM, Steven D'Aprano wrote:
I'm not defending Ivan's initial email. His tantrum *was* annoying, unreasonable, and unfair to those who do care about tkinter.
Ivan's email was a disinformation troll intended to jump the attention queue of core developers. He is proud of its apparent success, and seemingly unconcerned about equally apparent side-effects. In form, it reminds me of Ranting Rick Johnson's performances on python-list, where such things are more acceptable. At least Rick knows to not do the same on pydev.
He could have done better.
I tried to persuade him of this by explaining how others have had the same success with respectful and factual emails. In either case, any success is because some of us care deeply about the quality of the CPython distribution and want to encourage others to join in the enterprise.
We've gone from rightly treating Ivan's post as intemperate and impolite, and telling him to chill, to calling his post "offensive", to "abusive".
Discursive writing has two components: content and tone. I agree with you that the tone was not that bad. But I am more concerned with content. To me, posting disinformation to pydev *is* abusive of its 'authoritativeness'. This forum is read and mirrored around the world. People tend to believe what they read here. Based on past events, I will not be surprised if someone somewhere, in a blog, talk, or SO answer, quotes Ivan as a reason to not use tkinter.
(Next, I presume, someone will claim to be traumatised by Ivan's email.)
Yep, but not my concern here.
Just as Ivan should have waited until he had calmed down before firing off his rant, so we ought to resist the temptation to strike back with hostility at trivial social transgressions, especially from newcomers.
Is disinformation and FUD really trivial?
This is what Ivan actually said:
- Tkinter is broken and partly functional (an opinion with only the most tenuous connection with fact, but hardly abusive);
- that nobody cares (factually wrong, but not abusive);
- that possibly nobody is using it (factually wrong, but not abusive);
I previously responded to the first and second points above. As to the third, not only do many people use the tkinter-based IDLE and turtle frameworks (and many others), but as evidenced by Stackoverflow questions, some Python beginners dive into writing GUIs with tkinter after as little as 2 weeks exposure to Python. Given that I ignored tkinter for over a decade, I am impressed at their boldness. The following is a paraphrase of a combination of multiple things I have read and heard . "Don't use IDLE. Its buggy, not used much, and not maintained. Someone said so on pydev." Ivan saying the same about tkinter will possibly prompt others to imitate him.
- that if that's the case (it isn't), then it should be removed from the std lib (a reasonable suggestion if only the premise had been correct).
I am dubious that Ivan actually believed what he wrote. It looks more like rhetorical devices rather than factual claims. Yet many people responding here treated 'the case' as plausible. This supports my contention that people tend to treat claims posted here as plausible and made in good faith.
Intemperate and impolite it certainly was, as well as full of factual inaccuracies, but to call it "close to abusive" is a hostile over- reaction.
Dismissing as non-existent the hard work of volunteers tends to result in less volunteer work. Given that 'factual inaccuracies' can have negative consequences for the future of CPython, I think a bit of hostility is appropriate.
We ought to be kinder than that. Our response to Ivan has been more hostile, and less open and respectful, than his email that triggered the response.
I agree that too much attention was give to 'tone'. I think too little was given to the validity of the claims. -- Terry Jan Reedy
On Fri, May 04, 2018 at 03:21:28PM -0400, Terry Reedy wrote:
On 5/4/2018 11:43 AM, Steven D'Aprano wrote:
I'm not defending Ivan's initial email. His tantrum *was* annoying, unreasonable, and unfair to those who do care about tkinter.
Ivan's email was a disinformation troll intended to jump the attention queue of core developers. He is proud of its apparent success, and seemingly unconcerned about equally apparent side-effects.
Terry, please, to persist in attacking Ivan's past behaviour when he has not repeated it is not open, considerate or respectful. At this point, *our reaction* to Ivan's transgression has been much worse and more disruptive than anything he has done. People had already jumped down Ivan's throat long before he rationalised the tone of his initial email as necessary to get people's attention. Whether that rationalisation was an excuse he came up with afterwards, or a deliberate plan he started with, is impossible to tell. I wouldn't even expect Ivan to be 100% in his own mind which it was. Psychology isn't that cut and dried. But it doesn't matter. *One* impolite email, even if deliberate, should not be enough to condemn a newbie. If he persists with this pattern of behaviour, that is a different story. I understand your concern about deliberate disinformation, but even if your worst fears come true and "someone somewhere, in a blog, talk, or SO answer, quotes Ivan as a reason to not use tkinter", that hardly makes giving the opinion "tkinter is broken" an unforgiveable sin. As you point out yourself, that opinion is hardly new or rare. And frankly, people are allowed to be wrong. Let's not have thought police here, please. Everyone, can we *PLEASE* stop attacking this newbie now, and give him a chance to show by his future actions that he either has or hasn't changed his ways? Wrongly suggesting that nobody uses a software package should not be a Zero Tolerance offense. -- Steve
On 5/4/2018 10:07 PM, Steven D'Aprano wrote:
Terry, please, to persist in attacking Ivan's past behaviour when he has not repeated it is not open, considerate or respectful.
I did not do that. My first sentence was background for a *discussion* about a partial disagreement with what you said. I won't repeat any of it.
At this point, *our reaction* to Ivan's transgression has been much worse and more disruptive than anything he has done.
I partially agree with this and said so in my last summary line. And I agree that these threads should die. -- Terry Jan Reedy
On Fri, May 4, 2018 at 11:43 AM, Steven D'Aprano <steve@pearwood.info> wrote:
On Thu, May 03, 2018 at 06:31:03PM +0000, Brett Cannon wrote: .. I'm not defending Ivan's initial email. His tantrum *was* annoying, unreasonable, and unfair to those who do care about tkinter. He could have done better.
But *we* should be better too. Our response to Ivan has not been welcoming, and as a community we haven't lived up to our own standards, as we have piled onto him to express our rightous indignation:
+1 It may be a reflection of me sharing the cultural roots with Ivan, but his original post did not sound particularly offensive to me. I've seen worse. When it comes to communication on public fora, I am a strong believer in Postel's principle of robustness: "be conservative in what you do, be liberal in what you accept from others."
On Sat, 5 May 2018 01:43:00 +1000 Steven D'Aprano <steve@pearwood.info> wrote:
On Thu, May 03, 2018 at 06:31:03PM +0000, Brett Cannon wrote:
No one is saying people can't be upset and if you are ever upset there's something wrong; we're human beings after all. But those of us speaking up about the tone are saying that you can also wait until you're not so upset to write an email. This was never going to be resolved in an hour, so waiting an hour until you're in a better place to write an email that wasn't quite so inflammatory seems like a reasonable thing to ask.
Certainly!
I'm not defending Ivan's initial email. His tantrum *was* annoying, unreasonable, and unfair to those who do care about tkinter. He could have done better.
But *we* should be better too. Our response to Ivan has not been welcoming, and as a community we haven't lived up to our own standards, as we have piled onto him to express our rightous indignation: [...]
Well summed up. Regards Antoine.
I still use it a bit, in simple contexts to be sure, but I do find it useful. Others think so as well. I think TkAgg is probably the most commonly used backend in Matplotlib. I wrote a single Matplotlib-using program which plots columns from CSV files. I use it almost daily with no problems. Again, I use the TkAgg backend by default. So, does it have problems? Almost certainly. It seems you've encountered some. If you want to see something change though, just screaming at the developers is almost certainly the least productive thing you could do. Here are some things you *could* do: * submit some bug reports * review patches related to the problems, assuming there are some * write some patches for the documentation adding warnings about sketchy bits Skip
On 5/2/2018 4:51 PM, Ivan Pozdeev via Python-Dev wrote:
As I report there, the 'crasher' does not crash on my Win 10 with either installed 3.7 or built 3.8.
nothing about tkinter
Tkinter is broken, for both
One can crash CPython with legal Python code. I don't think that the language community should deprecate and drop CPython ;-).
Py2 and Py3, with both threaded and non-threaded Tcl, since 2002 at least, and no-one gives a damn. The experience of perhaps hundred of thousands of people successfully writing or running tkinter-based programs says otherwise.
This seems to be a testament that very few people are actually interested in or are using it.
It is a testament that most people write sane code, for which tkinter (and Python) work well.
If that is so
But it is not. Tkinter is actively maintained.
there's no use keeping it in the standard library
Ridiculous. All you have done with this post is distract attention from real problems. -- Terry Jan Reedy
Maybe the only 1 thing needs an update : some nice ui else, i'm glad python has a gui library as one interested in languages, py is just crazy (though i miss some android apps using it). in a GPL, a gui library is one of those extra goodies if you would browse the source codes, you'd see good old compiler theories being used (no ANTLR for example) tkinter is pretty good. as one that still believes in tkinter and has as a result of it explored many apps, what you can do with tkinter is crazy. as to no one using it; did you consider production: installing a 3rd party package for what is already integrated ah just the docs, they are not as candy as python's docs to drop it, we use what? maybe we'll all join punching some bags before we get a stable gui package in production Abdur-Rahmaan Janhangeer https://github.com/Abdur-rahmaanJ On Thu, 3 May 2018, 00:55 Ivan Pozdeev via Python-Dev, < python-dev@python.org> wrote:
As https://bugs.python.org/issue33257 and https://bugs.python.org/issue33316 showed, Tkinter is broken, for both Py2 and Py3, with both threaded and non-threaded Tcl, since 2002 at least, and no-one gives a damn.
This seems to be a testament that very few people are actually interested in or are using it.
If that's so, there's no use keeping it in the standard library -- if anything, because there's not enough incentive and/or resources to support it. And to avoid screwing people (=me) up when they have the foolishness to think they can rely on it in their projects -- nowhere in the docs it is said that the module is only partly functional.
--
Regards, Ivan
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/arj.python%40gmail.com
participants (25)
-
Abdur-Rahmaan Janhangeer
-
Alexander Belopolsky
-
Antoine Pitrou
-
Antoine Pitrou
-
Brett Cannon
-
Brian Curtin
-
Chris Angelico
-
David Mertz
-
Greg Ewing
-
Guido van Rossum
-
Guido van Rossum
-
Ivan Pozdeev
-
Josh Stephens
-
Matěj Cepl
-
MRAB
-
Paddy McCarthy
-
Paul Moore
-
Ronald Oussoren
-
Ryan Gonzalez
-
Skip Montanaro
-
Steve Holden
-
Steven D'Aprano
-
Terry Reedy
-
Tim Peters
-
Wes Turner