Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Perl > Perl Misc > A critic of Guido's blog on Python's lambda

Reply
Thread Tools

A critic of Guido's blog on Python's lambda

 
 
Xah Lee
Guest
Posts: n/a
 
      05-06-2006
Python, Lambda, and Guido van Rossum

Xah Lee, 2006-05-05

In this post, i'd like to deconstruct one of Guido's recent blog about
lambda in Python.

In Guido's blog written in 2006-02-10 at
http://www.artima.com/weblogs/viewpo...?thread=147358

is first of all, the title “Language Design Is Not Just Solving
Puzzles”. In the outset, and in between the lines, we are told that
“I'm the supreme intellect, and I created Python”.

This seems impressive, except that the tech geekers due to their
ignorance of sociology as well as lack of analytic abilities of the
mathematician, do not know that creating a language is a act that
requires little qualifications. However, creating a language that is
used by a lot people takes considerable skill, and a big part of that
skill is salesmanship. Guido seems to have done it well and seems to
continue selling it well, where, he can put up a title of belittlement
and get away with it too.

Gaudy title aside, let's look at the content of his say. If you peruse
the 700 words, you'll find that it amounts to that Guido does not like
the suggested lambda fix due to its multi-line nature, and says that he
don't think there could possibly be any proposal he'll like. The
reason? Not much! Zen is bantered about, mathematician's impractical
ways is waved, undefinable qualities are given, human's right brain is
mentioned for support (neuroscience!), Rube Goldberg contrivance
phraseology is thrown, and coolness of Google Inc is reminded for the
tech geekers (in juxtaposition of a big notice that Guido works
there.).

If you are serious, doesn't this writing sounds bigger than its
content? Look at the gorgeous ending: “This is also the reason why
Python will never have continuations, and even why I'm uninterested in
optimizing tail recursion. But that's for another installment.”. This
benevolent geeker is gonna give us another INSTALLMENT!

There is a computer language leader by the name of Larry Wall, who said
that “The three chief virtues of a programmer are: Laziness,
Impatience and Hubris” among quite a lot of other ingenious
outpourings. It seems to me, the more i learn about Python and its
leader, the more similarities i see.

So Guido, i understand that selling oneself is a inherent and necessary
part of being a human animal. But i think the lesser beings should be
educated enough to know that fact. So that when minions follow a
leader, they have a clear understanding of why and what.

----

Regarding the lambda in Python situation... conceivably you are right
that Python lambda is perhaps at best left as it is crippled, or even
eliminated. However, this is what i want: I want Python literatures,
and also in Wikipedia, to cease and desist stating that Python supports
functional programing. (this is not necessarily a bad publicity) And, I
want the Perl literatures to cease and desist saying they support OOP.
But that's for another installment.

----
This post is archived at:
http://xahlee.org/UnixResource_dir/w...bda_guido.html

* * Xah
* * http://www.velocityreviews.com/forums/(E-Mail Removed)
http://xahlee.org/

 
Reply With Quote
 
 
 
 
Ken Tilton
Guest
Posts: n/a
 
      05-06-2006


Xah Lee wrote:
> Python, Lambda, and Guido van Rossum
>
> Xah Lee, 2006-05-05
>
> In this post, i'd like to deconstruct one of Guido's recent blog about
> lambda in Python.
>
> In Guido's blog written in 2006-02-10 at
> http://www.artima.com/weblogs/viewpo...?thread=147358
>
> is first of all, the title “Language Design Is Not Just Solving
> Puzzles”. In the outset, and in between the lines, we are told that
> “I'm the supreme intellect, and I created Python”.
>
> This seems impressive, except that the tech geekers due to their
> ignorance of sociology as well as lack of analytic abilities of the
> mathematician, do not know that creating a language is a act that
> requires little qualifications. However, creating a language that is
> used by a lot people takes considerable skill, and a big part of that
> skill is salesmanship. Guido seems to have done it well and seems to
> continue selling it well, where, he can put up a title of belittlement
> and get away with it too.
>
> Gaudy title aside, let's look at the content of his say. If you peruse
> the 700 words, you'll find that it amounts to that Guido does not like
> the suggested lambda fix due to its multi-line nature, and says that he
> don't think there could possibly be any proposal he'll like. The
> reason? Not much! Zen is bantered about, mathematician's impractical
> ways is waved, undefinable qualities are given, human's right brain is
> mentioned for support (neuroscience!), Rube Goldberg contrivance
> phraseology is thrown,


I think this is what you missed in your deconstruction. The upshot of
what he wrote is that it would be really hard to make semantically
meaningful indentation work with lambda. Guido did not mean it, but the
Rube Goldberg slam is actually against indentation as syntax. "Yes,
print statements in a while loop would be helpful, but..." it would be
so hard, let's go shopping. ie, GvR and Python have hit a ceiling.

That's OK, it was never meant to be anything more than a scripting
language anyway.

But the key in the whole thread is simply that indentation will not
scale. Nor will Python.

