Re: [Python-ideas] Reminder about intent of messages (Was: Syntactic sugar to declare partial functions)

2018-08-12 Thread Neil Girdhar
I don't really want to get involved in this, but I feel like everyone is
piling up on Abe unfairly.

On Mon, Aug 13, 2018 at 1:14 AM Ryan Gonzalez  wrote:

> Now that the discussion has officially devolved into something that has
> absolutely nothing to do with the original topic, I'd like to point out
> something: (Note that I have no affiliation with the managers of this
> mailing list at all and am just posting this as an outsider.)
>
> In Steven D'Aprano's original message, I didn't see anything there as
> being a personal attack or as having an angry tone, at least based on his
> normal posting style. Maybe a bit critical and stern, but not really
> personal. You may have interpreted it as that, but I seriously doubt it was
> the intention.
>

When Abe wrote just this: "but I think they would (or do in the case of
'lambda') harm Python" — which is nothing but an opinion.  We're all
welcome to our opinions without having to prove them like lawyers.

Steve replied this:  "That's an extreme overreaction.

Do you mean to imply that there are people who looked at Python, loved
the language, but decided to use something else because they didn't like
the choice of the keyword "lambda"?

If not, in what way is Python harmed? Would it be faster if the keyword
was "function", or use less memory, or more expressive?"

To my perhaps tender Canadian ears, that is incredibly abrasive.  Steve
could have just explained why he felt differently without slamming Abe's
opinion as "an extreme overreaction" and then diving into a set of
rhetorical questions that assume an extreme reading of Abe's statement.

Now, as you say, this is Steve's usual posting style.  But new people don't
know him.  I also found him quite abrasive when I started posting here, but
then I noticed that it's not personal and he treats everyone this way.

There are some great posters here, and I like to read python-ideas because
I learn so much from them: Nick, Antoine, Brett, and Nathaniel to name a
few, but there are many more.  I think it's important for newcomers to try
to be respectful, but it's also important to treat newcomers with the same
kindness you would treat a guest in your home.

Best,

Neil


