# A Moronicity of Guido van Rossum

Discussion in 'Perl Misc' started by Xah Lee, Sep 29, 2005.

1. ### Xah LeeGuest

A Moronicity of Guido van Rossum

Xah Lee, 200509

On Guido van Rossum's website:
dated 20050826, he muses with the idea that he would like to remove
lambda, reduce(), filter() and map() constructs in a future version
Python 3000.

Guido wrote:
Â«filter(P, S) is almost always written clearer as [x for x in S if
P(x)], and this has the huge advantage that the most common usages
involve predicates that are comparisons, e.g. x==42, and defining a
lambda for that just requires much more effort for the reader (plus the
lambda is slower than the list comprehension)Â»

the form â€œ[x for x in S if P(x)]â€ is certainly not more clear than
â€œfilter(P, S)â€. The latter is clearly a function. What the **** is
the former? A function every programer in any language can understand
and appreciate its form and function. What the **** would anyone to
expect everyone to appreciate a Python syntactical idiosyncrasy â€œ[x
for ...]â€?

also, the argument that the from â€œfilter(F,S)â€ being cumbersome
because the first argument is a function and that mostly likely it
would be a function that returns true and false thus most people will
probably use the form â€œlambdaâ€ and that is quite cumbersomethan if
the whole thing is written with the syntactical idiosyncrasy â€œ[x for
....]â€, is rather inane, as you can now see.

The filter(decision_function,list) form is clean, concise, and helps
thinking. Why it helps thinking? Because it condenses the whole
operation into its mathematical essence with the most clarity. That is,
it filters, of a list, and by a yes/no decision function. Nothing is
more, and nothing can be less. It is unfortunate that we have the
jargon Lambda and Predicate developed by the morons in the tech geekers
of the functional programing community. The lambda could be renamed
Pure Function and the Predicate could be called True/False function,
but the world being the way they are already, it is unwise to rewrite
every existing Perl program just because somebody invented another
language.

If the predicate in lambda in filter() is cumbersome, so would exactly
the same thing appear in the syntactical idiosyncrasy â€œ[x for x in S
if P(x)]â€.

Guido added this sting as a afterthought:
Â«(plus the lambda is slower than the list comprehension)Â»

Which is faster is really the whim and capacity of Python
implementators. And, just before we were using criterion of simplicity.
The concept of a function every programer understands, what the **** is
a List Comprehension?
Why don't you scrap list comprehension in Python 3000 and create a
table() function that's simpler in syntax and more powerful in
semantics? ( See http://xahlee.org/perl-python/list_comprehension.html
)

Guido wrote:
Â«Why drop lambda? Most Python users are unfamiliar with Lisp or
Scheme, so the name is confusing; also, there is a widespread
misunderstanding that lambda can do things that a nested function can't
-- I still recall Laura Creighton's Aha!-erlebnis after I showed her
there was no difference! Even with a better name, I think having the
two choices side-by-side just requires programmers to think about
making a choice that's irrelevant for their program; not having the
choice streamlines the thought process. Also, once map(), filter() and
reduce() are gone, there aren't a whole lot of places where you really
need to write very short local functions; Tkinter callbacks come to
mind, but I find that more often than not the callbacks should be
methods of some state-carrying object anyway (the exception being toy
programs).Â»

In the outset Guido here assumes a moronitude about the set of Python
users and what they are familiar of. Python users 10 years ago are not
the same Python users today, and will certainly not be the same 10
years later if you chop off lambda. Things change, math literacy
advances, and what users you have changes with what you are. A pure
function (lambda) is the gist of a mathematical idea embodied in
computer languages, not something from LISP or Scheme as tech geeking
morons wont to think.

Guido wrote:
Â«... there is a widespread misunderstanding that lambda can do things
that a nested function can't...Â».

One is so insulted by a bigshot in the industry of quoting something so
disparate then shot it down as if showing his perspicacity.

A lambda is a syntax for function or a name for the concept of
function. What the **** does it mean that a lambda isn't as powerful as
nested function??

The lambda in Python is really ill. It is designed with a built-in
limitation in the first place, and regarded as some foreign substance
in the Imperative crowd such as the Pythoners. If there's any problem
with lambda, it is with lambda in Python and Pythoner's attitude.