> and coolness of Google Inc is reminded for the
> tech geekers (in juxtaposition of a big notice that Guido works
> there.).
>
> If you are serious, doesn't this writing sounds bigger than its
> content? Look at the gorgeous ending: “This is also the reason why
> Python will never have continuations, and even why I'm uninterested in
> optimizing tail recursion. But that's for another installment.”. This
> benevolent geeker is gonna give us another INSTALLMENT!
>
> There is a computer language leader by the name of Larry Wall, who said
> that “The three chief virtues of a programmer are: Laziness,
> Impatience and Hubris” among quite a lot of other ingenious
> outpourings. It seems to me, the more i learn about Python and its
> leader, the more similarities i see.
>
> So Guido, i understand that selling oneself is a inherent and necessary
> part of being a human animal. But i think the lesser beings should be
> educated enough to know that fact. So that when minions follow a
> leader, they have a clear understanding of why and what.


Oh, my, you are preaching to the herd (?!) of lemmings?! Please tell me
you are aware that lemmings do not have ears. You should just do Lisp
all day and add to the open source libraries to speed Lisp's ascendance.
The lemmings will be liberated the day Wired puts John McCarthy on the
cover, and not a day sooner anyway.

kenny (wondering what to call a flock (?!) of lemmings)

--
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
Attorney for Mary Winkler, confessed killer of her
minister husband, when asked if the couple had
marital problems.
 
Reply With Quote
 
 
 
 
Alex Martelli
Guest
Posts: n/a
 
      05-06-2006
Ken Tilton <(E-Mail Removed)> wrote:
...
> But the key in the whole thread is simply that indentation will not
> scale. Nor will Python.


Absolutely. That's why firms who are interested in building *seriously*
large scale systems, like my employer (and supplier of your free mail
account), would never, EVER use Python, nor employ in prominent
positions such people as the language's inventor and BDFL, the author of
the most used checking tool for it, and the author of the best-selling
reference book about that language; and, for that matter, a Director of
Search Quality who, while personally a world-renowned expert of AI and
LISP, is on record as supporting Python very strongly, and publically
stating its importance to said employer.

Obviously will not scale. Never.

Well... hardly ever!


Alex
 
Reply With Quote
 
I V
Guest
Posts: n/a
 
      05-06-2006
On Fri, 05 May 2006 17:26:26 -0700, Xah Lee wrote:
> Regarding the lambda in Python situation... conceivably you are right
> that Python lambda is perhaps at best left as it is crippled, or even
> eliminated. However, this is what i want: I want Python literatures,
> and also in Wikipedia, to cease and desist stating that Python supports
> functional programing. (this is not necessarily a bad publicity) And, I


What does lambda have to do with supporting or not supporting functional
programming?

 
Reply With Quote
 
Ken Tilton
Guest
Posts: n/a
 
      05-06-2006


Alex Martelli wrote:
> Ken Tilton <(E-Mail Removed)> wrote:
> ...
>
>>But the key in the whole thread is simply that indentation will not
>>scale. Nor will Python.

>
>
> Absolutely. That's why firms who are interested in building *seriously*
> large scale systems, like my employer (and supplier of your free mail
> account), would never, EVER use Python, nor employ in prominent
> positions such people as the language's inventor and BDFL, the author of
> the most used checking tool for it, and the author of the best-selling
> reference book about that language; and, for that matter, a Director of
> Search Quality who, while personally a world-renowned expert of AI and
> LISP, is on record as supporting Python very strongly, and publically
> stating its importance to said employer.
>
> Obviously will not scale. Never.
>
> Well... hardly ever!


You are talking about being incredibly popular. I was talking about
language expressivity. COBOL in its day was incredibly popular and
certainly the language of choice (hell, the only language) for the
biggest corporations you can imagine. But it did not scale as a
language. I hope there are no doubts on that score (and I actually am a
huge fan of COBOL).

The problem for Python is its success. meant to be a KISS scripting
language, it has caught on so well that people are asking it to be a
full-blown, OO, GC, reflexive, yada, yada, yada language. Tough to do
when all you wanted to be when you grew up was a scripting language.

kenny (who is old enough to have seen many a language come and go)

--
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
Attorney for Mary Winkler, confessed killer of her
minister husband, when asked if the couple had
marital problems.
 
Reply With Quote
 
Rhino
Guest
Posts: n/a
 
      05-06-2006

"I V" <(E-Mail Removed)> wrote in message
news(E-Mail Removed)...
> On Fri, 05 May 2006 17:26:26 -0700, Xah Lee wrote:
>> Regarding the lambda in Python situation... conceivably you are right
>> that Python lambda is perhaps at best left as it is crippled, or even
>> eliminated. However, this is what i want: I want Python literatures,
>> and also in Wikipedia, to cease and desist stating that Python supports
>> functional programing. (this is not necessarily a bad publicity) And, I

>
> What does lambda have to do with supporting or not supporting functional
> programming?
>


What does any of this have to do with Java?

--
Rhino


 
Reply With Quote
 
Steve R. Hastings
Guest
Posts: n/a
 
      05-06-2006
On Fri, 05 May 2006 21:16:50 -0400, Ken Tilton wrote:
> The upshot of
> what he wrote is that it would be really hard to make semantically
> meaningful indentation work with lambda.