> I'd like to propose an alternative to Hanlon's razor, the Internet razor:
>
> Never attribute to malice that which is adequately explained by lack of
> context in online conversations.
>
> Online, there is no tone of voice, facial expressions, or extra context to
> really help distinguish intent. Misinterpreting has been a classic issue
> that's been around for ages and has only gotten worse. When writing a
> message, we're responsible for ensuring that the intent is clearly
> portrayed. When reading a message, we're responsible for correctly
> interpreting such intent, and everyone is usually better off if, when in
> doubt, the interpretation leans towards ambiguity over malice.
>
> On Sun, Aug 12, 2018, 11:57 PM Abe Dillon  wrote:
>
>> [Alex Walters]
>>
>>> He is questioning the concept that the lambda keyword has caused any
>>> harm.  You assert that it caused minor harm.  Minor harm can still be real,
>>> significant, and non-trivial.
>>
>> What, exactly, is the difference between "minor" and "non-trivial" and
>> when did I say the harm was "significant and non-trivial"?
>>
>> [Alex Walters]
>>
>>> You will find no evidence to support your argument.
>>>
>> You could read what I wrote to Neil Girdhar who was able to engage with
>> me without implying that I've lost my mind.
>>
>> [Chris Angelico]
>>
>>> If your reaction was extreme, saying so isn't attacking you.
>>
>> Is this a hypothetical now? I said "*I think* they would (or do in the
>> case of 'lambda') harm Python." I wasn't aware the word "harm" was
>> something only deranged maniacs use.
>>
>> [Chris Angelico]
>>
>>> Explain, please, what the HARM is that comes from the use of the word
>>> "lambda".
>>
>>
>> I HAVE.
>>
>> [Chris Angelico]
>>
>>> Also, the signature is most decidedly NOT obvious from context
>>
>> Who decided this? It's been decided by some committee? When you write a
>> key function, you don't know how many arguments are going to be passed?
>>
>> [Chris Angelico]
>>
>>> nor is it insignificant.
>>
>>
>> I never said it was. I just said that the logic is more important from
>> the standpoint of the reader.
>>
>> [Chris Angelico]
>>
>>> Putting it first gives context to the body of the
>>> function. Python made the correct choice here.
>>
>>
>> I disagree.
>>
>> This forum is looking more and more toxic. I've explained myself over and
>> over again. I just wanted to +1 Steven's original comment. This is
>> ridiculous. I guess I've pissed of the good-old-boys by calling out
>> Steven's unnecessary condescension. Great. It looks like Python is in
>> fantastic hands.
>>
>> On Sun, Aug 12, 2018 at 10:50 PM, Chris Angelico 
>> wrote:
>>
>>> On Mon, Aug 13, 2018 at 1:31 PM, Abe Dillon  wrote:
>>> > [Steven D'Aprano]
>>> >>
>>> >> Just because I challenge your statements 

Re: [Python-ideas] Reminder about intent of messages (Was: Syntactic sugar to declare partial functions)

2018-08-12 Thread Abdur-Rahmaan Janhangeer
it becomes "toxic" only after off-topic. fine list needs just a reminder
from time to time !

Abdur-Rahmaan Janhangeer
https://github.com/Abdur-rahmaanJ
Mauritius
___
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/


Re: [Python-ideas] Syntactic sugar to declare partial functions

2018-08-12 Thread Abe Dillon
[Chris Angelico]

> lst.onselect = anonfunc(print(target_item))
> What's target_item? If you can't see the signature and see that it's a
> parameter, you should look externally for it.


If you're not even going to read the explanation I've already given, then I
have no reason to respond. Your example looks nothing like what I've
suggested and this whole conversation is being derailed by your need to win
the argument.

On Mon, Aug 13, 2018 at 12:04 AM, Chris Angelico  wrote:

> On Mon, Aug 13, 2018 at 2:56 PM, Abe Dillon  wrote:
> > [Chris Angelico]
> >>
> >> Also, the signature is most decidedly NOT obvious from context
> >
> > Who decided this? It's been decided by some committee? When you write a
> key
> > function, you don't know how many arguments are going to be passed?
>
> lst.onselect = anonfunc(print(target_item))
>
> What's target_item? If you can't see the signature and see that it's a
> parameter, you should look externally for it. What are the parameters
> to an onselect function? Doesn't that seem important enough to see the
> signature up front?
>
> It's not just *how many* arguments are being passed. It's what they're
> called, too. You cannot interpret the body of a function without
> knowing that. Hiding that off to the end would make the language
> worse, not better.
>
> Plus, can you name any similar language that does that? Every other
> language I can think of has the parameters before the body. While this
> isn't a clinching argument by any means (Python has a different
> argument order for the ternary if operator, for instance), it's
> indicative.
>
> ChrisA
> ___
> Python-ideas mailing list
> Python-ideas@python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>
___
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/


[Python-ideas] Reminder about intent of messages (Was: Syntactic sugar to declare partial functions)

2018-08-12 Thread Ryan Gonzalez
Now that the discussion has officially devolved into something that has
absolutely nothing to do with the original topic, I'd like to point out
something: (Note that I have no affiliation with the managers of this
mailing list at all and am just posting this as an outsider.)

In Steven D'Aprano's original message, I didn't see anything there as being
a personal attack or as having an angry tone, at least based on his normal
posting style. Maybe a bit critical and stern, but not really personal. You
may have interpreted it as that, but I seriously doubt it was the
intention.

I'd like to propose an alternative to Hanlon's razor, the Internet razor:

Never attribute to malice that which is adequately explained by lack of
context in online conversations.

Online, there is no tone of voice, facial expressions, or extra context to
really help distinguish intent. Misinterpreting has been a classic issue
that's been around for ages and has only gotten worse. When writing a
message, we're responsible for ensuring that the intent is clearly
portrayed. When reading a message, we're responsible for correctly
interpreting such intent, and everyone is usually better off if, when in
doubt, the interpretation leans towards ambiguity over malice.

On Sun, Aug 12, 2018, 11:57 PM Abe Dillon  wrote:

> [Alex Walters]
>
>> He is questioning the concept that the lambda keyword has caused any
>> harm.  You assert that it caused minor harm.  Minor harm can still be real,
>> significant, and non-trivial.
>
> What, exactly, is the difference between "minor" and "non-trivial" and
> when did I say the harm was "significant and non-trivial"?
>
> [Alex Walters]
>
>> You will find no evidence to support your argument.
>>
> You could read what I wrote to Neil Girdhar who was able to engage with me
> without implying that I've lost my mind.
>
> [Chris Angelico]
>
>> If your reaction was extreme, saying so isn't attacking you.
>
> Is this a hypothetical now? I said "*I think* they would (or do in the
> case of 'lambda') harm Python." I wasn't aware the word "harm" was
> something only deranged maniacs use.
>
> [Chris Angelico]
>
>> Explain, please, what the HARM is that comes from the use of the word
>> "lambda".
>
>
> I HAVE.
>
> [Chris Angelico]
>
>> Also, the signature is most decidedly NOT obvious from context
>
> Who decided this? It's been decided by some committee? When you write a
> key function, you don't know how many arguments are going to be passed?
>
> [Chris Angelico]
>
>> nor is it insignificant.
>
>
> I never said it was. I just said that the logic is more important from the
> standpoint of the reader.
>
> [Chris Angelico]
>
>> Putting it first gives context to the body of the
>> function. Python made the correct choice here.
>
>
> I disagree.
>
> This forum is looking more and more toxic. I've explained myself over and
> over again. I just wanted to +1 Steven's original comment. This is
> ridiculous. I guess I've pissed of the good-old-boys by calling out
> Steven's unnecessary condescension. Great. It looks like Python is in
> fantastic hands.
>
> On Sun, Aug 12, 2018 at 10:50 PM, Chris Angelico  wrote:
>
>> On Mon, Aug 13, 2018 at 1:31 PM, Abe Dillon  wrote:
>> > [Steven D'Aprano]
>> >>
>> >> Just because I challenge your statements doesn't mean I'm attacking
>> you.
>> >
>> >
>> > No. Telling me I'm having an extreme overreaction means you're
>> attacking me.
>>
>> If your reaction was extreme, saying so isn't attacking you.
>>
>> > [Steven D'Aprano]
>> >>
>> >> You've said that the choice of keyword, "lambda", has caused harm.
>> Given
>> >> the chance to clarify what you meant, you stood by your comment that
>> the
>> >> choice of keyword "lambda" has done real, significant, non-trivial harm
>> >> to Python (the language, or the community).
>> >
>> >
>> > What are you talking about? I explained exactly what I meant:
>> >
>> >> I think there are better ways that anonymous functions could have been
>> >> implemented.  I've already said in past discussions, I think the
>> expression
>> >> should come before the signature because the signature is often
>> obvious from
>> >> context so placing it before the logic is kinda noisy. I don't know
>> what the
>> >> best syntax would have been, but I refuse to believe that an esoteric
>> word
>> >> from an esoteric branch of calculus with an arbitrary etymology was the
>> >> absolute best choice available. I think the harm that choice caused is
>> >> relatively minor, but I don't think it was a great choice.
>> >
>> >
>> > Notice: I never said "real, significant, non-trivial harm" anywhere in
>> this
>> > entire discussion. I never said anything close to that. Stop jamming
>> > bullshit in my mouth to suit your narrative that I'm "extremely
>> > overreacting". It's not cute.
>>
>> Explain, please, what the HARM is that comes from the use of the word
>> "lambda". In contrast, using the word "function" does definitely have
>> harm, because you can no longer use the name 

Re: [Python-ideas] Syntactic sugar to declare partial functions

2018-08-12 Thread Chris Angelico
On Mon, Aug 13, 2018 at 2:56 PM, Abe Dillon  wrote:
> [Chris Angelico]
>>
>> Also, the signature is most decidedly NOT obvious from context
>
> Who decided this? It's been decided by some committee? When you write a key
> function, you don't know how many arguments are going to be passed?

lst.onselect = anonfunc(print(target_item))

What's target_item? If you can't see the signature and see that it's a
parameter, you should look externally for it. What are the parameters
to an onselect function? Doesn't that seem important enough to see the
signature up front?

It's not just *how many* arguments are being passed. It's what they're
called, too. You cannot interpret the body of a function without
knowing that. Hiding that off to the end would make the language
worse, not better.

Plus, can you name any similar language that does that? Every other
language I can think of has the parameters before the body. While this
isn't a clinching argument by any means (Python has a different
argument order for the ternary if operator, for instance), it's
indicative.

ChrisA
___
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/


Re: [Python-ideas] Syntactic sugar to declare partial functions

2018-08-12 Thread Abe Dillon
[Alex Walters]

> He is questioning the concept that the lambda keyword has caused any
> harm.  You assert that it caused minor harm.  Minor harm can still be real,
> significant, and non-trivial.

What, exactly, is the difference between "minor" and "non-trivial" and when
did I say the harm was "significant and non-trivial"?

[Alex Walters]

> You will find no evidence to support your argument.
>
You could read what I wrote to Neil Girdhar who was able to engage with me
without implying that I've lost my mind.

[Chris Angelico]

> If your reaction was extreme, saying so isn't attacking you.

Is this a hypothetical now? I said "*I think* they would (or do in the case
of 'lambda') harm Python." I wasn't aware the word "harm" was something
only deranged maniacs use.

