Responding out of order.

[Rhodri James]

> > For instance: when the iPhone was introduced, a lot of people praised
> > it's subjectively "slick" user interface. I believe that perception of
> > slickness is partly because the iPhone emulated physical interfaces
> > very well so it leveraged people's intuition about the physical world.
> > It was delightfully intuitive.
> One of the things Apple have always been very good at is thinking hard
> about user interfaces.  What made the iPhone so good was that they emulated
> the right physical interfaces, so flipping a page when you're reading
> rather than pressing a button.


Yes, that's exactly what I was trying to say. An important point that I
think keeps getting lost in this conversation is that Python's grammar,
syntax, and standard lib are it's user interface. There are very different
constraints on Python's UI than there are when humans have to communicate
directly with other humans. I have no problem using words like "closure" or
"lambda expression" or "ternary expression" when communicating with other
humans about programming language features, but jargon doesn't often make
sense as part of Python's UI itself. Again, we don't use the word "ternary"
in Python's ternary expressions.

[Rhodri James]

> Jargon becomes jargon because it's useful to enough people, for
> occasionally rather odd definitions of "useful".  In the case of lambda,
> it's shorter than "inline function definition"


Yes, again: I understand the utility of jargon. I don't think "anonymous
function" would be an improvement over "lambda" because, while it is fairly
descriptive, it sacrifices too much brevity. However; the word "anonymous"
is redundant. You can tell the function is anonymous by virtue of the fact
that it doesn't have a name. "function" is only two characters longer than
"lambda" and is actually descriptive, but it probably would have caused
backwards compatibility issues (same with "func" or "fun"). "def" would
have been even shorter than "lambda".

[Rhodri James]

> and lambda calculus at least shows up on most CompSci courses.


I suppose if by "courses" you mean "course plans", I highly doubt that the
majority of CS classes cover lambda calc, though; I couldn't say for sure
because I, like many programmers, didn't take CS in college. There are many
disciplines that get by on basic algorithms, data-structures, and a pinch
of theory.

[Rhodri James]

> Once it settles into a group, you use it because other members of the
> group will understand what you mean and might not understand if you
> rephrase it.


If the group you're referring to are Computer Scientists, then I don't see
why they would be confused by a syntax that omits the word "lambda" since very
few languages use the word "lambda" to denote a lambda expression.

[Rhodri James]

> While I don't entirely disagree with you, if I had been responsible for
> inventing that bit of Python I would probably have gone with "lambda" too.
> It had been part of my vocabulary as a computer scientist long before I met
> it in a programming language.  Whether it's a *good* choice or not...
> possibly reusing "def" would fit people's expectations better, or perhaps
> it would have caused more confusion.  Who can tell?


I don't see how "def" could cause more confusion than "lambda". Those who
don't know what "lambda" refers to would at least have some notion of what
"def" means, and those who have studied and know what lambda calculus is
should also have very little trouble. I don't expect it would confuse
someone well versed in computer science any more than a check-engine light
would throw off an expert mechanic. They can at least google "python
anonymous function" or "python lambda expression" and get results that tell
you how to write a lambda expression in Python.
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to