Pretty much correct. The complete thought was that it would be painful
all out of proportion to the benefit.

See, you don't need multi-line lambda, because you can do this:


def make_adder(x):
def adder_func(y):
sum = x + y
return sum
return adder_func

add5 = make_adder(5)
add7 = make_adder(7)

print add5(1) # prints 6
print add5(10) # prints 15
print add7(1) # prints 8


Note that make_adder() doesn't use lambda, and yet it makes a custom
function with more than one line. Indented, even.

You could also do this:


lst = [] # create empty list
def f(x):
return x + 5
lst.append(f)
del(f) # now that the function ref is in the list, clean up temp name

print lst[0](1) # prints 6


Is this as convenient as the lambda case?

lst.append(lambda x: x + 7)
print lst[1](1) # prints 8


No; lambda is a bit more convenient. But this doesn't seem like a very
big issue worth a flame war. If GvR says multi-line lambda would make
the lexer more complicated and he doesn't think it's worth all the effort,
I don't see any need to argue about it.



> But the key in the whole thread is simply that indentation will not
> scale. Nor will Python.


This is a curious statement, given that Python is famous for scaling well.

I won't say more, since Alex Martelli already pointed out that Google is
doing big things with Python and it seems to scale well for them.
--
Steve R. Hastings "Vita est"
(E-Mail Removed) http://www.blarg.net/~steveha

 
Reply With Quote
 
Glyn Millington
Guest
Posts: n/a
 
      05-06-2006
Ken Tilton <(E-Mail Removed)> writes:

> kenny (wondering what to call a flock (?!) of lemmings)


Couldn't find it here:-

http://ojohaven.com/collectives/

So I would propose a "leap" of lemmings


WAY OT! Sorry.

atb









Glyn
 
Reply With Quote
 
Ken Tilton
Guest
Posts: n/a
 
      05-06-2006


Steve R. Hastings wrote:
> On Fri, 05 May 2006 21:16:50 -0400, Ken Tilton wrote:
>
>>The upshot of
>>what he wrote is that it would be really hard to make semantically
>>meaningful indentation work with lambda.

>
>
> Pretty much correct. The complete thought was that it would be painful
> all out of proportion to the benefit.
>
> See, you don't need multi-line lambda, because you can do this:
>
>
> def make_adder(x):
> def adder_func(y):
> sum = x + y
> return sum
> return adder_func
>
> add5 = make_adder(5)
> add7 = make_adder(7)
>
> print add5(1) # prints 6
> print add5(10) # prints 15
> print add7(1) # prints 8
>
>
> Note that make_adder() doesn't use lambda, and yet it makes a custom
> function with more than one line. Indented, even.
>
> You could also do this:
>
>
> lst = [] # create empty list
> def f(x):
> return x + 5
> lst.append(f)
> del(f) # now that the function ref is in the list, clean up temp name
>
> print lst[0](1) # prints 6
>
>
> Is this as convenient as the lambda case?
>
> lst.append(lambda x: x + 7)
> print lst[1](1) # prints 8
>
>
> No; lambda is a bit more convenient. But this doesn't seem like a very
> big issue worth a flame war.


<g> Hopefully it can be a big issue and still not justify a flame war.

Mileages will always vary, but one reason for lambda is precisely not to
have to stop, go make a new function for this one very specific use,
come back and use it as the one lambda statement, or in C have an
address to pass. but, hey, what are editors for?

the bigger issue is the ability of a lambda to close over arbitrary
lexically visible variables. this is something the separate function
cannot see, so one has to have a function parameter for everything.

but is such lexical scoping even on the table when Ptyhon's lambda comes
up for periodic review?

> If GvR says multi-line lambda would make
> the lexer more complicated and he doesn't think it's worth all the effort,
> I don't see any need to argue about it.


Oh, no, this is just front porch rocking chair BS. But as an enthuiastic
developer I am sensitive to how design choices express themselves in
ways unanticipated. Did the neat idea of indentation-sensitivity doom
pythonistas to a life without the sour grapes of lambda?

If so, Xah's critique missed that issue and was unfair to GvR in
ascribing his resistance to multi-statement lamda to mere BDFLism.

kenny

--
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
Attorney for Mary Winkler, confessed killer of her
minister husband, when asked if the couple had
marital problems.
 
Reply With Quote
 
John Bokma
Guest
Posts: n/a
 
      05-06-2006
Reported for excessive crossposting.

--
John Bokma Freelance software developer
&
Experienced Perl programmer: http://castleamber.com/
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
lambda vs non-lambda proc Steve Dogers Ruby 1 03-30-2009 10:11 PM
A critic of Guido's blog on Python's lambda Xah Lee Python 272 05-24-2006 06:33 PM
A critic of Guido's blog on Python's lambda Xah Lee Java 177 05-23-2006 07:11 PM
blog blog blog John Computer Information 0 02-13-2005 10:20 AM
Re: Lambda as declarative idiom (was RE: what is lambda used for inreal code?) Roman Suzi Python 13 01-07-2005 09:33 PM



Advertisments