# A Moronicity of Guido van Rossum

#### Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

•  Subject
• Author
• Posted on
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:
=C2=ABfilter(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=3D=3D42, and defining a
lambda for that just requires much more effort for the reader (plus the
lambda is slower than the list comprehension)=C2=BB

the form80=9C[x for x in S if P(x)]=E2=80=9D is certainly not more cle=
ar than
=E2=80=9Cfilter(P, S)=E2=80=9D. The latter is clearly a function. What the =
fuck is
the former? A function every programer in any language can understand
and appreciate its form and function. What the fuck would anyone to
expect everyone to appreciate a Python syntactical idiosyncrasy80=9C[x
for ...]=E2=80=9D?

also, the argument that the from80=9Cfilter(F,S)=E2=80=9D being cumber=
some
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 form80=9Clambda=E2=80=9D and that is quite cumbersome=
than if
the whole thing is written with the syntactical idiosyncrasy80=9C[x for
.=2E.]=E2=80=9D, 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 idiosyncrasy80=9C[x for x in S
if P(x)]=E2=80=9D.

Guido added this sting as a afterthought:
=C2=AB(plus the lambda is slower than the list comprehension)=C2=BB

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 fuck 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:
=C2=ABWhy 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).=C2=BB

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:
=C2=AB... there is a widespread misunderstanding that lambda can do things
that a nested function can't...=C2=BB.

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 fuck 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:
=C2=ABAlso, 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;=C2=BB

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) Removing80=9Credundant=E2=80=9D constructs is not always smart (=
e=2Eg.
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:
=C2=ABSo now reduce(). This is actually the one I've always hated
most,...=C2=BB

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. (see80=9CWhat is Expresiveness in a Computer Language=
=E2=80=9D
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
xah@xahlee.org
=E2=88=91 http://xahlee.org /

## Re: A Moronicity of Guido van Rossum

Xah Lee 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?

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

## Re: A Moronicity of Guido van Rossum

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

## Re: A Moronicity of Guido van Rossum

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

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.

## Re: A Moronicity of Guido van Rossum

On Thu, 29 Sep 2005 19:44:28 +0200, Matt wrote

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.

## Re: A Moronicity of Guido van Rossum

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

Axel

## Re: A Moronicity of Guido van Rossum

axel@white-eagle.invalid.uk writes:

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

## 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:

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.

## Re: OT: Phases of the moon

*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

## Re: OT: Phases of the moon

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

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

--
Steven.

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

Steven D'Aprano wrote:

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

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.

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

Steven D'Aprano wrote:

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.

## Re: OT: Phases of the moon

If what they say is true, then yes, there is. That doesn't mean
there's a logical - or even rational - explanation for that
correlation.

<mike
--

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

Bart Lateur wrote:

That's also a myth.

Paul

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

Paul F. Dietz wrote:

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)

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

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."

## Re: OT: Phases of the moon

Ulrich Hobelmann wrote:

But the myth in question is babies being *born* under natural or
artificial light.  Not being conceived.

Cheers,
Brandon J. Van Every
(cruise (director (of SeaFunc)
'(Seattle Functional Programmers)))
http://groups.yahoo.com/group/SeaFunc

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

X-Ftn-To: Paul F. Dietz

Perhaps not, consider deamon or vampire babies.

:)

--
Matija

## Re: OT: Phases of the moon

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

## Re: A Moronicity of Guido van Rossum

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