[Chris Angelico]

> Explain, please, what the HARM is that comes from the use of the word
> "lambda".


I HAVE.

[Chris Angelico]

> Also, the signature is most decidedly NOT obvious from context

Who decided this? It's been decided by some committee? When you write a key
function, you don't know how many arguments are going to be passed?

[Chris Angelico]

> nor is it insignificant.


I never said it was. I just said that the logic is more important from the
standpoint of the reader.

[Chris Angelico]

> Putting it first gives context to the body of the
> function. Python made the correct choice here.


I disagree.

This forum is looking more and more toxic. I've explained myself over and
over again. I just wanted to +1 Steven's original comment. This is
ridiculous. I guess I've pissed of the good-old-boys by calling out
Steven's unnecessary condescension. Great. It looks like Python is in
fantastic hands.

On Sun, Aug 12, 2018 at 10:50 PM, Chris Angelico  wrote:

> On Mon, Aug 13, 2018 at 1:31 PM, Abe Dillon  wrote:
> > [Steven D'Aprano]
> >>
> >> Just because I challenge your statements doesn't mean I'm attacking you.
> >
> >
> > No. Telling me I'm having an extreme overreaction means you're attacking
> me.
>
> If your reaction was extreme, saying so isn't attacking you.
>
> > [Steven D'Aprano]
> >>
> >> You've said that the choice of keyword, "lambda", has caused harm. Given
> >> the chance to clarify what you meant, you stood by your comment that the
> >> choice of keyword "lambda" has done real, significant, non-trivial harm
> >> to Python (the language, or the community).
> >
> >
> > What are you talking about? I explained exactly what I meant:
> >
> >> I think there are better ways that anonymous functions could have been
> >> implemented.  I've already said in past discussions, I think the
> expression
> >> should come before the signature because the signature is often obvious
> from
> >> context so placing it before the logic is kinda noisy. I don't know
> what the
> >> best syntax would have been, but I refuse to believe that an esoteric
> word
> >> from an esoteric branch of calculus with an arbitrary etymology was the
> >> absolute best choice available. I think the harm that choice caused is
> >> relatively minor, but I don't think it was a great choice.
> >
> >
> > Notice: I never said "real, significant, non-trivial harm" anywhere in
> this
> > entire discussion. I never said anything close to that. Stop jamming
> > bullshit in my mouth to suit your narrative that I'm "extremely
> > overreacting". It's not cute.
>
> Explain, please, what the HARM is that comes from the use of the word
> "lambda". In contrast, using the word "function" does definitely have
> harm, because you can no longer use the name "function" as a variable
> or parameter.
>
> Also, the signature is most decidedly NOT obvious from context, nor is
> it insignificant. Putting it first gives context to the body of the
> function. Python made the correct choice here.
>
> > [Steven D'Aprano]
> >>
> >> But we ought to "check our privilege", as they say. I think that if we
> >> as a community automatically reject any word because it isn't "plain
> >> English", that would be a sign of unexamined privilege and quite rude to
> >> boot.
> >
> >
> > Rude? Who would it be rude to if we had chosen "anonfunc" instead of
> > "lambda"?
>
> No, but it's no less jargonny.
>
> > Very few of us are computer scientists by profession. That's not even
> where
> > 'lambda' comes from. In computer science, it's called an "anonymous
> > function". "lambda" comes from lambda calculus.
>
> https://en.wikipedia.org/wiki/Anonymous_function
>
> "In computer programming, an anonymous function (function literal,
> lambda abstraction, or lambda expression) is a function definition
> that is not bound to an identifier."
>
> So... I would say "lambda" is very firmly connected with anonymous
> functions.
>
> ChrisA
> ___
> Python-ideas mailing list
> Python-ideas@python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>
___
Python-ideas mailing 

Re: [Python-ideas] Syntactic sugar to declare partial functions

2018-08-12 Thread Chris Angelico
On Mon, Aug 13, 2018 at 1:31 PM, Abe Dillon  wrote:
> [Steven D'Aprano]
>>
>> Just because I challenge your statements doesn't mean I'm attacking you.
>
>
> No. Telling me I'm having an extreme overreaction means you're attacking me.

If your reaction was extreme, saying so isn't attacking you.

> [Steven D'Aprano]
>>
>> You've said that the choice of keyword, "lambda", has caused harm. Given
>> the chance to clarify what you meant, you stood by your comment that the
>> choice of keyword "lambda" has done real, significant, non-trivial harm
>> to Python (the language, or the community).
>
>
> What are you talking about? I explained exactly what I meant:
>
>> I think there are better ways that anonymous functions could have been
>> implemented.  I've already said in past discussions, I think the expression
>> should come before the signature because the signature is often obvious from
>> context so placing it before the logic is kinda noisy. I don't know what the
>> best syntax would have been, but I refuse to believe that an esoteric word
>> from an esoteric branch of calculus with an arbitrary etymology was the
>> absolute best choice available. I think the harm that choice caused is
>> relatively minor, but I don't think it was a great choice.
>
>
> Notice: I never said "real, significant, non-trivial harm" anywhere in this
> entire discussion. I never said anything close to that. Stop jamming
> bullshit in my mouth to suit your narrative that I'm "extremely
> overreacting". It's not cute.

Explain, please, what the HARM is that comes from the use of the word
"lambda". In contrast, using the word "function" does definitely have
harm, because you can no longer use the name "function" as a variable
or parameter.

Also, the signature is most decidedly NOT obvious from context, nor is
it insignificant. Putting it first gives context to the body of the
function. Python made the correct choice here.

> [Steven D'Aprano]
>>
>> But we ought to "check our privilege", as they say. I think that if we
>> as a community automatically reject any word because it isn't "plain
>> English", that would be a sign of unexamined privilege and quite rude to
>> boot.
>
>
> Rude? Who would it be rude to if we had chosen "anonfunc" instead of
> "lambda"?

No, but it's no less jargonny.

> Very few of us are computer scientists by profession. That's not even where
> 'lambda' comes from. In computer science, it's called an "anonymous
> function". "lambda" comes from lambda calculus.

https://en.wikipedia.org/wiki/Anonymous_function

"In computer programming, an anonymous function (function literal,
lambda abstraction, or lambda expression) is a function definition
that is not bound to an identifier."

So... I would say "lambda" is very firmly connected with anonymous functions.

ChrisA
___
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/


Re: [Python-ideas] Syntactic sugar to declare partial functions

2018-08-12 Thread Alex Walters
> [Steven D'Aprano]
> 
> 
>   You've said that the choice of keyword, "lambda", has caused harm.
> Given
>   the chance to clarify what you meant, you stood by your comment
> that the
>   choice of keyword "lambda" has done real, significant, non-trivial
> harm
>   to Python (the language, or the community).
> 
> 
> What are you talking about? I explained exactly what I meant:
> 
> 
> 
>   I think there are better ways that anonymous functions could have
> been implemented.  I've already said in past discussions, I think the
> expression should come before the signature because the signature is often
> obvious from context so placing it before the logic is kinda noisy. I don't 
> know
> what the best syntax would have been, but I refuse to believe that an
> esoteric word from an esoteric branch of calculus with an arbitrary etymology
> was the absolute best choice available. I think the harm that choice caused is
> relatively minor, but I don't think it was a great choice.
> 
> 
> Notice: I never said "real, significant, non-trivial harm" anywhere in this
> entire discussion. I never said anything close to that. Stop jamming bullshit 
> in
> my mouth to suit your narrative that I'm "extremely overreacting". It's not
> cute.
> 

He is questioning the concept that the lambda keyword has caused any harm.  You 
assert that it caused minor harm.  Minor harm can still be real, significant, 
and non-trivial.  Has the keyword choice done any harm aside from mailing list 
jamming, and forum posts.  I believe he is asserting that it hasn't.  The 
burden of proof would be on you that it has caused any level of harm to the 
language of community, the criteria being that the harm be real, significant 
(if minor) and non-trivial.

You will find no evidence to support your argument.  You might find evidence 
that functional programming techniques are less useful with anonymous functions 
in python due to the restriction to only use expressions, but that isn't what 
is being argued.

___
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/


Re: [Python-ideas] Syntactic sugar to declare partial functions

2018-08-12 Thread Abe Dillon
[Steven D'Aprano]

> Just because I challenge your statements doesn't mean I'm attacking you.


No. Telling me I'm having an extreme overreaction means you're attacking
me. Pushing the narrative that I'm irrational by enumerating the least
charitable interpretations of my words possible then claiming you were just
discussing *ideas* is disingenuous. I don't know who you think you're
kidding, Steven. You could have simply asked me what I meant. It would have
been much easier. All those extra words serve a very clear purpose and
everyone knows it, so you can stop acting "sad and worried" when someone
calls you out.

I explained my position on lambda as fully as I care to in my response to
Niel if you care to read it. I only think lambda harms Python in so far as
there were better alternatives that communicate their intention much better
and are more readable. That's an opinion. If you must know, i'm not
currently frothing at the mouth as I state it.

My original post was agreeing with you. Supporting your own words. If you
don't agree with my position that we should avoid jargon for jargon's sake,
then what exactly did you mean when you said, "although possibly a less
jargon name would be nicer?" Can you articulate why you think it might be
nicer to use a less jargon name? What about my saying it all of a sudden
makes it an "extreme overreaction"?

[Steven D'Aprano]

> You've said that the choice of keyword, "lambda", has caused harm. Given
> the chance to clarify what you meant, you stood by your comment that the
> choice of keyword "lambda" has done real, significant, non-trivial harm
> to Python (the language, or the community).


What are you talking about? I explained exactly what I meant:

I think there are better ways that anonymous functions could have been
> implemented.  I've already said in past discussions, I think the expression
> should come before the signature because the signature is often obvious
> from context so placing it before the logic is kinda noisy. I don't know
> what the best syntax would have been, but I refuse to believe that an
> esoteric word from an esoteric branch of calculus with an arbitrary
> etymology was the absolute best choice available. I think the harm that
> choice caused is relatively minor, but I don't think it was a great choice.


Notice: I never said "real, significant, non-trivial harm" anywhere in this
entire discussion. I never said anything close to that. Stop jamming
bullshit in my mouth to suit your narrative that I'm "extremely
overreacting". It's not cute.

[Steven D'Aprano]

> This is a genuine question. I'm trying to understand your comments, not just
> dismiss them.


If you're so genuinely interested, then how come you couldn't be bothered
to read my explaination above?

[Steven D'Aprano]

> Presumably you fear the same thing will happen again if we choose
> "partial" (otherwise, why raise the issue?).


There is no issue. I've already conceded that. Please read the conversation
that followed with Neil Girdhar. I was simply stating a preference and
trying to articulate my reasoning behind that preference.

My whole intent was to +1 your alternative and say "I prefer given to
partial". That's it.

[Steven D'Aprano]

> Python does have a long-standing tradition of sticking to mostly English
> words, a tradition for which I personally am grateful.


I am too. I'd like that to continue.

[Steven D'Aprano]

> But we ought to "check our privilege", as they say. I think that if we
> as a community automatically reject any word because it isn't "plain
> English", that would be a sign of unexamined privilege and quite rude to
> boot.


Rude? Who would it be rude to if we had chosen "anonfunc" instead of
"lambda"?

[Steven D'Aprano]

> How can we insist that 3/4 of the world learn English words to use Python


Do you really think that 3/4 of the world learns English just to write
Python? Do you think the only english they learn are the built-ins and
standard library of Python? English is a dominant language in business and
programming. That statement is no more "privileged" than the statement that
the US Dollar is the most popular global reserve currency. It's a fact that
I have no control over.

[Steven D'Aprano]

> ...if we aren't even willing to move out of our own comfort zone to
> the extent of learning accurate jargon terms from our own profession?


Very few of us are computer scientists by profession. That's not even where
'lambda' comes from. In computer science, it's called an "anonymous
function". "lambda" comes from lambda calculus.

[Steven D'Aprano]

> If we go down this path... and choose "given" over "partial", we ought to
> be
> clear about the reasons why.


I gave my reasons: it's shorter and less jargon while remaining fairly
clear (in my opinion)

You've already claimed that "possibly a less jargon name would be nicer",
so I don't see the fuss. Apparently it's extreme when I say it.

On Sun, Aug 12, 2018 at 8:06 PM, Steven D'Aprano 

Re: [Python-ideas] Syntactic sugar to declare partial functions

2018-08-12 Thread Steven D'Aprano
Answering a few of Abe's comments out of order...

On Fri, Aug 10, 2018 at 05:20:25PM -0500, Abe Dillon wrote:
> I didn't realize I'd hit such a nerve. [...] I'm truly sorry
> if I hurt your feelings.
[...]
> But you seem to have some grudge against me. I don't get all the
> outrage over what I thought was a fairly benign post. Did I do
> something to make you so angry at me? I'd like to resolve whatever it
> is instead of having to deal with this every time I post.

Have we become so sensitive to disagreement that criticism of ideas is
immediately seen as "angry", "a grudge", "outrage"? If so, I find that 
sad and worrying.

My feelings aren't hurt, you haven't hit a nerve, I'm not angry at
anything you wrote, and I'm not holding a grudge. I thought we were
discussing *ideas*, not attacking each other. Just because I challenge 
your statements doesn't mean I'm attacking you.

Moving on...

[...]
> I suspect that most programmers couldn't describe the difference
> between a type and a class.

In Python, there is none.

There is a sense in which types are different from classes, but that
sense is not fundamental, and in practice many languages blur the lines
between them.


> I suspect that most programmers couldn't tell you the difference 
> between an exception or an error.

There's a school of thought that most programmers can't program.

https://blog.codinghorror.com/why-cant-programmers-program/

But regardless, we don't design Python based on the misunderstandings of
the least competent, most ignorant demographic. That's why we have
exceptions, only some of which are errors, and not

StopIterationError
KeyboardInterruptError
SystemExitError

etc.

I believe that using a well-designed language should gently encourage
the programmer to learn, by example. I didn't know the the functional
programming techniques of map, reduce or partial until I came across
them in Python. I think I'm a better programmer and less ignorant now
than I was for that.

Consequently, when I hear you describing how few programmers know the 
term "partial", what I think is "what a great opportunity for them to 
learn something new!".

Or not, of course. For those of us who don't care for functional 
programming idioms, there's no need to use partial in our own code.


> [Steven D'Aprano]
>
> > Do you mean to imply that there are people who looked at Python, 
> > loved the language, but decided to use something else because they 
> > didn't like the choice of the keyword "lambda"?
>
> No. Not at all. Is that what you got out of my sentence? Am I really 
> the one being extreme?

Yes, that's what I got out of your sentence. If you don't mean that, I
don't know what you do mean.

You've said that the choice of keyword, "lambda", has caused harm. Given
the chance to clarify what you meant, you stood by your comment that the
choice of keyword "lambda" has done real, significant, non-trivial harm
to Python (the language, or the community). Presumably you fear the same
thing will happen again if we choose "partial" (otherwise, why raise the
issue?).

Harm in what sense? That's what I tried to ask earlier, perhaps not as
clearly as I intended.

If the choice of name "lambda" doesn't repel would-be users, or cause 
bugs, or harm performance, then what harm does it do?

This is a genuine question. I'm trying to understand your comments, not
just dismiss them.

You made a comment much stronger than merely "I don't like the name", 
claiming that the name is harmful. I could just dismiss your comment as 
meaningless hyperbole and ignore it, but I thought to give you the 
respect of assuming that you might be correct but I just wasn't 
understanding why. Hence my question.


> [Steven D'Aprano]
> 
> > Remember that to millions of programmers in the world, "function" is
> > just as much an obscure foreign piece of jargon they have to memorise as
> > "lambda" is to English-speakers.
> 
> 
> Maybe we should use Egyptian Hieroglyphs then. Even the playing field. It
> doesn't matter anyway, right? It's all nonsense to someone...

No, we ought to stick to ASCII, for reasons I've discussed recently in 
other threads. And Python does have a long-standing tradition of 
sticking to mostly English words, a tradition for which I personally am 
grateful.

But we ought to "check our privilege", as they say. I think that if we 
as a community automatically reject any word because it isn't "plain 
English", that would be a sign of unexamined privilege and quite rude to 
boot. How can we insist that 3/4 of the world learn English words to use 
Python, if we aren't even willing to move out of our own comfort zone to 
the extent of learning accurate jargon terms from our own profession?

None of this is to rule out "given". (I think it's certainly better than 
Perl's choice of "assuming".) But if we go down this path (which is by 
no means decided!), and choose "given" over "partial", we ought to be 
clear about the reasons why.


-- 
Steve