Guido wrote:
Â«Also, once map(), filter() and reduce() are gone, there aren't a
whole lot of places where you really need to write very short local
functions;Â»

Of course, you begin to write things like Java, in three thousand words
just to state you are a moron.

The removing of elements in a language is in general not a good idea.
Removing powerful features so that morons can use it is moronic. (e.g.
Java) Removing â€œredundantâ€ constructs is not always smart (e.g.
Scheme), because it pinches on practicality. Removing existing language
features by a visionary upgrade is exceedingly moronic. It forces
unnecessary shakeup and can cause death.

Guido wrote:
Â«So now reduce(). This is actually the one I've always hated
most,...Â»

The existence of reduce() in Python is probably caused by tech geeking
clowns of the computing industry. Basically, nobody really have a clear
understanding of mathematics or computing semantics, but every elite
tech geeker knew about bags of constructs of various languages. So, you
add this, i want that, and the language becomes a incoherent soup of
constructs, with the backlash of wanting to chop off things again, with
that good things.

Suggestions: lambda, reduce(), filter() and map() all should stay. I'm
not sure exactly what's the ins and outs of Python 3000. If one wants
to shake things up based on a vision: don't. There are already
gazillion languages and visions; the world don't really need another
bigshot's say for their personal advancement. As for improvement,
lambda in Python should be expanded to remove its built-in limitation
(and Imperative Programing Crowd such as Pythoners should cease to have
lambda attitude problem). The function map() could also be considered
for expansion. (see â€œWhat is Expresiveness in a Computer Languageâ€
at http://xahlee.org/perl-python/what_is_expresiveness.html ) Function
reduce() should stay because it's already there, even if it is not very
useful and odd. filter() should stay as it is as it is superb and
proper.

---------
This post is archived at:
http://xahlee.org/perl-python/python_3000.html

Xah

âˆ‘ http://xahlee.org/

Xah Lee, Sep 29, 2005

2. ### Xah LeeGuest

reduce() in fact embodies a form of iteration/recursion on lists, very
suitable in a functional language environment. If Python's lambda and
other functional facilities are more powerful, reduce() would be a good
nest or sequence functions. (most readers will be familiar in the form
of unix shell's â€œpipeâ€). When you sequence functions, you can't
stop in the middle and do a loop construct. So, reduce() and other
functional forms of iteration are convenient and necessary.

----------
For version with slight professionalism (sans â€œfuckâ€), see:
http://xahlee.org/perl-python/python_3000.html

Note: Guido certainly isn't a moron. But, this post of his shows his
haughtiness, and rather unfamiliarity with functional programing. (i.e.
has he, worked in a functional language in any significant length or
project?) However, he's got the audacity to assert things, probably due
to bigshot status.

Guido's stumble isn't a rare instance in the industry, and i don't take
him to be of any sinister nature. (i don't know much about Guido the
person or personality.)

There are quite a lot fucking liers and charlatans in the computing
industry, especially the OpenSourcers, from the fucking
a-dime-a-million students with their â€œFREEâ€ irresponsible homeworks
on the net to fuckheads like James Gosling of Java , Larry Wall of
Perl, Linus Torvolts of Linux kernel, and that fuckhead C++ Berjo
something, the unix advocating fuckers, and those â€œgang of fourâ€
Design Patterns shit and the criminals of eXtreme Programing and UML...
with these pundits begets one generation of fucking tech geeking coding
monkeys, thinking that they know something, while creating a mass of
garbage that crashes and fucks us up everyday in the computing world.

(disclaimer: this post is pure opinion.)

"The required techniques of effective reasoning are pretty formal, but
as long as programming is done by people that don't master them, the
software crisis will remain with us and will be considered an incurable
disease. And you know what incurable diseases do: they invite the
quacks and charlatans in, who in this case take the form of Software
Engineering gurus." â€”Edsger Dijkstra 1930-2002.

Xah

âˆ‘ http://xahlee.org/

Xah Lee, Sep 29, 2005

3. ### MattGuest

Xah Lee wrote:
>There are quite a lot f___ing liers and charlatans in the computing
>industry, especially the OpenSourcers, from the f___ing
>a-dime-a-million students with their "FREE" irresponsible homeworks
>on the net to f___heads like James Gosling of Java , Larry Wall of
>Perl, Linus Torvolts of Linux kernel, and that f___head C++ Berjo
>something, the unix advocating f___ers, and those "gang of four"
>Design Patterns shit and the criminals of eXtreme Programing and UML...
>with these pundits begets one generation of f___ing tech geeking coding
>monkeys, thinking that they know something, while creating a mass of
>garbage that crashes and f___s us up everyday in the computing world.

OK... your post seems to indicate a belief that everyone else is
somehow incompetent. Sounds a bit like the "I am sane, it is everyone
else who is crazy" concept. Can you suggest a technology or
technologist who, in your expert opinion, has gotten it right?

Perhaps the language you have developed and others are using
successfully fits all of our needs?

Matt, Sep 29, 2005
4. ### Sherm PendleyGuest

"Matt" <> writes:

> OK... your post seems to indicate a belief that everyone else is
> somehow incompetent.

Xah's just a troll - best to just ignore him. He posts these diatribes
to multiple groups hoping to start a fight.

sherm--

--
Cocoa programming in Perl: http://camelbones.sourceforge.net
Hire me! My resume: http://www.dot-app.org

Sherm Pendley, Sep 29, 2005
5. ### Steven D'ApranoGuest

On Thu, 29 Sep 2005 10:44:28 -0700, Matt wrote:

> OK... your post seems to indicate a belief that everyone else is
> somehow incompetent. Sounds a bit like the "I am sane, it is everyone
> else who is crazy" concept. Can you suggest a technology or
> technologist who, in your expert opinion, has gotten it right?

Folks, Xah Lee is a classic Internet troll, and has been polluting this
newsgroup for a long time. Ask yourself, why would anyone rational cross
post criticism of Python to perl, lisp and scheme newsgroups? Does he
perhaps think that the Lisp and Scheme language developers are about to
remove the functional programming features from Lisp and need to be
shown Python as a warning?

He is the equivalent of one of those bored, spoiled teenagers who urinate
on public transport just to see the shocked reactions of other people. You
can't engage him in rational debate. Until we find a way to send electric
shocks through the Internet, all we can do is ignore him. To argue with
him just gives him the sick entertainment he wants.

--
Steven.

Steven D'Aprano, Sep 30, 2005
6. ### Kalle AnkeGuest

On Thu, 29 Sep 2005 19:44:28 +0200, Matt wrote
(in article <>):

> OK... your post seems to indicate a belief that everyone else is
> somehow incompetent. Sounds a bit like the "I am sane, it is everyone
> else who is crazy" concept. Can you suggest a technology or
> technologist who, in your expert opinion, has gotten it right?

He has posted similar posts about other things to at least one other mailing
list, the tone and arguments of these post were exactly the same.

Kalle Anke, Sep 30, 2005
7. ### Guest

In comp.lang.perl.misc Kalle Anke <> wrote:
> On Thu, 29 Sep 2005 19:44:28 +0200, Matt wrote
> (in article <>):

>> OK... your post seems to indicate a belief that everyone else is
>> somehow incompetent. Sounds a bit like the "I am sane, it is everyone
>> else who is crazy" concept. Can you suggest a technology or
>> technologist who, in your expert opinion, has gotten it right?

> He has posted similar posts about other things to at least one other mailing
> list, the tone and arguments of these post were exactly the same.

I wonder if his postings are related to the phases of the moon? It
might explain a lot.

Axel

, Sep 30, 2005
8. ### Sherm PendleyGuest

writes:

> I wonder if his postings are related to the phases of the moon? It
> might explain a lot.

Yes, it would. Note that the word lunatic is derived from the Latin word
luna, meaning moon.

sherm--

--
Cocoa programming in Perl: http://camelbones.sourceforge.net
Hire me! My resume: http://www.dot-app.org

Sherm Pendley, Sep 30, 2005
9. ### Sherm PendleyGuest

Re: OT: Phases of the moon

Steven D'Aprano <> writes:

> On Fri, 30 Sep 2005 18:02:14 -0400, Sherm Pendley wrote:
>
>> writes:
>>
>>> I wonder if his postings are related to the phases of the moon? It
>>> might explain a lot.

>>
>> Yes, it would. Note that the word lunatic is derived from the Latin word
>> luna, meaning moon.

>
> Yes, lunatic is derived from luna, but that doesn't mean the two are
> connected. The ancients believed a lot of crap

*whoosh*

That, my friend, was the sound of a joke flying past and completely
missing you. ;-)

sherm--

--
Cocoa programming in Perl: http://camelbones.sourceforge.net
Hire me! My resume: http://www.dot-app.org

Sherm Pendley, Oct 1, 2005
10. ### Steven D'ApranoGuest

OT: Phases of the moon [was Re: A Moronicity of Guido van Rossum]

On Fri, 30 Sep 2005 18:02:14 -0400, Sherm Pendley wrote:

> writes:
>
>> I wonder if his postings are related to the phases of the moon? It
>> might explain a lot.

>
> Yes, it would. Note that the word lunatic is derived from the Latin word
> luna, meaning moon.

Yes, lunatic is derived from luna, but that doesn't mean the two are
connected. The ancients believed a lot of crap (the world is flat, black
people aren't human, thunder is the sound of god's fighting, buying
over-valued dot-com stock is a good investment) and "phases of the moon
affecting behaviour" was one of them.

People are really bad at connecting cause and effect. See this thread for
a simple example:

http://msgboard.snopes.com/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=42;t=000228;p=1

A skeptical policeman who says he doesn't actually believe the moon
affects behaviour nevertheless reports that "last weekend" things were
really crazy, and it was a full moon. Somebody writes in to correct him:
no, the full moon is actually "tomorrow".

This shows how cognitive biases can fool us. Even though he was skeptical,
the cop noticed the extra crazy behaviour on this particular weekend, and
manged to fool himself into thinking it matched a full moon.

See here for more details, plus references to research:

http://skepdic.com/fullmoon.html

--
Steven.

Steven D'Aprano, Oct 1, 2005
11. ### Guest

Re: OT: Phases of the moon [was Re: A Moronicity of Guido van Rossum]

Steven D'Aprano wrote:
> On Fri, 30 Sep 2005 18:02:14 -0400, Sherm Pendley wrote:
>
> > writes:
> >
> >> I wonder if his postings are related to the phases of the moon? It
> >> might explain a lot.

> >
> > Yes, it would. Note that the word lunatic is derived from the Latin word
> > luna, meaning moon.

>
> Yes, lunatic is derived from luna, but that doesn't mean the two are
> connected. The ancients believed a lot of crap (the world is flat, black
> people aren't human, thunder is the sound of god's fighting, buying
> over-valued dot-com stock is a good investment) and "phases of the moon
> affecting behaviour" was one of them.
>
> People are really bad at connecting cause and effect. See this thread for
> a simple example:
>
> http://msgboard.snopes.com/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=42;t=000228;p=1
>
> A skeptical policeman who says he doesn't actually believe the moon
> affects behaviour nevertheless reports that "last weekend" things were
> really crazy, and it was a full moon. Somebody writes in to correct him:
> no, the full moon is actually "tomorrow".
>
> This shows how cognitive biases can fool us. Even though he was skeptical,
> the cop noticed the extra crazy behaviour on this particular weekend, and
> manged to fool himself into thinking it matched a full moon.
>
> See here for more details, plus references to research:
>
> http://skepdic.com/fullmoon.html

But correlations can exist even if the cause does not. There is a
correlation between the equinox and balancing an egg. But not
_because_ of the equinox, but because people only try it on the
equinox. Hence, egg balancing only happens on the equinox is a
true assertion.

>
>
> --
> Steven.

, Oct 1, 2005
12. ### Guest

I have an excellent idea. Create your own programming language and do
whatever you want with it. Until then, I'm thinking that Guido can do
whatever he wants with his. But I'm guessing that your programming

, Oct 1, 2005
13. ### Steven D'ApranoGuest

Re: OT: Phases of the moon

On Sat, 01 Oct 2005 00:18:44 -0400, Sherm Pendley wrote:

> *whoosh*
>
> That, my friend, was the sound of a joke flying past and completely
> missing you. ;-)

Wouldn't be the first time, and surely not the last. *wink*

--
Steven.

Steven D'Aprano, Oct 1, 2005
14. ### Bart LateurGuest

Re: OT: Phases of the moon [was Re: A Moronicity of Guido van Rossum]

Steven D'Aprano wrote:

>A skeptical policeman who says he doesn't actually believe the moon
>affects behaviour nevertheless reports that "last weekend" things were
>really crazy, and it was a full moon. Somebody writes in to correct him:
>no, the full moon is actually "tomorrow".

As a similar example: I've been told by various women independently,
that "there are more babies born near a full moon."

So... is there a correlation between insanity and babies being born?

--
Bart.

Bart Lateur, Oct 1, 2005
15. ### Xah LeeGuest

the programers in the industry, including bigwigs such as Guido or that
Sometimes i get pissed by Stephen Wolfram's megalomaniac cries, but in
many ways, i think his statements about the fucking moronicities of the
academicians and otherwise dignitaries are justified.

here i will try to illuminate some miscellaneous things regarding the
lambda in Python issue.

as i have hinted
( http://xahlee.org/perl-python/list_comprehension.html ), the
so-called List Comprehension is just a irregular syntax to facilitate
generating lists. The name is a terrible jargon, and the means is also
quite fucked up. The proper name should be something like
ListGenerator, and the proper means should be the plain function.

For instance, Python's range() is such a list generator, only that it
is limited in scope.

For a example of a powerful list generator, see Mathematica's Table
function:
http://documents.wolfram.com/mathematica/functions/Table

i'm running a project that will code Table in Perl and Python and Java.
http://xahlee.org/tree/Table.html
(note: the Python version there isn't complete)

Note Table's power in generating not just flat lists, but trees. And if
one really want flat lists, there's the Flatten function that flats any
nested lists. (Python should have this too)

Python's reduce() is Mathematica's Fold. See
http://documents.wolfram.com/mathematica/functions/Fold
Besides Fold, there's FoldList, FixedPoint, FixedPointList, Nest,
NestList and others. In Python's terms, FoldList is like reduce()
except it returns a list of each steps. FixedPoint recursively applies
a function to itself until the result no longer changes (or when a
optional function returns true) Nest is similar except it limits the
iteration by a number. The NestList and FixedPointList are similar
except that they return a list, containing all the steps.

All these can be written as a loop, but they make the code condensed
and meaning clear. More so, they are important when programing in a
functional style. In functional programing, you don't litter lots of
variables or temporary functions or intermediate loops here or there on
every other line. The code is usually tight and inline. When sequencing
a series of functions, you can't stop in the middle and do some loop or
auxiliary calculation. All these are made inline into a function. (that
is: constructed as lambda) A block of code usually corresponds to a
unit of the algorithm used, as opposed to the particular unit of the
implementation of the algorithm. You don't read the minute details of
the code. You read the algorithmic unit's comments, or just the input
and output of a code block.

Also, these inline loop constructs are not just for computing numbers
as Guido likes to ignorantly think. They are specialized forms of
generic loop constructs. Their first argument is a function, and second
argument is a list. Their generality lies with the fact that their
first argument is a function. If a language does not provide a
convenient way to represent the concept of a function, than these
functional loop constructs will suffer in usability.

The Python morons, did not provide a convenient way to represent a
function. (they tried, with their limited implementation of lambda and
shun it like a plaque)

The way Guido puts it gives us a nice glimpse of their retarded
mentality: â€œAlso, once map(), filter() and reduce() are gone, there
aren't a whole lot of places where you really need to write very short
local functions;â€

As we can see here, in Pythoner's mind, lambda is for â€œvery short
local functionsâ€.

Python's limited lambda coupled with their lambda attitude problem
among imperative morons, therefore functional programing suffers in
Python, and consequently one becomes so stupid as to come up with a
bunch of feelings about lambda, map, reduce, filter.

For Python's map(), look at Mathematica's Map on how it might be
extended.
http://documents.wolfram.com/mathematica/functions/Map
Note the ability to map to not just flat lists but trees (nested
lists). Note the power of expressing the concept of levels of a tree.

For Python's filter(), check out the equivalent in Mathematica's
Select:
http://documents.wolfram.com/mathematica/functions/Select
Note how it provides a third option for picking just the first n items.
Also note, that Select is just a way to pick elements in a list.
Mathematica provides a set to do these: Part, Take, Drop, Select,
Cases. All uniformly uses the function syntax and all operate
semantically by returning a new list. In Python and other imperative
clown's language, usually they provide a limited varieties to do such a
task, and also inconsistent like piled on. (e.g. alist[5:9], filter(),
alist.remove(...), del alist[...]). Some modify the list in-place, some
returns a new list.

-----------------

one is quite sorry to read a big shot contemplating on petty issues
with a ambitious name Python THREE THOUSAND.

For the grand Python THREE THOUSAND, what about supporting non-trivial
things such as built-in transparent fractions? What about a smart
exact-arithmetics once for all? What about supporting pattern matching?
(not textual pattern matching (e.g. regex) as Imperative Morons wont to
understand, but patterns of list structures and data types.)

the features of Mathematica mentioned above existed over a decade ago.
But today, OpenSourcing bigwigs can contemplate and dither nothing but
which lipstick to use.

A good number of the industrial dignitaries are just fucking liers. And
today we have the fucking Java and fucking Perl and their bosses
trumpeting their fucking state-of-the-art-ness. Go **** your wifes.

(disclaimer: all mentions of any real person are just opinion.)

-----
http://xahlee.org/perl-python/python_3000.html

Xah

âˆ‘ http://xahlee.org/

Xah Lee, Oct 1, 2005
16. ### Paul F. DietzGuest

Re: OT: Phases of the moon [was Re: A Moronicity of Guido van Rossum]

Bart Lateur wrote:

> As a similar example: I've been told by various women independently,
> that "there are more babies born near a full moon."

That's also a myth.

Paul

Paul F. Dietz, Oct 1, 2005
17. ### Ulrich HobelmannGuest

Re: OT: Phases of the moon [was Re: A Moronicity of Guido van Rossum]

Paul F. Dietz wrote:
> Bart Lateur wrote:
>
>> As a similar example: I've been told by various women independently,
>> that "there are more babies born near a full moon."

>
> That's also a myth.

Right, everybody knows that it's not natural (moon) light that
influences reproductive behavior, it's artificial light -- TV.

When TV is turned off by a power failure, lots of people that usually
never have sex start making love, and lots of people that usually use
contraception lose their minds and forget about it.

9 months later more babies are born, unless that's also a myth.

--
so we only have to teach them how to program.
somewhere in a German company
(credit to M. Felleisen and M. Sperber)

Ulrich Hobelmann, Oct 1, 2005
18. ### Sherm PendleyGuest

Re: OT: Phases of the moon

Bart Lateur <> writes:

> As a similar example: I've been told by various women independently,
> that "there are more babies born near a full moon."
>
> So... is there a correlation between insanity and babies being born?

If you weren't insane before the baby was born, you will be soon after. ;-)

sherm--

--
Cocoa programming in Perl: http://camelbones.sourceforge.net
Hire me! My resume: http://www.dot-app.org

Sherm Pendley, Oct 1, 2005
19. ### Running BareGuest

Re: OT: Phases of the moon [was Re: A Moronicity of Guido van Rossum]

Ulrich Hobelmann <> writes:

> When TV is turned off by a power failure, lots of people that
> usually never have sex start making love, and lots of people that
> usually use contraception lose their minds and forget about it.
>
> 9 months later more babies are born, unless that's also a myth.

http://www.snopes.com/pregnant/blackout.htm

"Despite initial reports of New York City hospitals' seeing a
dramatic increase in the number of births nine months after the
1965 blackout, later analyses showed the birth rate during that
period to be well within the norm."

Running Bare, Oct 1, 2005
20. ### Matt GarrishGuest

Re: [OT] A Moronicity of Guido van Rossum

"Lucas Raab" <> wrote in message
news:9GS%e.7067\$...
> Xah Lee wrote:
>
> [snip]
>
>>(they tried, with their limited implementation of lambda and
>> shun it like a plaque)

>
> Can't say I've heard that expression before...
>

Burns: I'm afraid it's not that simple. As punishment for your desertion,
it's company policy to give you the plague.
Smithers: Uh, sir, that's the plaque.

Matt

Matt Garrish, Oct 2, 2005