Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

What does Python fix?

7 views
Skip to first unread message

Steven Majewski

unread,
Jan 16, 2002, 5:12:59 PM1/16/02
to

In Paul Graham's article "What Languages Fix" :

<http://www.paulgraham.com/fix.html>

he notes at the bottom that he doesn't know enough
about Python to descript it.

Any suggestions?

-- Steve Majewski

Martin v. Loewis

unread,
Jan 16, 2002, 7:25:13 PM1/16/02
to
Steven Majewski <sd...@Virginia.EDU> writes:

I believe the historical rationale was

Python: C takes too long to compile.

Regards,
Martin

Aahz Maruch

unread,
Jan 16, 2002, 8:07:29 PM1/16/02
to
In article <mailman.1011219213...@python.org>,

Steven Majewski <sd...@Virginia.EDU> wrote:
>
>In Paul Graham's article "What Languages Fix" :
>
> <http://www.paulgraham.com/fix.html>
>
>he notes at the bottom that he doesn't know enough
>about Python to descript it.

"C and Perl are too hard to read."
--
--- Aahz <*> (Copyright 2002 by aa...@pobox.com)

Hugs and backrubs -- I break Rule 6 http://www.rahul.net/aahz/
Androgynous poly kinky vanilla queer het Pythonista

"There are times when effort is important and necessary, but this should
not be taken as any kind of moral imperative." --jdecker

Peter Hansen

unread,
Jan 16, 2002, 9:00:46 PM1/16/02
to

I thought it was just:

"Python: Other languages suck worse."

Jason Orendorff

unread,
Jan 16, 2002, 8:58:15 PM1/16/02
to
Steven Majewski wrote:
>
> In Paul Graham's article "What Languages Fix" :
>
> <http://www.paulgraham.com/fix.html>
>
> he notes at the bottom that he doesn't know enough
> about Python to descript it.
>
> Any suggestions?

For me, it was "C++ is too low-level, and Java is no fun."

## Jason Orendorff http://www.jorendorff.com/


Paul Prescod

unread,
Jan 16, 2002, 10:57:33 PM1/16/02
to
"Martin v. Loewis" wrote:
>
>...

>
> I believe the historical rationale was
>
> Python: C takes too long to compile.

I went through this discussion already and one important thing to know
is that the idea isn't to figure out what the language designer wanted
to fix. It is more about why the user's don't use more traditional
languages.

Paul Prescod

Hans Nowak

unread,
Jan 16, 2002, 11:13:57 PM1/16/02
to
Steven Majewski wrote:
>
> In Paul Graham's article "What Languages Fix" :
>
> <http://www.paulgraham.com/fix.html>
>
> he notes at the bottom that he doesn't know enough
> about Python to descript it.

Apparently he thinks he knows enough about it to
say

"The latest hot language, Python, is a watered-down
Lisp with infix syntax and no macros. A new Lisp
would be a natural step in this progression. I
sometimes think that it would be a good marketing
trick to call it an improved version of Python."

Section 11, http://www.paulgraham.com/popular.html

Humph.

--Hans (base64.decodestring('d3VybXlAZWFydGhsaW5rLm5ldA==')
# decode for email address ;-)
Site:: http://www.awaretek.com/nowak/

Courageous

unread,
Jan 16, 2002, 11:30:34 PM1/16/02
to

>"The latest hot language, Python, is a watered-down
>Lisp with infix syntax and no macros. A new Lisp
>would be a natural step in this progression. I
>sometimes think that it would be a good marketing
>trick to call it an improved version of Python."

The notion that these LISP zealots can't wrap their
fantatical little minds around is the possibility that
large numbers of programmers, upon encountering LISP,
actually hate it. Or worse, use it for a while, and
then learn to hate it.

C//

Hans Nowak

unread,
Jan 16, 2002, 11:41:14 PM1/16/02
to

I didn't post that quote to start a flame war, but
calling Python a watered-down Lisp goes a bit far.
AFAIK, it wasn't even based on Lisp. Sure, it has
quite a few Lispish features, esp. the dynamism.
But Python is much more than just a Lisp rip-off.

Russ Cox

unread,
Jan 17, 2002, 1:16:29 AM1/17/02
to
> I didn't post that quote to start a flame war, but
> calling Python a watered-down Lisp goes a bit far.
> AFAIK, it wasn't even based on Lisp. Sure, it has
> quite a few Lispish features, esp. the dynamism.
> But Python is much more than just a Lisp rip-off.

Is there any connection with Smalltalk? Python feels very
much like "Smalltalk done better" to me.

Russ

Hans Nowak

unread,
Jan 17, 2002, 1:39:49 AM1/17/02
to

I think Python's primary influences were ABC and Modula-3,
but features of many languages can be recognized in it,
of course. Python's OO, for example, resembles Smalltalk
more than it does Java or C++ (IMHO). It's possible that
Smalltalk was an influence, but it's hard to trace.

Samuele Pedroni

unread,
Jan 17, 2002, 8:16:31 AM1/17/02
to
Do you actually hate Lisp? Why?
(it's a serious question, no flame
war unleashing intended)

regards, Samuele Pedroni.

Courageous <jkr...@san.rr.com> wrote in message
a1lc4ukkuljqi883s...@4ax.com...

Sean Holdsworth

unread,
Jan 17, 2002, 8:30:06 AM1/17/02
to

Well, I think I'd have to modify the entry for Ruby and then paraphrase
the entry for Smalltalk so we'd have:

Python: Perl is a kludge.
Ruby: Not everything in Python is an object.

;-)

Andrew Kuchling

unread,
Jan 17, 2002, 9:46:02 AM1/17/02
to
Courageous <jkr...@san.rr.com> writes:
> The notion that these LISP zealots can't wrap their
> fantatical little minds around is the possibility that
> large numbers of programmers, upon encountering LISP,
> actually hate it. Or worse, use it for a while, and
> then learn to hate it.

I don't know; I think most programmers are simply far too conservative
and too intolerant of superficial syntactical features. Witness how
much flak Python, an otherwise fairly conventional languages, takes
for its one unconventional feature, indentation. With this attitude,
Lisp with its parenthesis-heavy syntax doesn't stand a chance, no
matter how good or bad the language itself is.

--amk (www.amk.ca)
"Do I have to order you, Doctor?"
"I wouldn't advise it."
-- The Brigadier and the Doctor, in "The Green Death"

Aahz Maruch

unread,
Jan 17, 2002, 10:29:19 AM1/17/02
to
In article <3dwuyhh...@ute.mems-exchange.org>,

Andrew Kuchling <akuc...@mems-exchange.org> wrote:
>Courageous <jkr...@san.rr.com> writes:
>>
>> The notion that these LISP zealots can't wrap their
>> fantatical little minds around is the possibility that
>> large numbers of programmers, upon encountering LISP,
>> actually hate it. Or worse, use it for a while, and
>> then learn to hate it.
>
>I don't know; I think most programmers are simply far too conservative
>and too intolerant of superficial syntactical features. Witness how
>much flak Python, an otherwise fairly conventional languages, takes
>for its one unconventional feature, indentation. With this attitude,
>Lisp with its parenthesis-heavy syntax doesn't stand a chance, no
>matter how good or bad the language itself is.

The "intolerant" clause I get, but not "too conservative"; Lisp is one
of the oldest computer languages.

DeepBleu

unread,
Jan 17, 2002, 10:51:52 AM1/17/02
to
This is way too silly!
Anyway, why Python: Life is too short to figure out what a program
does..... and nowehere do people talk about 'Self' as they do in here!
DeepBleu

"Steven Majewski" <sd...@Virginia.EDU> wrote in message
news:mailman.1011219213...@python.org...

Mark McEahern

unread,
Jan 17, 2002, 10:45:39 AM1/17/02
to
Andrew Kuchling wrote:
> I don't know; I think most programmers are simply far too conservative
> and too intolerant of superficial syntactical features. Witness how
> much flak Python, an otherwise fairly conventional languages, takes
> for its one unconventional feature, indentation. With this attitude,
> Lisp with its parenthesis-heavy syntax doesn't stand a chance, no
> matter how good or bad the language itself is.

Yeah, but in the case of indentation, it only takes a little while to go
from hating it to not seeing how one could live without it. (That was the
case with me. I hated indentation at first and now I love it.)

As for Lisp's parentheses, I've never used Lisp, but when I look at
examples, I have to control my overwhelming desire to vomit when I see that
profusion of parentheses. It seems like a bad nightmare brought to life as
a programming language--or perhaps it's some secret BDSM initiatory rite?

Cheers,

// mark


Arona Ndiaye

unread,
Jan 17, 2002, 10:19:49 AM1/17/02
to
Programming should be about using the best tool for a given task. People
that stop at indentation or parenthesis "are not devoted to programming".

> --
> http://mail.python.org/mailman/listinfo/python-list

Michael Hudson

unread,
Jan 17, 2002, 11:19:13 AM1/17/02
to
"Mark McEahern" <mark...@mceahern.com> writes:

> Andrew Kuchling wrote:
> > I don't know; I think most programmers are simply far too conservative
> > and too intolerant of superficial syntactical features. Witness how
> > much flak Python, an otherwise fairly conventional languages, takes
> > for its one unconventional feature, indentation. With this attitude,
> > Lisp with its parenthesis-heavy syntax doesn't stand a chance, no
> > matter how good or bad the language itself is.
>
> Yeah, but in the case of indentation, it only takes a little while to go
> from hating it to not seeing how one could live without it. (That was the
> case with me. I hated indentation at first and now I love it.)
>
> As for Lisp's parentheses, I've never used Lisp,

Well, in view of your preceding paragraph, why do you need to carry
on?

Cheers,
M.

--
Well, you pretty much need Microsoft stuff to get misbehaviours
bad enough to actually tear the time-space continuum. Luckily
for you, MS Internet Explorer is available for Solaris.
-- Calle Dybedahl, alt.sysadmin.recovery

François Pinard

unread,
Jan 17, 2002, 11:12:43 AM1/17/02
to
[Mark McEahern]

> As for Lisp's parentheses, I've never used Lisp, but when I look at
> examples, I have to control my overwhelming desire to vomit when I see that
> profusion of parentheses.

Of course, whoever reads LISP code (and I still like LISP, even if I prefer
Python) looks at the indentation to understand it, not the parentheses.
Your editor looks at the parentheses and translates these into proper
indentation. Some LISP editors are quite good at this jobs. In a word,
for me at least, both Python and LISP need proper indentation to be readable.

Parentheses still need to be looked at for deciphering a single line,
while Python often does not have equivalent devices to batch many things
on one line. It sometimes make that LISP code is a bit more compact than
equivalent Python.

--
François Pinard http://www.iro.umontreal.ca/~pinard


Andrew Kuchling

unread,
Jan 17, 2002, 12:17:56 PM1/17/02
to
aa...@panix.com (Aahz Maruch) writes:
> The "intolerant" clause I get, but not "too conservative"; Lisp is one
> of the oldest computer languages.

Yeah, but most programmers these days will have cut their teeth in a C
or C-derived environment, such as Unix or Windows, and therefore
expect a C-like syntax. Lisp has seniority, but I doubt most people
come in contact with it, especially for real programs as opposed to
trivial factorial-computing examples. (Getting my CS degree at
McGill, I used Scheme in only one course; everything else was Pascal
or C. Plus a class project that was a Python extension...)

--amk (www.amk.ca)
I'll explain it to you another time, when I've got about two weeks to
spare.
-- Romana, in "The Armageddon Factor"

Dan Schmidt

unread,
Jan 17, 2002, 11:52:42 AM1/17/02
to
"Mark McEahern" <mark...@mceahern.com> writes:

| Yeah, but in the case of indentation, it only takes a little while
| to go from hating it to not seeing how one could live without it.
| (That was the case with me. I hated indentation at first and now I
| love it.)
|
| As for Lisp's parentheses, I've never used Lisp, but when I look at
| examples, I have to control my overwhelming desire to vomit when I
| see that profusion of parentheses. It seems like a bad nightmare
| brought to life as a programming language--or perhaps it's some
| secret BDSM initiatory rite?

It only takes a little while to go from hating it to not seeing how


one could live without it.

--
http://www.dfan.org

Samuele Pedroni

unread,
Jan 17, 2002, 12:23:20 PM1/17/02
to

Aahz Maruch <aa...@panix.com> wrote in message
a26qkf$ba3$1...@panix3.panix.com...

>
> The "intolerant" clause I get, but not "too conservative"; Lisp is one
> of the oldest computer languages.

If through my readings I got more or less the history right:

Yup, but "too conservative" applies as well.
When porting software was a major pain, and still can be,
some of the hardware evolution or OS dismissal
was capable to produce a kind of software tabula
rasa.

When the Lisp Machines could not survive as a governament/military
sponsored playground for AI research, they
were a wonderful development platform, but they could
not deliver/deploy to the hardware commercial users
could widely adopt and afford. And LMs were
very expensive eclectic single-hacker(not loser) machines.

When lisp came to the early workstantions it could
not really compete inside what was an already
C-centric culture,

PC-class machines were for a long while
too underpowered for lisp.

This is a different era from the era where
lisp flourished.
Call it PC/Workstations/M$/Unix, C
era, it is a different one and for long it has
been a performance obsessed era.

Python and other scripting/dynamic
languages or even
some new attention that Lisp draws, signal
that maybe we are very slowly moving out
of that, to a kind of renaissance

But my feeling is that still too much software
that could be written, e.g. in Python, is
still written in C/C++. Which is a bit of
a waste of energy, epecially for free/open
software done voluntarily.

Java (and equivalently C#) is the
mainstream small step in the "right"
direction, with GC, some dynamism
and got-right modularity,
but is not really incredibly more
produtictive, and it is funny to think
that it is such way, because it partecipates
to the static-typing credo (the containers
not so much but this will change :), AND
because it should be good for programming
your enterprise software solutions but
your micro-wawe oven, or a portable
phone or a tamagotchi TOO <wink>.

Ranting off.

Samuele.

Courageous

unread,
Jan 17, 2002, 12:40:46 PM1/17/02
to

>> > Or worse, use it for a while, and then learn to hate it.

>> I don't know; I think most programmers are simply far too conservative
>> and too intolerant of superficial syntactical features.

>Programming should be about using the best tool for a given task. People


>that stop at indentation or parenthesis "are not devoted to programming".

Speaking of tools and their correct use, DON'T TOP POST GODDAMMIT!

Now that I have that off my mind, it must irk you to know, then, that
I programmed in Lisp professionally for about 2 years. According to
the various lisp zealots, this should mean naturally that I ought to
have become a true believer. Instead, I discarded Lisp as an antiquated
system used by fanatics who likely don't spend much time exposing them-
selves to modern alternatives.

One thing which critically hamstrings Lisp is its lack of anything
resembling the scope or size of Java or Python's standard library.
Another thing which cripples it is the paucity of online code bases
to select from. These two together are enough to torpedo anyone
with any sense.

A language which is designed in such a way that it _requires_ a
specialized editor is itself a form of foolery guaranteed to alienate
many programmers (including this one), who passionately prefer a
particular editor.

Don't get me started about the cost of the tools!

C//

Donn Cave

unread,
Jan 17, 2002, 1:01:52 PM1/17/02
to
Quoth Andrew Kuchling <akuc...@mems-exchange.org>:
...

| I don't know; I think most programmers are simply far too conservative
| and too intolerant of superficial syntactical features. Witness how
| much flak Python, an otherwise fairly conventional languages, takes
| for its one unconventional feature, indentation. With this attitude,
| Lisp with its parenthesis-heavy syntax doesn't stand a chance, no
| matter how good or bad the language itself is.

I believe you're right about that, except maybe that last clause.
I mean, I read "conservative", "intolerant" and "superficial" as
pejorative, and there's some justice in that, but ...

for me, anyway, programming is nine tenths comprehension. Even
when I wrote it myself, [... blah, blah, familiar Python propaganda
snipped.] When we're talking about how notation conflicts with
comprehension, you can't really say "no matter how good or bad the
language itself is", because comprehension impairment can't reasonably
be separated from the language itself.

I'm not saying Lisp is necessarily less comprehensible, nor that
Python is necessarily more, nor that this issue is only about coding
notation - I think there's a lot of juice to be squeezed out of an
Object Oriented vs. Functional comparison on the matter of
comprehensibilty. But superficial features are important too.

Donn Cave, do...@u.washington.edu

Mark McEahern

unread,
Jan 17, 2002, 1:32:44 PM1/17/02
to
"Michael Hudson" <m...@python.net> wrote in message
news:uadvd3...@python.net...

> Well, in view of your preceding paragraph, why do you need to carry
> on?

Good point, thanks! I shouldn't barricade myself against a language before
I try it. Had I done that, I might not have discovered the joy which is
Python.

Cheers,

// mark


Tim Lavoie

unread,
Jan 17, 2002, 1:51:47 PM1/17/02
to
In article <3du1tkj...@ute.mems-exchange.org>, Andrew Kuchling wrote:
> aa...@panix.com (Aahz Maruch) writes:
>> The "intolerant" clause I get, but not "too conservative"; Lisp is one
>> of the oldest computer languages.
>
> Yeah, but most programmers these days will have cut their teeth in a C
> or C-derived environment, such as Unix or Windows, and therefore
> expect a C-like syntax. Lisp has seniority, but I doubt most people
> come in contact with it, especially for real programs as opposed to
> trivial factorial-computing examples. (Getting my CS degree at
> McGill, I used Scheme in only one course; everything else was Pascal
> or C. Plus a class project that was a Python extension...)

Having started off with 8-bit micros and TRS-80 or Commodore BASIC, I
should be stuck in VB-land. Fortunately, that is not the case.

I suspect that people tend to react one of two ways to exposure to new
ideas, programming languages and so on. Some go, "OK, this is what I
know now, so everything will now fit this mold." Given a large enough
hammer, even square pegs will become round, elegance be damned. Others
react with, "OK, that is neat, I can use that too. Eureka!"

You either want to explore, or you don't. I started off my CS course
already knowing BASIC, Pascal, and a decent smattering of C. I got
waaay too much additional Pascal used as the Bondage and Discipline
teaching language, some more C, APL, PL/1, Perl (work-term), and wee
bits of Prolog and Lisp. It's only after my degree that I had the time
to dig around and play with Java, Python, PostScript, more Lisp......

There is plenty to learn from all these sources, and many more. I
can't reasonably expect senior management to explore these wonders for
me, never mind recommend their use; it's up to me to find what
resonates, then convince them that this new wrench is something they
should invest my paid time into. So, I can deal with "weird"
indentation or parentheses as delimiters, if it helps me to understand
or fix a problem. People on this list may not appreciate Lisp, but
most could do much worse than to learn what it has to offer, even if
they don't end up using it. Ditto for the rest.

Tim


--
"Now let us peel back the foreskin of misconception and apply
the wire brush of enlightenment" -- Geoff Miller

Samuele Pedroni

unread,
Jan 17, 2002, 1:51:06 PM1/17/02
to
To get it right:

[myself]


> This is a different era from the era where
> lisp flourished.
> Call it PC/Workstations/M$/Unix, C
> era, it is a different one and for long it has
> been a performance obsessed era.
>

The performance issue has moved
from a legitimate thing to an obsession
in most cases.

regards.


Lulu of the Lotus-Eaters

unread,
Jan 17, 2002, 1:36:15 PM1/17/02
to
Andrew Kuchling <akuc...@mems-exchange.org> wrote previously:

|I don't know; I think most programmers are simply far too conservative
|and too intolerant of superficial syntactical features. Witness how
|much flak Python, an otherwise fairly conventional languages, takes
|for its one unconventional feature, indentation. With this attitude,
|Lisp with its parenthesis-heavy syntax doesn't stand a chance, no
|matter how good or bad the language itself is.

I'm one of those "superficial" programmers myself. I've *really* tried
to like Lisp. I would genuinely like to like it. But the prefix syntax
and glut of parentheses are simply too much for me to deal with. It
absolutely does not parse visually for me, much as if a programming
language were written in Kanji, or some other alphabet I do not know
(I'm sure the Roman alphabet of most all programming languages is a
similar obstacle to many other people). Sure it is "just spelling" in
principle, but learning the spelling is just too much work. I can
"sound out" Lisp, of course... character by character, I can translate
it into the "real meaning" of the expressions... but I cannot *program*
that way.

Btw. The nonsense that many Lisp advocates promote about redefining the
syntax is just that. Of course one can do that in principle. Define
your own infix syntax that is dynamically parsed into S-expressions, or
whatever. But nobody *does* it for the vast majority of Lisp code. So
trying to read real-life Lisp is still a matter of counting parentheses
and mental translation to the "actual" infix of operators. YMMV.

I don't think Python is like this at all. I realize that C-style
languages do not mandate indentation. So that feature is
unconventional. But in practice, C code (and C++, Java, Javascript,
even Perl to an extent) is -almost always- indented in almost the same
way as Python is required to be. The indentation doesn't require a
mental translation to read... albeit, it *might* require a slightly
different discipline to *write* than some people are used to.

Yours, Lulu...

--
Keeping medicines from the bloodstreams of the sick; food from the bellies of
the hungry; books from the hands of the uneducated; technology from the
underdeveloped; and putting advocates of freedom in prisons. Intellectual
property is to the 21st century what the slave trade was to the 16th.

Max

unread,
Jan 17, 2002, 2:55:05 PM1/17/02
to
Python: I can't remember what this code was supposed to do when I wrote it last
month.

On Wed, 16 Jan 2002 17:12:59 -0500 (EST), Steven Majewski <sd...@Virginia.EDU>
wrote:

Steven Majewski

unread,
Jan 17, 2002, 2:09:18 PM1/17/02
to

On Thu, 17 Jan 2002, Lulu of the Lotus-Eaters wrote:

> Btw. The nonsense that many Lisp advocates promote about redefining the
> syntax is just that. Of course one can do that in principle. Define
> your own infix syntax that is dynamically parsed into S-expressions, or
> whatever. But nobody *does* it for the vast majority of Lisp code. So
> trying to read real-life Lisp is still a matter of counting parentheses
> and mental translation to the "actual" infix of operators. YMMV.

I love programming in both Lisp and Python, and I can tell you that
while writing Lisp is easy once you get the hang of it, reading it,
especially someone else's Lisp code isn't nearly as effortless.

That's the problem with custon syntax: it doesn't really help you
at all unless everyone else uses it. (Well -- maybe it would be
worthwhile if you could get everyone on a large project to use the
same custom syntax -- just like sites have their own C style standards.)

When Dylan was being developed, there were plans for a Lisp-like
S-expression syntax as well as the more C like algebraic syntax.
They decided to drop the S-syntax -- to the annoyance of quite a
few Lispers. I believe they decided that a two syntax language
would not be 'stable' -- that eventually one would win out, so the
picked the one they wanted to promote.


-- Steve Majewski

François Pinard

unread,
Jan 17, 2002, 2:42:33 PM1/17/02
to
[Courageous]

> Instead, I discarded Lisp as an antiquated system used by fanatics who

> likely don't spend much time exposing themselves to modern alternatives.

You were still young and foolish at the time :-).

LISP undoubtedly has its virtues. Even if LISP has its fanatics, there
are many reasonable people who like it and use it.

An alternative is not necessarily better because it is more modern. People
might argue about why LISP had such a long life, but surely, some modern
things would not last that long. There might a real good idea underneath.

I'm not trying to say that LISP is the best possible language. On the
other hand, it is not what you described, above. Let's try to share our
love of Python, without being fanatic against other languages.

Joseph A Knapka

unread,
Jan 17, 2002, 4:43:20 PM1/17/02
to
François Pinard wrote:
>
> [Mark McEahern]
>
> > As for Lisp's parentheses, I've never used Lisp, but when I look at
> > examples, I have to control my overwhelming desire to vomit when I see that
> > profusion of parentheses.
>
> Of course, whoever reads LISP code (and I still like LISP, even if I prefer
> Python) looks at the indentation to understand it, not the parentheses.

Yes. Lisp is conceptually beautiful, much more so than any
other languages I've used (though Forth and Prolog come close:-),
but the parens are just unbearable. McCarthy, it seems,
actually wanted Lisp to have syntax; I wonder what that
would have looked like?

Someone should write a Lisp system that uses indentation
a la Python instead of parens. That would rock. Especially
if it compiled to Python bytecode and could use the
entire Python library. Hmm.... I guess the result might
be called "Python."

Cheers,

-- Joe
"I should like to close this book by sticking out any part of my neck
which is not yet exposed, and making a few predictions about how the
problem of quantum gravity will in the end be solved."
--- Physicist Lee Smolin, "Three Roads to Quantum Gravity"

Paul Hughett

unread,
Jan 17, 2002, 4:58:27 PM1/17/02
to
Steven Majewski <sd...@virginia.edu> wrote:

: In Paul Graham's article "What Languages Fix" :

: <http://www.paulgraham.com/fix.html>

: he notes at the bottom that he doesn't know enough
: about Python to descript it.

: Any suggestions?


Python: Using both braces and indentation is redundant.

Paul Hughett


Alex Martelli

unread,
Jan 17, 2002, 5:43:08 PM1/17/02
to
Tim Lavoie wrote:
...

> or fix a problem. People on this list may not appreciate Lisp, but
> most could do much worse than to learn what it has to offer, even if
> they don't end up using it. Ditto for the rest.

Amen. I don't do Lisp or Scheme "in anger" since forever, but I still do
have substantially better understanding of the way things are (or, could
be) for having put up with those maddening parentheses long enough to grasp
what lay behind them. I do believe that getting enough Scheme to follow
Abelson and Sussman to the end (and/or, enough mixal to follow Knuth) is a
worthwhile investment -- if you're the kind of person who gets high on
*understanding* things, as opposed to a "strict utilitarian" character.

Then, you can get back to Python... and use it better!


Alex

François Pinard

unread,
Jan 17, 2002, 6:30:04 PM1/17/02
to
[Joseph A Knapka]

> Someone should write a Lisp system that uses indentation a la Python
> instead of parens. That would rock. Especially if it compiled to Python
> bytecode and could use the entire Python library. Hmm.... I guess the
> result might be called "Python."

I read your remark as half humorous, half serious. Let me reply to the
serious part of it, because it is worth a thought.

Python, roughly summarised, has statements and expressions. Indentation is
used for statements only. As for expressions, Python is similar to LISP,
in that indentation has no meaning, and parentheses are often necessary.
We do agree that priority rules for operators alleviate the need of many
parentheses in Python.

LISP has nothing but expressions, or at least, theoretically. In practice,
people have a feeling of writing LISP statements, but the distinction is
fully subjective, a bit fuzzy, and not necessary. For being able to use
indentation to replace parentheses, this distinction would probably need
to be formalised and made unbearably rigid.

Also remember that LISP allows arbitrarily complex expressions to be used
in all positions of a function call, that is, for any argument or for the
function itself. I do not see how one could unambiguously express such
things through pure indentation. By comparison, Python needs verbosity to
render such intents. Even if it was possible to purely rely on indentation,
the code would use a lot more vertical space, as the current LISP notation
is rather compact. This bloat will not be welcome.

Dan Schmidt

unread,
Jan 17, 2002, 6:44:47 PM1/17/02
to
Joseph A Knapka <jkn...@earthlink.net> writes:

| Someone should write a Lisp system that uses indentation
| a la Python instead of parens.

http://sugar.mini.dhs.org/

--
http://www.dfan.org

Paul Jackson

unread,
Jan 17, 2002, 7:30:48 PM1/17/02
to

C// spoke (shouted) of:
>
> ... TOP POST['ing] ...

I guess this means placing one's response above the
quoted matter to which one is responding.

Does someone have a simple explanation of why such
top posting is bad form? I don't like it either,
but I am unable to articulate why I don't like it.
--

I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <p...@sgi.com> 1.650.933.1373

Steve Lamb

unread,
Jan 17, 2002, 7:51:17 PM1/17/02
to
On 18 Jan 2002 00:30:48 GMT, Paul Jackson <p...@sgi.com> wrote:
> C// spoke (shouted) of:

>> ... TOP POST['ing] ...

> I guess this means placing one's response above the
> quoted matter to which one is responding.

> Does someone have a simple explanation of why such
> top posting is bad form? I don't like it either,
> but I am unable to articulate why I don't like it.

IIRC this is from Tom Christiansen of perl fame.

EXECUTIVE SUMMARY:
To send better messages, please trim and summarize what you're
replying to, and integrate your quoted text with the body of your
message. Don't just put everything at the end. This isn't Jeopardy.
People expect question-and-answer, not answer-and-question responses.


LONG STORY:

Wouldn't you like to make your messages easier for others to read and
understand? If so, I have some news posting tips for you. If not,
just ignore this. (Of course, if you don't want your messages
easier to read and understand, it's not clear why you bother to
send them in the first place. :-) I'm going to take a bit of
time to explain this, because newcomers to Usenet often lack the
cultural background were I to send a superbrief message.

Here's the issue: you appear to have quoted the entire message to which
you were replying. Worst of all, you have done so by merely appending
the complete message at the bottom. Folks are used to reading the
original material first, then the follow-up. That's why it's called a
"follow-up", you know. :-)

If all you want to do is forward a copy of the message, that's one thing,
but here you seem to have just blindly pasted the complete old message at
the end without providing any content. This is neither a proper public
followup nor even a decent private reply. Here's why.

First of all, this is massive overkill -- you're supposed to trim your
quoted text to only what you're replying to. Otherwise you'll probably
violate the netiquette target quoting percentage of 50%. See below.
This isn't really an issue of space (I know that a few bytes here and
there mean less today than 20 years go), so much as it is of integrating
your comments with the old material for continuity.

Second, putting everything at the bottom does little good. It doesn't
provide the proper context. It's far too late. When you reply to
someone's content, the reason you quote the previous message is so that
you can provide some degree of contextual continuity. The best way to
do this is to interleave what you're quoting with your responses to that
particular piece. That means that you should provide a quoted portion,
then address what the points therein, then another quoted section, etc.
For example, here's how followup replies *should* look if you'd
like them to be more effective.

> Joe said we should eat noodles.

But I don't like noodles. They are a pain to prepare -- remember
that what started this thread was how to cook using only a microwave,
not real cooking -- and they provide you with very little sustenance
in the long run. It's like eating cardboard, nutritionally speaking.

> He also suggests adding anchovies.

What is this fish fetish? Not all of us like the little minnows
with the lingering briny taste swimming around our mouths for the
next few hours or days. Can you imagine this on a date? Iccccch!

Notice how in the text above, alternate quoted passages are interleaved
with new response text. Notice also that the new text far exceeds the
old text. This is the way it should be.

Here's an excerpt from RFC 1855, which explains why this is bad.
You can read the whole RCS at http://www.faqs.org/rfcs/rfc1855.html

- If you are sending a reply to a message or a posting be sure you
summarize the original at the top of the message, or include just
enough text of the original to give a context. This will make
sure readers understand when they start to read your response.
Since NetNews, especially, is proliferated by distributing the
postings from one host to another, it is possible to see a
response to a message before seeing the original. Giving context
helps everyone. But do not include the entire original!

If you are receiving this message in response to a news posting, please
understand that all modern newsreaders provide a mechanism to fetch
the parent article, so it is seldom necessary to quote the whole thing.
Sometimes even mail readers provide this, depending on the mail headers
and the list archival mechanism on your own system.
Here's a section from the essential netiquette guide, "A Primer
on How to Work With the Usenet Community", which is available in
news.announce.newusers. Perhaps your service provider neglected to point
you at this newsgroup before you got swallowed up by all of Usenet.
It's not only a good read; it's critical to understanding the culture
you're now moving in.

Summarize What You are Following Up.

When you are following up someone's article, please summarize the
parts of the article to which you are responding. This allows readers
to appreciate your comments rather than trying to remember what the
original article said. It is also possible for your response to get
to some sites before the original article.

Summarization is best done by including appropriate quotes from
the original article. Do not include the entire article since it
will irritate the people who have already seen it. Even if you are
responding to the entire article, summarize only the major points you
are discussing.

It's even more annoying when people needlessly quote the original's
automatic trailing matter, like signatures, adverts, or disclaimers.
Please don't do that.

--
Steve C. Lamb | I'm your priest, I'm your shrink, I'm your
ICQ: 5107343 | main connection to the switchboard of souls.
To email: Don't despair! | -- Lenny Nero, Strange Days
-------------------------------+---------------------------------------------

Mark McEahern

unread,
Jan 17, 2002, 7:42:10 PM1/17/02
to
Paul Jackson wrote:
> Does someone have a simple explanation of why such
> top posting is bad form? I don't like it either,
> but I am unable to articulate why I don't like it.

I personally don't mind top-posting. It beats the hell out of someone who
lazily quotes pages upon pages of text and then says at the bottom, "Yeah, I
agree."

IMHO, there are no hard and fast rules on how best to participate in a
thread, but here are some general ones:

o Try to be mindful of your reader's attention span.
o Try to provide just enough context (whether before or after).

;-)

// mark


Courageous

unread,
Jan 17, 2002, 9:39:46 PM1/17/02
to

>Does someone have a simple explanation of why such
>top posting is bad form?

Because Outlook does it by default? :)

C//

Steve Lamb

unread,
Jan 17, 2002, 10:31:48 PM1/17/02
to
On Fri, 18 Jan 2002 02:39:46 GMT, Courageous <jkr...@san.rr.com> wrote:
> Because Outlook does it by default? :)

Actually it doesn't. People are just stupid and presume that since the
cursor is at the top you just put the text there. All of my email, newsgroup,
BBS and fido editors always placed the cursor at the time. Where else are you
going to start to cull effectively, the bottom?

Huaiyu Zhu

unread,
Jan 17, 2002, 11:16:00 PM1/17/02
to
On 17 Jan 2002 18:30:04 -0500, François Pinard <pin...@iro.umontreal.ca> wrote:
>
>Python, roughly summarised, has statements and expressions. Indentation is
>used for statements only. As for expressions, Python is similar to LISP,
>in that indentation has no meaning, and parentheses are often necessary.
>We do agree that priority rules for operators alleviate the need of many
>parentheses in Python.
>
>LISP has nothing but expressions, or at least, theoretically. In practice,
>people have a feeling of writing LISP statements, but the distinction is
>fully subjective, a bit fuzzy, and not necessary. For being able to use
>indentation to replace parentheses, this distinction would probably need
>to be formalised and made unbearably rigid.

One possible distinction is between pure functions and special forms.
Here's an example of using Python statements and Lisp expressions:

def (f x y):
a = (g (h x) y)
if (w a): x
else: (- y)

I've tried this notation in my own notes. It sometimes helps me think about
abstraction when doing refactoring, esp when functions are being generated
and passed around. I can't specify why. And YMMV, of course.

>
>Also remember that LISP allows arbitrarily complex expressions to be used
>in all positions of a function call, that is, for any argument or for the
>function itself. I do not see how one could unambiguously express such
>things through pure indentation. By comparison, Python needs verbosity to
>render such intents. Even if it was possible to purely rely on indentation,
>the code would use a lot more vertical space, as the current LISP notation
>is rather compact. This bloat will not be welcome.
>

Example please?

Huaiyu

John Roth

unread,
Jan 17, 2002, 11:52:01 PM1/17/02
to
"Steve Lamb" <gr...@despair.dmiyu.org> wrote in message
news:slrna4f5p...@teleute.dmiyu.org...

> On Fri, 18 Jan 2002 02:39:46 GMT, Courageous <jkr...@san.rr.com>
wrote:
> > Because Outlook does it by default? :)
>
> Actually it doesn't. People are just stupid and presume that
since the
> cursor is at the top you just put the text there. All of my email,
newsgroup,
> BBS and fido editors always placed the cursor at the time. Where else
are you
> going to start to cull effectively, the bottom?

Putting the cursor at the top is ok. Adding a blank line so you have
some place to put your answer isn't.

John Roth

John Roth

unread,
Jan 17, 2002, 11:53:13 PM1/17/02
to

"Steven Majewski" <sd...@Virginia.EDU> wrote in message
news:mailman.1011219213...@python.org...

>
> In Paul Graham's article "What Languages Fix" :
>
> <http://www.paulgraham.com/fix.html>
>
> he notes at the bottom that he doesn't know enough
> about Python to descript it.
>
> Any suggestions?
>
> -- Steve Majewski

The crashing boredom of inserting all those
unnecessary braces, and checking that they are
where you thought they were.

John Roth

Martin von Loewis

unread,
Jan 18, 2002, 3:53:49 AM1/18/02
to
p...@sgi.com (Paul Jackson) writes:

> Does someone have a simple explanation of why such
> top posting is bad form? I don't like it either,
> but I am unable to articulate why I don't like it.

http://www.netmeister.org/news/learn2quote.html

Martin

Steve Holden

unread,
Jan 18, 2002, 9:27:33 AM1/18/02
to
"Steve Lamb" <gr...@despair.dmiyu.org> wrote in message
news:slrna4f5p...@teleute.dmiyu.org...
> On Fri, 18 Jan 2002 02:39:46 GMT, Courageous <jkr...@san.rr.com> wrote:
> > Because Outlook does it by default? :)
>
> Actually it doesn't. People are just stupid and presume that since
the
> cursor is at the top you just put the text there. All of my email,
newsgroup,
> BBS and fido editors always placed the cursor at the time. Where else are
you
> going to start to cull effectively, the bottom?

Outlook Express, at least (I don't use Outlook), not only puts the *cursor*
at thetop, it puts the bloody sig block at the top as well. So a newless
clubie is extremely likely to simply start typing above the signature, at
the conveniently-inserted blank space.

sick-of-cutting-and-pasting-ly y'rs - steve
--
Consulting, training, speaking: http://www.holdenweb.com/
Python Web Programming: http://pydish.holdenweb.com/pwp/

Andrew Kuchling

unread,
Jan 18, 2002, 10:26:22 AM1/18/02
to
Courageous <jkr...@san.rr.com> writes:
> Another thing which cripples it is the paucity of online code bases
> to select from. These two together are enough to torpedo anyone
> with any sense.

Indeed. In an interview with Kent Pitman on Slashdot, I was shocked
when he wrote:

In my recent professional life, I have personally written
several XML parsers, all in Lisp, for various employers and
most recently for myself and my fledgling company.

(At http://slashdot.org/article.pl?sid=01/11/03/1726251)

I'm unable to understand why you wouldn't just write the code once and
make it available, rather than implementing the same thing over and
over. Java seems to have a similar problem; people will write a new
Layout class, for example, and then want to charge $30 for it instead
of just tossing it on a Web page. Presumably this is a cultural thing
that differs between the languages. (And this is why Python not
compiling to a single executable by default is a good thing; it
doesn't strongly encourage the distribution of code without source.)

--amk (www.amk.ca)
The best-laid plans of mice and Kraals gang aft a-gley.
-- The Doctor, in "The Android Invasion"

Daniel Dittmar

unread,
Jan 18, 2002, 11:56:08 AM1/18/02
to
> I'm unable to understand why you wouldn't just write the code once and
> make it available, rather than implementing the same thing over and
> over. [...] Presumably this is a cultural thing

> that differs between the languages. (And this is why Python not
> compiling to a single executable by default is a good thing; it
> doesn't strongly encourage the distribution of code without source.)

And why are there several GUIs and Webtoolkits for Python instead of reusing
the one glorious solution? I guess that's a cultural thing too: because it's
often quite easy (at least in Python) to write something which does exactly
want you want it to do.

Daniel

JMarttila

unread,
Jan 18, 2002, 12:12:24 PM1/18/02
to
(Inserts cursor at top, inserts a blank line, begins typing)

Thank you Mark. I often read newsgroups through Google, as I am doing
now. I usually want to scream. "PLEASE TOP POST!" When I read a
newsgroup, I have already read the discussion. So I vastly prefer when
someone just puts their response AT THE TOP. I don't have to wade
through vast amounts of quoted text which I ALREADY READ. And I
already know WHO SAID WHAT! So a simple, "I agree with Mark's point",
or "Jim's point about xxxx I disagree with and here's why." works much
better for me. On Google, since it seems as many as 25% of the posts
lead of with a large chunk of quoted text, to read the actual new
content of the message I have to click on "read more of this message".
Usually when I do that I find a "yes, I agree" at the bottom of the
vast quote. Argh! So I've discovered that the best remedy for me is to
just ignore all messages that lead off by quoting so much of the
discussion (Which I already read! Get it?) that they need me to click
to see more. I find those posters usually don't have anything to add
anyway.

Of course, ideally, I prefer the people who are so intelligent and
courteous that they respond inline, with minimal amounts of quoted
material. But if you can't do that, please top post. I've already read
the rest of the damn discussion. I even prefer this method when I am
using a proper newsreader.

Now, if you are not sure what message I am responding to, please see
the material below.

John Marttila

BTW- I also really hate when discussions veer far off topic. Which I
am contributing to here. But that is a minor evil compared to bottom
posting.

"Mark McEahern" <mark...@mceahern.com> wrote in message news:<mailman.1011314607...@python.org>...

Aahz Maruch

unread,
Jan 18, 2002, 12:24:08 PM1/18/02
to
In article <101aca4.02011...@posting.google.com>,

JMarttila <mar...@bellsouth.net> wrote:
>
>Thank you Mark. I often read newsgroups through Google, as I am doing
>now. I usually want to scream. "PLEASE TOP POST!" When I read a
>newsgroup, I have already read the discussion. So I vastly prefer when
>someone just puts their response AT THE TOP.

Tell me, if you're not willing to follow cultural norms, why should
people pay attention to you?
--
--- Aahz <*> (Copyright 2002 by aa...@pobox.com)

Hugs and backrubs -- I break Rule 6 http://www.rahul.net/aahz/
Androgynous poly kinky vanilla queer het Pythonista

"I support family values -- Addams family values" --www.nancybuttons.com

Steve Holden

unread,
Jan 18, 2002, 12:25:23 PM1/18/02
to
"JMarttila" <mar...@bellsouth.net> wrote in message
news:101aca4.02011...@posting.google.com...

> (Inserts cursor at top, inserts a blank line, begins typing)
>
Sigh.

> Thank you Mark. I often read newsgroups through Google, as I am doing
> now. I usually want to scream. "PLEASE TOP POST!" When I read a
> newsgroup, I have already read the discussion. So I vastly prefer when
> someone just puts their response AT THE TOP. I don't have to wade
> through vast amounts of quoted text which I ALREADY READ. And I
> already know WHO SAID WHAT! So a simple, "I agree with Mark's point",
> or "Jim's point about xxxx I disagree with and here's why." works much
> better for me. On Google, since it seems as many as 25% of the posts
> lead of with a large chunk of quoted text, to read the actual new
> content of the message I have to click on "read more of this message".
> Usually when I do that I find a "yes, I agree" at the bottom of the
> vast quote. Argh! So I've discovered that the best remedy for me is to
> just ignore all messages that lead off by quoting so much of the
> discussion (Which I already read! Get it?) that they need me to click
> to see more. I find those posters usually don't have anything to add
> anyway.
>

Well, right. People who don't have the wit or ability to SELECTIVELY edit
what they are responding to probably deserve to be ignored. Particularly if
all they have to say is "me, too" -- who cares?

But you are swimming against the tide, in a more-than-probably-futile
attempt to reverse accepted netiquette practices because you disagree with
them (which you are free to do), and being rude (which you are also free to
do) by ignoring the accepted practice.

> Of course, ideally, I prefer the people who are so intelligent and
> courteous that they respond inline, with minimal amounts of quoted
> material. But if you can't do that, please top post. I've already read
> the rest of the damn discussion. I even prefer this method when I am
> using a proper newsreader.
>

You appear to completely ignore the poor readers who HAVEN'T read "the rest
of the damn[ed] discussion". Suppose somebody wants to forward a single
message from a thread you've contributed to. The poor reader then has to
read your contribution out of order. Which it is, in more than one sense.

In other words: "don't do that".

> Now, if you are not sure what message I am responding to, please see
> the material below.
>
> John Marttila
>
> BTW- I also really hate when discussions veer far off topic. Which I
> am contributing to here. But that is a minor evil compared to bottom
> posting.
>

Well, give me the major evil of people adhering to accepted standards any
time. We are used to threads verring off-topic on thislist. We are less used
to wilful ignorance of netiquette, but usually polite enough to accept most
behaviors without comment. You must have just caught me on a bad day :-)

> "Mark McEahern" <mark...@mceahern.com> wrote in message
news:<mailman.1011314607...@python.org>...
> > Paul Jackson wrote:
> > > Does someone have a simple explanation of why such
> > > top posting is bad form? I don't like it either,
> > > but I am unable to articulate why I don't like it.
> >

[...etc...]

regards
Steve

Michael Chermside

unread,
Jan 18, 2002, 12:50:12 PM1/18/02
to
... because footbinding is a lousy practice, even if it IS the

traditional cultural norm. Lousy practices should be replaced with
better ones from time to time even if it DOES change cultural norms.


>>Thank you Mark. I often read newsgroups through Google, as I am doing
>>now. I usually want to scream. "PLEASE TOP POST!" When I read a
>>newsgroup, I have already read the discussion. So I vastly prefer when
>>someone just puts their response AT THE TOP.
>

> Tell me, if you're not willing to follow cultural norms, why should
> people pay attention to you?


... because footbinding is a lousy practice, even if it IS the
traditional cultural norm. Lousy practices should be replaced with
better ones from time to time even if it DOES change cultural norms.


Trying-placate-both-sides-by-repeating-myself-ly yours,

-- Michael Chermside


Mark McEahern

unread,
Jan 18, 2002, 12:52:10 PM1/18/02
to
Aahz Maruch--perhaps unwittingly; if so all the better--offers us a slice of
irony early in the morning:

> Tell me, if you're not willing to follow cultural norms, why should
> people pay attention to you?
> --
> --- Aahz <*> (Copyright 2002 by aa...@pobox.com)
>
> Hugs and backrubs -- I break Rule 6
> http://www.rahul.net/aahz/
> Androgynous poly kinky vanilla queer het Pythonista

That made my day, you subversive you.

Cheers,

// mark

p.s. The sig is part of my observation, that's why it's included.

p.p.s. Is 10 am PST really early? Oh well.


Tim Lavoie

unread,
Jan 18, 2002, 1:25:18 PM1/18/02
to


I think the issue here is not so much that the language culture
differs, so much as a difference of personal opinion when it comes to
what is considered a problem. I've exchanged some e-mail with Kent on
this topic, and his basic feeling is that free tools enable him and
his competition equally, reducing the opportunities when it comes to
paid work. When I thought that it would be more useful to have
building blocks to use when writing more interesting programs, he
correctly pointed out that that makes assumptions about what someone
else would like to do. Fair enough. We left it as agreeing to
disagree. :-) Anyway, that doesn't mean that others aren't up to
writing and releasing their own XML parsers if they so choose, just be
aware that someone else might view it as pissing in an otherwise
lucrative pond.

By the same token, having source code available is just one inducement
to using an application. My employer uses plenty of software for which
there is no available source code, and if it works, they don't care.
The fact that they can pay for something which someone else cannot
afford is probably seen as a competitive advantage within that problem
domain. By the same token however, there are those who feel that it is
better to stick with an expensive, unwieldy and half-broken
application because to visibly change one's mind means that they were
wrong the first time. *THAT* would have much bigger implications than
merely tormenting internal developers by requiring them to do endless
duct-tape coding to hold the cruft together. Anyway, enough ranting...

Aahz Maruch

unread,
Jan 18, 2002, 2:05:22 PM1/18/02
to
In article <mailman.1011376408...@python.org>,

Mark McEahern <mark...@mceahern.com> wrote:
>Aahz Maruch--perhaps unwittingly; if so all the better--offers us a slice of
>irony early in the morning:
>>
>> Tell me, if you're not willing to follow cultural norms, why should
>> people pay attention to you?
>> --
>> --- Aahz <*> (Copyright 2002 by aa...@pobox.com)
>>
>> Hugs and backrubs -- I break Rule 6
>> http://www.rahul.net/aahz/
>> Androgynous poly kinky vanilla queer het Pythonista
>
>That made my day, you subversive you.

You've posted enough that I think I don't really need to spell this out
for you, but in case it isn't obvious to other people:

There's a big difference between the behavior one chooses in one's
personal life (as exemplified by my .sig) and the behavior one uses in
interacting with other people, particularly in public. For example, I
think that few people in this newsgroup would pay attention to a post
written in Japanese. Top-posting falls into the latter category.


--
--- Aahz <*> (Copyright 2002 by aa...@pobox.com)

Hugs and backrubs -- I break Rule 6 http://www.rahul.net/aahz/
Androgynous poly kinky vanilla queer het Pythonista

"I support family values -- Addams family values" --www.nancybuttons.com

John Marttila

unread,
Jan 18, 2002, 3:03:50 PM1/18/02
to
Good points. This may be my last top post. I just have as much of an
annoyance with large chunks of quoted text as most probably have with top
posting. So I get annoyed with TOP POST! screamings. Since most of my
newsgroup reading lately has been from Google there is a reason the standard
style is irritating at times. My post was more tongue in cheeck about
wasting time with ettiquette screamings as it was expecting anyone to like
the style prefer. I will make a real attempt to quote selectively and
inline from now on. Here I'm on Outlook Express, not sure how it will
format, so I'm still going to leave my text at the default top. It's not
important enough to care if anyone pays attention to me or not. (personal
emails are now up to 4-2 against my opinion. And one said they were
"INCREDIBLY offended!" Wow! I thought world peace was more important, I was
wrong.)

"Aahz Maruch" <aa...@panix.com> wrote in message
news:a29lno$428$1...@panix3.panix.com...

Mark McEahern

unread,
Jan 18, 2002, 2:29:32 PM1/18/02
to
Aahz wrote:
> You've posted enough that I think I don't really need to spell this out
> for you...

I try to provide context where appropriate and I do try to follow the
norms--where they make sense. I also try to be open to correction. I fail
sometimes. Oh well.

> There's a big difference between the behavior one chooses in one's
> personal life (as exemplified by my .sig) and the behavior one uses in
> interacting with other people, particularly in public. For example, I
> think that few people in this newsgroup would pay attention to a post
> written in Japanese. Top-posting falls into the latter category.

I entirely agree. I was merely trying to make the very simple point that
top-posting is not ALWAYS bad. I probably didn't do this very skillfully
and now I tire of the discussion.

By the way, I enjoy your posts--you have the rare ability to be informative
and entertaining at the same time.

I meant no offense; I was just trying to have a little fun with your sig--my
tongue-in-cheek comment was not intended as some unassailable mountain of
cultural anthropological argument. Or was it?

<wink>

// mark


Paul Jackson

unread,
Jan 18, 2002, 3:25:33 PM1/18/02
to

Steve replies (after a 1 Kbyte quotation of JMarttila):

|> Well, right. People who don't have the wit or ability to SELECTIVELY
|> edit what they are responding to probably deserve to be ignored.

Careful, Steve. It's not obvious you were following your own advice.

Steve Lamb

unread,
Jan 18, 2002, 4:18:20 PM1/18/02
to
On Fri, 18 Jan 2002 09:27:33 -0500, Steve Holden <sho...@holdenweb.com> wrote:
> Outlook Express, at least (I don't use Outlook), not only puts the *cursor*
> at thetop, it puts the bloody sig block at the top as well. So a newless
> clubie is extremely likely to simply start typing above the signature, at
> the conveniently-inserted blank space.

Ah, well, that's diff'rent then, innit? :)

> --
^ missing a space.

Joseph A Knapka

unread,
Jan 18, 2002, 4:20:27 PM1/18/02
to
Aahz Maruch wrote:
>
> In article <101aca4.02011...@posting.google.com>,
> JMarttila <mar...@bellsouth.net> wrote:
> >
> >Thank you Mark. I often read newsgroups through Google, as I am doing
> >now. I usually want to scream. "PLEASE TOP POST!" When I read a
> >newsgroup, I have already read the discussion. So I vastly prefer when
> >someone just puts their response AT THE TOP.
>
> Tell me, if you're not willing to follow cultural norms, why should
> people pay attention to you?

That's a silly argument. Sometimes people who break cultural
norms are *exactly* the people you ought to be listening to.
Martin Luther King Jr. did it; good thing we Americans listened,
eh?

I agree with everything Mr. Marttilla wrote about Google:
it is a severe PITA to follow a discussion there, when
everyone is following cultural norms re. posting style.
However, if people are really clipping irrelevancies and
quoting only the parts of a post that they're concerned
with, it is a very pleasant reading experience. Also, for
those of us with real newsreaders :-), it's often not
possible to find a relevant part of the discussion, if
the article in question has expired.

Cheers, and further-off-topicly-yrs,

-- Joe
"I should like to close this book by sticking out any part of my neck
which is not yet exposed, and making a few predictions about how the
problem of quantum gravity will in the end be solved."
--- Physicist Lee Smolin, "Three Roads to Quantum Gravity"

Mike C. Fletcher

unread,
Jan 18, 2002, 4:11:48 PM1/18/02
to
Just to play devil's advocate (and I prefer top-posting as well, as it
provides the opportunity to write a properly crafted rhetorical letter
;) , not a fragmented and disjointed attempt to mimic conversation):

The greatest minds of all time have almost invariably failed to follow
the cultural norms of their time. The eccentric genius, the artisan,
and the rebel are the archetypes charged with the ability to push
society forward, explore new boundaries, and define new norms for the
society.

Sure, sometimes the rebellion is just a flaunting of the rules of
society. Sure, sometimes its manipulation by forces seeking control of
the society (money) (the "counter-cultural clothing" industry, for
instance). But this doesn't mean that we should instantly dismiss those
who feel it necessary or preferable to venture beyond the boundaries
that some "elite" among us have set up.

We are not _required_ to listen, of course. But as a society, do we
really want to become so rigid and assured of our own truths and ideals
that we are unable to even listen to viewpoints, ideas or forms which
don't match our world-view? We are, after all, the _Python_ list, known
for discussions of everything from esoteric points of grammar through
time-travel conspiracy theories.

IMO, it is silly to focus too much on the forms, to ossify ourselves
into a strict and fussy set of guidelines, or to demand that all comers
pass a bar of peculiar social niceties before we will grant them the
respect we reserve for humans. Top-posting is a trivial and arguable
offense, some (myself included) even consider it the polite approach, we
will hopefully not splinter the group over the issue, as I'd miss your
posts Aahz :> .

We must allow them to break Rule 6 sometimes ;) ,
Mike


Aahz Maruch wrote:

...

> Tell me, if you're not willing to follow cultural norms, why should
> people pay attention to you?
>

_______________________________________
Mike C. Fletcher
http://members.rogers.com/mcfletch/

Alex Martelli

unread,
Jan 18, 2002, 5:23:37 PM1/18/02
to
Mike C. Fletcher wrote:
...

> The greatest minds of all time have almost invariably failed to follow
> the cultural norms of their time.

Immanuel Kant is among my candidates for "greatest minds of
all time", and a good counter-example to this stereotype of the
genius as a rebel (a stereotype that's among those we still
suffer from the Romantic movement; Kant was by some measure
the last and greatest of the Enlightenment rationalists). Of course
he's far from being the only one.

> respect we reserve for humans. Top-posting is a trivial and arguable
> offense, some (myself included) even consider it the polite approach, we

It's arguable because we're arguing about it, but if it was really trivial,
we wouldn't be arguing about it.

Whether a person is expressing himself or herself clearly and courteously
is among the "scoring" criteria I use, almost automatically, to decide how
to allocate my time among that person's posts and those of many others,
in terms of following them, trying to help, and so on. Not the sole
criterion, of course, but definitely not a trivial one either. And I
consider that a person who is writing answers before questions, and
so on, is seriously failing on the clarity and courtesy issue. Maybe it
would be appropriate in a group on Forth, surely not on a Python one.


Alex

Steven Majewski

unread,
Jan 18, 2002, 6:32:13 PM1/18/02
to

On Fri, 18 Jan 2002, Tim Peters wrote:

> [Steven Majewski]
> > ...
> > When Dylan was being developed, there were plans for a Lisp-like
> > S-expression syntax as well as the more C like algebraic syntax.
> > They decided to drop the S-syntax -- to the annoyance of quite a
> > few Lispers. I believe they decided that a two syntax language
> > would not be 'stable' -- that eventually one would win out, so the
> > picked the one they wanted to promote.
>
> And Dylan's subsequent meteoric rise to world domination proved that the
> "Lisp's problem is Lots of Insipid Stupid Parentheses" crowd was right all
> along <wink>.
>
> the-reason-lisp-excels-at-getting-ignored-isn't-skin-deep-ly y'rs - tim
>

But the syntax that won in Dylan was the algebraic C-like one, NOT
the S-expr syntax. How do you explain that ?

-- Steve

Tim Peters

unread,
Jan 18, 2002, 6:26:59 PM1/18/02
to

François Pinard

unread,
Jan 18, 2002, 7:34:20 PM1/18/02
to
[Huaiyu Zhu]

> > Even if it was possible to purely rely on indentation, the code would
> > use a lot more vertical space, as the current LISP notation is rather
> > compact. This bloat will not be welcome.

> Example please?

Oh, I've nothing very precise in head. Yet, consider:

((if a b c) (if d e f) (if g h i) (if j k l) (if m n o))

for a trivial skeleton of an example. Or if you feel induced by the
above example into discussing that Python should have if-expressions
(which it does not really need needed in my opinion), just replace each
`if' by more complex 'cond'.

I also include below a little Scheme example randomly taken from my older
things, which uses enclosed functions. Such things may surely all been
written in Python, but probably not so compactly. I'm not really seeking
an argument or fight here, just sharing an intuition.


;; ...

(define (modify redo undo focuses)
(and pos-flag (warning (_"Read-only in positioning mode")))
(letrec ((redo-function (lambda () (redo) (cons undo-function focuses)))
(undo-function (lambda () (undo) (cons redo-function focuses))))
(redo)
(set! redo-list '())
(set! undo-list (cons undo-function undo-list))))

(define (undo)
(and (null? undo-list) (warning (_"No more undo!")))
(let ((pair ((car undo-list))))
(set! focus-list (cdr pair))
(set! redo-list (cons (car pair) redo-list))
(set! undo-list (cdr undo-list))))

(define (redo)
(and (null? redo-list) (warning (_"No more redo!")))
(let ((pair ((car redo-list))))
(set! focus-list (cdr pair))
(set! undo-list (cons (car pair) undo-list))
(set! redo-list (cdr redo-list))))

(define (replace value focuses)
(let ((restore (car focuses)))
(if (null? (cdr focuses))
(let ((point focuses))
(modify (lambda () (set-car! point value))
(lambda () (set-car! point restore))
focuses))
(let ((point (cadr focuses))
(pos (current-index)))
(modify (lambda () (c-set! point pos value))
(lambda () (c-set! point pos restore))
(cdr focuses))
(set-car! focuses value)))))

;; ...

--
François Pinard http://www.iro.umontreal.ca/~pinard


James_...@i2.com

unread,
Jan 18, 2002, 7:19:26 PM1/18/02
to

Steven Majewski wrote:

>Tim Peters wrote:
>> And Dylan's subsequent meteoric rise to world domination proved that the
>> "Lisp's problem is Lots of Insipid Stupid Parentheses" crowd was right
all
>> along <wink>.
>>
>> the-reason-lisp-excels-at-getting-ignored-isn't-skin-deep-ly y'rs - tim
>>
>
>But the syntax that won in Dylan was the algebraic C-like one, NOT
>the S-expr syntax. How do you explain that ?

Lisa: Perhaps "Dylan's subsequent meteoric rise to world domination" was
meant to be sarcastic -- or ironic, at least.
Homer: Doh!
Moe: I never did like that Dylan guy. Can't sing. Give me Sinatra
anytime.
Lisa: I think it's the other Dylan.
Moe: Yeah, yeah, right. Well, I don't like "The Practice" either. Too
much singing and not enough suds. That bar is phoney-baloney.
Lenny: No that's Ally McBeal.
Homer: Mmm. The chick from Footloose. She's cute. But did you know all
that dancing was fake? They glued her head on top of the body of a real
dancer.
Lisa: That's Jennifer Beal and the movie is Flashdance. And they didn't
glue anything. They ... Oh never mind.

Jim


François Pinard

unread,
Jan 18, 2002, 7:59:31 PM1/18/02
to
[Mike C. Fletcher]

> The greatest minds of all time have almost invariably failed to follow
> the cultural norms of their time.

Maybe. But escaping norms is surely no guarantee of a great mind! :-)
Proper quoting is an art, which gets more and more diluted, as the Internet
gets more democratic. One should quote no more than necessary, and just
in time to re-establish the context for the reader. Many of us follow
more than one conversation at a time, and do not like paging down into a
massive quote, just to get a clue about where fits a reply.

Proper quoting looks like mere politeness to me. If I spoil the time of
all of my correspondents to save a bit of mine, I'm not very considerate.

> IMO, it is silly to focus too much on the forms, to ossify ourselves into
> a strict and fussy set of guidelines,

Even if I'm not an English speaker, I appreciate your prose as well written,
nicely punctuated, with no gross orthographical nor typographical mistake.
This may be part of the forms and conventions, but still, it produces an
aesthetical pleasure to your readers. Common guidelines are part of the
comfort of a society, they are important.

The same is true for the Python language. It sets many guidelines,
some of them are rigidly enforced, like indentation. Others, from the
Guido style recommendations, are usually welcome in the code we share.
Such things make the sharing much more pleasurable, this is important.

Courageous

unread,
Jan 18, 2002, 8:24:19 PM1/18/02
to

>> And Dylan's subsequent meteoric rise to world domination proved that the
>> "Lisp's problem is Lots of Insipid Stupid Parentheses" crowd was right all
>> along <wink>.

>> the-reason-lisp-excels-at-getting-ignored-isn't-skin-deep-ly y'rs - tim

>But the syntax that won in Dylan was the algebraic C-like one, NOT
>the S-expr syntax. How do you explain that ?

though-sarcasm-ly y'rs, my telepathic powers are telling me -- c//

Courageous

unread,
Jan 18, 2002, 8:42:30 PM1/18/02
to

François Pinard wrote:

>> [re: paucity of commerical Lisp stuff]

> No, I did not know. I'm not close to commercial software. When I work in
> Scheme, I use Gambit, which is free enough despite commercial.

Scheme is really minimalist when compared to ANSI Common Lisp.
Scheme is to Lisp about the same way K&R C is to ANSI-C++. Which
is to say, in both cases, the standards committee threw in the
kitchen sink and it crashed with a predictable bang.

One of the things which both C++ and Common Lisp have in common
is that there are so many forms and constructs for achieving the
same thing that it's actually possible (nay, likely!) for
programmers working in the field to have their own unique set
of preferred forms which they tend to favor, effectively meaning
that each programmer has their own _dialect_ of the language,
and may not even fully understand the dialect in use by other
programmers using the language. That's simply abhorrent.

Witness the mass defections from C++ to Java, which I firmly
believe happened at least in part because the representational
weight of the language outgrew the tolerance of large sections
of the coding community.

Lisp is worse. The Lisp community is like a ghost town, with
the occasional banshee howl echoing darkly around the chamber
in lament of what might have been.

C//

(redirecting this message from email to comp.lang.python)


Steven Majewski

unread,
Jan 18, 2002, 8:18:13 PM1/18/02
to

On 18 Jan 2002, Andrew Kuchling wrote:

> Indeed. In an interview with Kent Pitman on Slashdot, I was shocked
> when he wrote:
>
> In my recent professional life, I have personally written
> several XML parsers, all in Lisp, for various employers and
> most recently for myself and my fledgling company.
>
> (At http://slashdot.org/article.pl?sid=01/11/03/1726251)
>
> I'm unable to understand why you wouldn't just write the code once and
> make it available, rather than implementing the same thing over and
> over.

There's also the Charles Moore (inventor of Forth) philosopy:

Use a language that's very compact and expressive so programs are short.

Learn to be very good at it.

Don't use libraries: they are ineffecient and bloated because they
try to be general purpose. ( and don't write you're code to
try to do everything. )

Rewrite everything: by the time you've written your fifth or sixth
XML parser, you will be very good at it and you will have
discovered some good tricks to do it better.


The main problem with this approach is that not everyone is Chuck Moore!

-- Steve


Erno Kuusela

unread,
Jan 18, 2002, 9:31:28 PM1/18/02
to
In article <101aca4.02011...@posting.google.com>,
mar...@bellsouth.net (JMarttila) writes:

| Thank you Mark. I often read newsgroups through Google, as I am doing
| now. I usually want to scream. "PLEASE TOP POST!" When I read a
| newsgroup, I have already read the discussion. So I vastly prefer when
| someone just puts their response AT THE TOP.

a) please understand that the google groups archive is not the
purpouse for which usenet exists. usenet is primarily a interactive
medium in which people can share knowledge in semi real time.

b) even if you consider <URL: http://groups.google.com>, the context
argument still applies. it does no good to see the entirety of the
replied-to article in the bottom. it does a lot of good to see
the specific questions you are answering, since google groups
often retuns the answer instead of the question as the first
search result. you can always click the "view full thread" link
if you want to know the whole story.

-- erno

Tim Peters

unread,
Jan 19, 2002, 1:24:23 AM1/19/02
to
[Tim]

>> And Dylan's subsequent meteoric rise to world domination proved that
>> the "Lisp's problem is Lots of Insipid Stupid Parentheses" crowd was
>> right all along <wink>.

[Steven Majewski]


> But the syntax that won in Dylan was the algebraic C-like one, NOT
> the S-expr syntax.

Yup.

> How do you explain that ?

As my sig said,

>> the-reason-lisp-excels-at-getting-ignored-isn't-skin-deep-ly y'rs - tim

Syntax is skin deep. I'm not part of the "Lisp's problem is Lots of Insipid
Stupid Parentheses" crowd myself, so I never expected that Dylan's choice to
use algebraic syntax would do it good in the end; to the contrary, it
alienated old-time Lisp purists, who were Dylan's best hope for
wider-than-it-got adoption.

Any language even *inspired* by Lisp is doomed to eternal obscurity. The
Lisp'ers have been gnashing their teeth over "why?!" for decades. It's no
longer my job to explain it, since I abandoned Lisp years ago (I couldn't
understand the concept of nested parentheses <wink>).

leaving-lisp-angst-to-the-lispers-ly y'rs - tim


Jason Orendorff

unread,
Jan 19, 2002, 1:52:15 AM1/19/02
to
Francois Pinard wrote:
> I also include below a little Scheme example randomly taken from my older
> things, which uses enclosed functions. Such things may surely all been
> written in Python, but probably not so compactly. I'm not really seeking
> an argument or fight here, just sharing an intuition.

An enlightened attitude, to be sure. I enjoy this sort of thing;
I've tried to translate the Scheme into roughly equivalent Python,
to see if it's really longer. Take a look.

I've translated (warning) to a Python function that (the reader should
assume) throws an exception.


> (define (modify redo undo focuses)
> (and pos-flag (warning (_"Read-only in positioning mode")))
> (letrec ((redo-function (lambda () (redo) (cons undo-function focuses)))
> (undo-function (lambda () (undo) (cons redo-function
focuses))))
> (redo)
> (set! redo-list '())
> (set! undo-list (cons undo-function undo-list))))

def modify(redo, undo, focuses):
if pos_flag:
warning(_("Read-only in positioning mode"))

def redo_function():
redo()
return undo_function, focuses
def undo_function():
undo()
return redo_function, focuses

redo()
del redo_list[:]
undo_list.append(undo_function)

[You could of course give this a more brick-like appearance:
if pos_flag: warning(_("Read-only in positioning mode"))
def redo_function(): redo(); return undo_function, focuses
def undo_function(): undo(); return redo_function, focuses
but while it's legal Python, most people wouldn't think to do it.]

> (define (undo)
> (and (null? undo-list) (warning (_"No more undo!")))
> (let ((pair ((car undo-list))))
> (set! focus-list (cdr pair))
> (set! redo-list (cons (car pair) redo-list))
> (set! undo-list (cdr undo-list))))
>
> (define (redo)
> (and (null? redo-list) (warning (_"No more redo!")))
> (let ((pair ((car redo-list))))
> (set! focus-list (cdr pair))
> (set! undo-list (cons (car pair) undo-list))
> (set! redo-list (cdr redo-list))))

def undo():
if len(undo_list) == 0:
warning(_("No more undo!"))
redo_fn, focus_list[:] = undo_list.pop()()
redo_list.append(redo_fn)

def redo():
if len(redo_list) == 0:
warning(_("No more redo!"))
undo_fn, focus_list[:] = redo_list.pop()()
undo_list.append(undo_fn)


> (define (replace value focuses)
> (let ((restore (car focuses)))
> (if (null? (cdr focuses))
> (let ((point focuses))
> (modify (lambda () (set-car! point value))
> (lambda () (set-car! point restore))
> focuses))
> (let ((point (cadr focuses))
> (pos (current-index)))
> (modify (lambda () (c-set! point pos value))
> (lambda () (c-set! point pos restore))
> (cdr focuses))
> (set-car! focuses value)))))

I admit this stumped me. :-) Perhaps with some more
context I could have figured it out. The first branch
almost makes sense...

def replace(value, focuses):
restore = focuses[0]
if len(focuses) == 1:
def redo(): focuses[0] = value
def undo(): focuses[0] = restore
modify(redo, undo, focuses)
else:
point = focuses[1]
pos = current_index()
def redo(): ???
def undo(): ???
modify(redo, undo, focuses[1:])
focuses[0] = value

Draw whatever conclusions you like from this. :)

## Jason Orendorff http://www.jorendorff.com/


Paul Rubin

unread,
Jan 19, 2002, 2:24:23 AM1/19/02
to
"Tim Peters" <tim...@home.com> writes:
> Any language even *inspired* by Lisp is doomed to eternal obscurity.

Some of us persist in thinking of Python as a Lisp dialect, and like it
for that very reason.

Donn Cave

unread,
Jan 19, 2002, 2:32:32 AM1/19/02
to
Quoth Paul Rubin <phr-n...@nightsong.com>:

Whoops, now you've carelessly doomed Python to eternal obscurity.
I knew this thread should have ended sooner.

Donn Cave, do...@drizzle.com

Mike C. Fletcher

unread,
Jan 19, 2002, 2:21:26 AM1/19/02
to
It is certainly true that the flouting of the norm is not a sure mark of
genius, and there are examples of great minds whose greatness is their
ability to process within the field (as Alex pointed out, Kant was
apparently an in-the-box thinker (I didn't get that from what little
I've read of him, but I've only read 20 or 30 pages and found it far too
obscured to be worth finishing)).

Coming from a background in design, I (possibly too narrowly) associate
greatness with the ability to transcend the rules, to establish new
rules. For me, genius ("the greatest minds") is the likes of Gaudi,
Piccasso, Einstein or Ghandi, people who have introduced new ideas and
approaches from a vision of power and depth. I wouldn't want to move to
a point where we miss those voices. The definition of the filter is
incestuously related to the results of filtering ;) .

You raise the point of artistry (the ability to communicate precisely as
a social norm). I will certainly grant that it is a great benefit if
one can put forward the ideas of the outsider in a format readily
accessible by the insiders. I just want to be sure that we don't set it
as a requirement before we allow someone to speak.[*]

My comments regarding the need to avoid ossification were in reference
to the original comment by Courageous (long since dropped by the various
quote trimmings ;)
http://groups.google.com/groups?selm=e33e4u4vtebc90irkkcrspot3up71vtn5j%404ax.com
) which, though possibly tounge in cheek, was rather strong-sounding for
something that (to me) is minor. It's for that reason (and the idea
that the outsider should be ignored) that I felt it necessary to jump
in. Had this merely been about top-posting, I would have simply
continued about my top-posting ways and ignored the whole issue :o) .

It's probably true that Arona's post (
http://groups.google.com/groups?selm=mailman.1011280826.5351.python-list%40python.org)
was guilty of over-quoting (2 lines content, 27 lines quote), but the
reaction was to "yell" about, not the over-quoting, but the (to me)
rather fussy and unrelated issue of top-posting.

I suppose we've entirely exhausted any real content in this thread, so
I'll cede y'all the right to ignore me when I flout the rules and invade
the comfort space of all right-thinking peoples ;) :) .

Have fun, stay loose, remain cool, Nanoo-nanoo and enjoy yourself,
Mike

[*] I've been thinking about this issue a lot (too much?) lately in
connection with the issue of high-function autism. It seems to me that
some of the most valuable and precious minds are those sitting just the
other side of the "normalcy" threshold which allows easy communication
and interaction. Huge capacity for systematisation and organisation,
the ability to structure and order large numbers of seemingly disparate
ideas, and the capacity to recognise faint and almost inperceptable
patterns are powerful tools, if they can be harnessed.

François Pinard wrote:

> [Mike C. Fletcher]
>>The greatest minds of all time have almost invariably failed to follow
>>the cultural norms of their time.
>>
>
> Maybe. But escaping norms is surely no guarantee of a great mind! :-)
> Proper quoting is an art, which gets more and more diluted, as the Internet
> gets more democratic. One should quote no more than necessary, and just
> in time to re-establish the context for the reader. Many of us follow
> more than one conversation at a time, and do not like paging down into a
> massive quote, just to get a clue about where fits a reply.

...

> Even if I'm not an English speaker, I appreciate your prose as well written,
> nicely punctuated, with no gross orthographical nor typographical mistake.
> This may be part of the forms and conventions, but still, it produces an
> aesthetical pleasure to your readers. Common guidelines are part of the
> comfort of a society, they are important.

...

Alex Martelli

unread,
Jan 19, 2002, 4:13:02 AM1/19/02
to
Mike C. Fletcher wrote:

> It is certainly true that the flouting of the norm is not a sure mark of
> genius, and there are examples of great minds whose greatness is their
> ability to process within the field (as Alex pointed out, Kant was
> apparently an in-the-box thinker (I didn't get that from what little
> I've read of him, but I've only read 20 or 30 pages and found it far too
> obscured to be worth finishing)).

I said nothing about Kant's *thought* (a huge subject in itself, and pretty
hard to discuss since, as you point out, he's definitely not an easy read --
not even for native German speakers, I'm told, and non-Germans suffer
under a further handicap via the translation). I was discussing *behavior*:
following (or not) the behavioral norms of one's times and culture.

In terms of "prcessing within the field", it's surely also possible to
identify numerous individuals whose contributions can arguably be
summarized as taking existing ideas to full bloom in one or more
ways. Such individuals then tend to be the "peak" of some trend
or other; what comes after them, if not just trite rehashing, has to
follow new trails, as they've exhausted the already-beaten ones.

Cicero, for example, could be framed in this way -- staunch defender
of the dying oligarchy-Republic, perfecter of formalized Latin oratory.
Thomas Aquinas, apex of the Scholastic philosophy. Johann
Sebastian Bach -- there COULD be no original Baroque music after
him, he had composed the ultimate. Each case is debatable, of
course. Kant, in this sense, goes a bit too deep to frame in such
wise. Yes, he was also a culmination (of Rationalist enlightenment
thought), but in his case I consider this a historical accident; he had
not said the last word on rational criticism of rational thought's very
fundaments -- it took more than a century for the huge wave of
Romantic rebellion to recede enough to give this issue space again,
but, when it had, we did get a Wittgenstein (and others).


Alex

Fredrik Lundh

unread,
Jan 19, 2002, 5:25:06 AM1/19/02
to
Donn Cave wrote:
> | Some of us persist in thinking of Python as a Lisp dialect, and like it
> | for that very reason.
>
> Whoops, now you've carelessly doomed Python to eternal obscurity.

not necessarily. true Lisp heads see *everything* as more
or less broken Lisp dialects.

(the paul graham article mentioned at the top of this thread
originally claimed that the problem Python set out to solve is
that "Lisp syntax is scary and CL and Scheme have no libraries.")

</F>

<!-- Schinken, Frühstücksfleisch und Eier:
http://www.oreilly.de/catalog/pythonslger/
-->


Tim Peters

unread,
Jan 19, 2002, 6:20:32 AM1/19/02
to
[Paul Rubin]

> Some of us persist in thinking of Python as a Lisp dialect,
> and like it for that very reason.

[Donn Cave]


> Whoops, now you've carelessly doomed Python to eternal obscurity.

[/F]


> not necessarily. true Lisp heads see *everything* as more
> or less broken Lisp dialects.

Yup. Which makes it refreshing that comparatively few insist Python is a
broken Smalltalk dialect <wink>.

> (the paul graham article mentioned at the top of this thread
> originally claimed that the problem Python set out to solve is
> that "Lisp syntax is scary and CL and Scheme have no libraries.")

The problem Python set out to solve is that ABC was useless for real-life
programming. If Guido knows anything substantial about Lisp or Scheme, he's
done an excellent job of hiding it for more than a decade. I've seen him
struggle with simple elisp, for God's sake <wink>.

time-to-replay-the-effbot's-lambda-refactoring-rule-ly y'rs - tim


Erno Kuusela

unread,
Jan 19, 2002, 7:57:41 AM1/19/02
to
In article <7xn0zau...@ruckus.brouhaha.com>, Paul Rubin
<phr-n...@nightsong.com> writes:

lisp people think of all other languages as "a lisp dialect without
foo and with bar", so perhaps it is only necessary to avoid non-lisp
people getting the inspired by lisp impression ;)

-- erno

phil hunt

unread,
Jan 18, 2002, 3:17:56 PM1/18/02
to
On 18 Jan 2002 09:24:08 -0800, Aahz Maruch <aa...@panix.com> wrote:
>In article <101aca4.02011...@posting.google.com>,
>JMarttila <mar...@bellsouth.net> wrote:
>>
>>Thank you Mark. I often read newsgroups through Google, as I am doing
>>now. I usually want to scream. "PLEASE TOP POST!" When I read a
>>newsgroup, I have already read the discussion. So I vastly prefer when
>>someone just puts their response AT THE TOP.
>
>Tell me, if you're not willing to follow cultural norms, why should
>people pay attention to you?

Indeed.

--
===== Philip Hunt ===== ph...@comuno.freeserve.co.uk =====
One OS to rule them all, one OS to find them,
One OS to bring them all and in the darkness bind them,
In the Land of Redmond, where the Shadows lie.


Martijn Faassen

unread,
Jan 19, 2002, 10:19:16 AM1/19/02
to
François Pinard <pin...@iro.umontreal.ca> wrote:
> [Mike C. Fletcher]

>> The greatest minds of all time have almost invariably failed to follow
>> the cultural norms of their time.

> Maybe. But escaping norms is surely no guarantee of a great mind! :-)

[snip]

It's really just an application of Bozo the Clown principle:

"Hah! You laugh at me, but they laughed at [very famous person people
might or might not have laughed at] too!"

"But they also laughed at Bozo the clown."

Looks like it was Carl Sagan with this particular expression of this
important principle. :)

Regards,

Martijn
--
History of the 20th Century: WW1, WW2, WW3?
No, WWW -- Could we be going in the right direction?

Martijn Faassen

unread,
Jan 19, 2002, 10:37:36 AM1/19/02
to
Tim Peters <tim...@home.com> wrote:
[snip]

> Any language even *inspired* by Lisp is doomed to eternal obscurity. The
> Lisp'ers have been gnashing their teeth over "why?!" for decades. It's no
> longer my job to explain it, since I abandoned Lisp years ago (I couldn't
> understand the concept of nested parentheses <wink>).

It has been my observation that long time Lisp use seems to affect the
mind in weird ways. Lisp use seems to have a higher than average chance
to make the user become rather, ahum, eccentric. Take for instance Richard
Stallman, or Erik Naggum.

Perhaps it's the conceptual single-mindedness of Lisp that affects the brain.
Or perhaps the infix notation? We need to investigate Forth users, another
conceptually single-minded language but definitely without any infix
syntax whatsoever. Chuck Moore seems to fit the bill for eccentric more than
the average person. Then again, Perl is hardly conceptually single-minded,
and Larry Wall can be considered to be fairly eccentric. Any chance we
can blame that on Lisp use in his past somewhere? Probably not. And Smalltalk,
also conceptually single-minded, does not seem to have the same effect on
its users.

Another reason might be that Lisp is an old language. Perhaps you had to
be prone to eccentricity to be attracted to programming back then.
We need to sample old Fortran and Cobal programmers to verify this
theory. I cannot think of any obvious examples, so this theory has a
bad start.

It is still uncertain what effect Python has on long term mental processes.
One example of what we could all turn into would be Tim Peters, an entirely
normal and well adjusted personality. We therefore seem to have nothing
to worry about.

Well, for some obscure reasons people seem to think Tim is a bot, but that
is no reason to call him eccentric. And all the other reasons people could
come up with suffer from obvious logical flaws as well. And if people judge
him eccentric anyway, then we can point to his use of Lisp in the past as
the cause.

Me-eccentric?-ly yours,

Courageous

unread,
Jan 19, 2002, 11:18:23 AM1/19/02
to

>>>Thank you Mark. I often read newsgroups through Google, as I am doing
>>>now. I usually want to scream. "PLEASE TOP POST!" When I read a
>>>newsgroup, I have already read the discussion.

People who top post are often in the same group of people who
post responses to messages without leaving any context at all.
Likewise, these same folks often leave the entire message intact
beneath their top post. Either behavior is a bad behavior.

Leaving the entire message intact really burns for all of those
folks, many in Europe, who have to pay for their connections by
the minute, and there for for the length of the message by the
other poster's bungling. It also burns for people using modems
who have to wait for message downloads that are bloated by
weenies who couldn't be bothered to cut.

Leaving no context at all assumes that the target audience is
using a threaded browser (and doing so in threaded mode). Many
folks do not; in fact the oldest and earliest usenet browsers
don't do this, and there are large numbers of readers who simply
don't look at usenet this way. And in any case, even relying
on the thread doesn't provide the maximum amount of context.

The appropriate way to post is selective snip-and-respond. You
don't quote whole messages, you simply quote select sentences
to provide everyone with per-response context. This is part-
icularly good for new readers of the thread, but even the
active participants often need this context because of the
sure volume of threads some of them are active in. This gives
all involved a clear idea of what it is you are responding to,
and helps those you are talking with remember what it was they
said.

Too many top posters want to treat usenet like a chat room.
It isn't. There are time-delays, and people need the context
to keep track.

Top posters remind me of people who respond to my email messages
a few days late and don't quote that. Tell me why again they think
they're so important that I'm going to remember what it was that
we were talking about?

Top posters just don't get it.

I think of the vast majority of routine top posters as net newbies
who have no net clue. It doesn't help them with this perception that
they are violating net etiquette.

By all means, continue picking your nose in public.

C//

phil hunt

unread,
Jan 19, 2002, 10:36:46 AM1/19/02
to
On Fri, 18 Jan 2002 21:20:27 GMT, Joseph A Knapka <jkn...@earthlink.net> wrote:
>> >Thank you Mark. I often read newsgroups through Google, as I am doing
>> >now. I usually want to scream. "PLEASE TOP POST!" When I read a
>> >newsgroup, I have already read the discussion. So I vastly prefer when
>> >someone just puts their response AT THE TOP.
>>
>> Tell me, if you're not willing to follow cultural norms, why should
>> people pay attention to you?
>
>That's a silly argument.

It's not an argument, rather a question.

> Sometimes people who break cultural
>norms are *exactly* the people you ought to be listening to.

That may be true; however, it is the case that people often ignore
those who break cultural norms.

François Pinard

unread,
Jan 19, 2002, 12:20:06 PM1/19/02
to
[Jason Orendorff]

> I've tried to translate the Scheme into roughly equivalent Python,
> to see if it's really longer. Take a look.

Thanks for the exercise, Jason.

> def modify(redo, undo, focuses):


> def redo_function():
> redo()
> return undo_function, focuses
> def undo_function():
> undo()
> return redo_function, focuses

This might not work, I'm not sure. Take `undo_function', in the `return'
statement within `redo_function': it is neither global nor local, so I
guess it might not be defined. Don't we need to resort to a Python class,
for correctly representing a Scheme closure containing functions meant to
survive outside the scope of their definition?

I did not study what happened to scopes since Python 1.5.2, I know that
there are changes in this area, so maybe the problem I see is already gone.

> def undo():
> if len(undo_list) == 0:
> warning(_("No more undo!"))
> redo_fn, focus_list[:] = undo_list.pop()()
> redo_list.append(redo_fn)

I'm only worried a bit by the replacement of the whole focus_list, not
knowing how efficient such an operation is. But even if it was slow,
it would be bearable in this case.

> > (define (replace value focuses)

> I admit this stumped me. :-) Perhaps with some more context I could
> have figured it out.

I just took this from a bigger example, because Huaiyu Zhu asked for an
example and I did not feel like building one for demonstration.

> def replace(value, focuses):
> restore = focuses[0]
> if len(focuses) == 1:
> def redo(): focuses[0] = value
> def undo(): focuses[0] = restore
> modify(redo, undo, focuses)

I did not study all the implications in detail, but yet, wonder if the `redo'
and `undo' function correctly photograph the current value of `focuses', at
the time of the definition occurred, for later use. I would be tempted to
doubt it. Especially given that slice replacement is used in other places.

I still have the overall feeling that, without special care, it is not that
easy to write Python code that correctly represents the original Scheme.
It might require more vertical space, including a few more accessory classes.

François Pinard

unread,
Jan 19, 2002, 12:50:29 PM1/19/02
to
[Mike C. Fletcher]

> Kant was apparently an in-the-box thinker (I didn't get that from what

> little I've read of him, [...])

Even in his life habits, outside any writing, Kant was extremely
conservative. His daily routine was so predictable and regular, that
neighbours were adjusting their watch on the fact Kant was walking in
front of their house. At least, so says the tale. :-)

> I just want to be sure that we don't set it as a requirement before we
> allow someone to speak.[*]

The same you choose your friends, and would not invite _anybody_ home, some
of us choose their email correspondents, and do not like being disturbed by
shouting or otherwise disrespectful people, and that we even filter messages.

I'm happy with the `python-list', because of the good spirit of people
in here. But I did unsubscribe for many other mailing lists where the tone
was less friendly. French People writing to me, and showing no respect
for my language (we sure all make errors, but some seem rather proud of
making no kind of effort), quickly find their way in my kill files :-)
And should we speak about SPAM? :-)

For one, I try avoiding software where there is a void of elementary
politeness, and this, regardless of technical merit. I did abandon Perl
for this _main_ reason[1], and hope to avoid `qmail'[2] forever. :-)

We are responsible at defining the world we choose to live in! And people
sharing common values, in my cae, of attention and care, naturally assemble
together into societies. Those values, and their proper expression, become
some kind of rules in such societies. This is all very natural, I think.

--------------------
[1] Larry Wall has always been impeccable with me, and with others as far as
I know. But his nice character is drown under the bad spirit of his troops.

[2] As well as any software from the same author. I never had personal
problem with Daniel Bernstein, but saw how he behaves with many others.

Mark McEahern

unread,
Jan 19, 2002, 1:00:03 PM1/19/02
to
Alex Martelli wrote:
> I said nothing about Kant's *thought* (a huge subject in itself,
> and pretty hard to discuss since, as you point out, he's
> definitely not an easy read -- not even for native German
> speakers, I'm told, and non-Germans suffer under a further
> handicap via the translation).

This may be apocryphal, but I heard German philosophy students would read
Kant in English. Not surprising, who possibly until the end of Kant's
typical sentence for the verb can wait?

// mark


Alex Martelli

unread,
Jan 19, 2002, 1:33:54 PM1/19/02
to
François Pinard wrote:

> [Jason Orendorff]
>
>> I've tried to translate the Scheme into roughly equivalent Python,
>> to see if it's really longer. Take a look.
>
> Thanks for the exercise, Jason.
>
>> def modify(redo, undo, focuses):
>> def redo_function():
>> redo()
>> return undo_function, focuses
>> def undo_function():
>> undo()
>> return redo_function, focuses
>
> This might not work, I'm not sure. Take `undo_function', in the `return'
> statement within `redo_function': it is neither global nor local, so I
> guess it might not be defined. Don't we need to resort to a Python class,
> for correctly representing a Scheme closure containing functions meant to
> survive outside the scope of their definition?

Not in Python 2.2. In Python 2.1, you could also get such lexically nested
scopes, but you needed a from __future__ import nested_scopes to enable
that behavior.


> I did not study what happened to scopes since Python 1.5.2, I know that
> there are changes in this area, so maybe the problem I see is already
> gone.

Yes. In 1.5.2, you needed to be a bit more explicit to carry state. A
class remains the typical and most general way to carry state, and we
always had other ways, e.g. the default-arguments of a function.

Here, of course, plain default arguments wouldn't work because of the
mutual dependency:

def modify(redo, undo, focuses):
def redo_function(undo_function=undo_function):
redo()
return undo_function, focuses
def undo_function(redo_function=redo_function):
undo()
return redo_function, focuses

the first nested def fails since undo_function is yet unbound then. To
avoid a class, it would take a wee little bit of trickiness, e.g.:

def modify(redo, undo, focuses):
temp=[None]
def redo_function(undo_function=temp):
redo()
return undo_function[0], focuses
def undo_function(redo_function=redo_function):
undo()
return redo_function, focuses
temp[0] = undo_function

or the like. A class being clearer at this point, of course.


The way this kind of stuff now "just works" is a testament to nested scopes
as currently implemented (although they may not be perfect, e.g. you still
can't rebind free variables but can hide them, but many of us had more
qualms back when they were introduced).


>> def undo():
>> if len(undo_list) == 0:
>> warning(_("No more undo!"))
>> redo_fn, focus_list[:] = undo_list.pop()()
>> redo_list.append(redo_fn)
>
> I'm only worried a bit by the replacement of the whole focus_list, not
> knowing how efficient such an operation is. But even if it was slow,
> it would be bearable in this case.

It's reasonably efficient -- I'm not sure what your worry is.


>> def replace(value, focuses):
>> restore = focuses[0]
>> if len(focuses) == 1:
>> def redo(): focuses[0] = value
>> def undo(): focuses[0] = restore
>> modify(redo, undo, focuses)
>
> I did not study all the implications in detail, but yet, wonder if the
> `redo' and `undo' function correctly photograph the current value of
> `focuses', at
> the time of the definition occurred, for later use. I would be tempted to
> doubt it. Especially given that slice replacement is used in other
> places.

I haven't followed the functions in detail, but, generally speaking, Python
does no implicit copying: if you need a "snapshot" of how a list looks at
a given time you copy it explicitly.


> I still have the overall feeling that, without special care, it is not
> that easy to write Python code that correctly represents the original
> Scheme. It might require more vertical space, including a few more
> accessory classes.

Translating between very different languages does often take special
care, of course. Classes are always a very natural way to represent
some code plus some data in Python, although with lexical scopes and
generators there are now a lot of alternatives in various situations.


Alex

Peter Hansen

unread,
Jan 19, 2002, 2:10:18 PM1/19/02
to
"Mike C. Fletcher" wrote:
>
> It is certainly true that the flouting of the norm is not a sure mark of
> genius, and there are examples of great minds whose greatness is their
> ability to process within the field ...

>
> Coming from a background in design, I (possibly too narrowly) associate
> greatness with the ability to transcend the rules, to establish new
> rules.

You are confusing correlation with causation. Great minds
flout the norms because they are great minds; they didn't
become great minds because they flouted the norms.

Flouting norms of communication is likely to cause one to be
ignored, budding great mind or not. And since great minds need
to be recognized by *others* as great minds to be considered great
minds, by definition, being ignored can't help them.

-Peter

(Note the adequate context, and no top-posting. This posting
took a little work to edit, but then I wanted it to be read,
not skipped.)

Jason Orendorff

unread,
Jan 19, 2002, 1:48:57 PM1/19/02
to
Francois Pinard wrote:
> > def modify(redo, undo, focuses):
> This might not work, I'm not sure. [...]

It works in Python 2.2. Python has closures now.

> > def undo():
> > if len(undo_list) == 0:
> > warning(_("No more undo!"))
> > redo_fn, focus_list[:] = undo_list.pop()()
> > redo_list.append(redo_fn)
>
> I'm only worried a bit by the replacement of the whole focus_list, not

> knowing how efficient such an operation is. [...]

You're right. Instead:
global focus_list # clearer...
redo_fn, focus_list = undo_list.pop()() # ...and faster

As for the semantics of replace(), I can't be responsible. :)
I couldn't tell what 'focuses' was supposed to be.

> [...]


> I still have the overall feeling that, without special care, it
> is not that easy to write Python code that correctly represents
> the original Scheme.
> It might require more vertical space, including a few more
> accessory classes.

It is not that easy, true; but the difficult part is
figuring out what the Scheme code is intended to do.
Even clear and elegant code, such as yours, can be hard
to decipher without any comments.

I'm completely confident that the Scheme translates to
a roughly equal amount of Python code. No accessory classes
are required. But alas, nothing can be done about a person's
overall feelings. :)

Paul Rubin

unread,
Jan 19, 2002, 2:29:20 PM1/19/02
to
Peter Hansen <pe...@engcorp.com> writes:
> You are confusing correlation with causation. Great minds
> flout the norms because they are great minds; they didn't
> become great minds because they flouted the norms.

I remember the cartoon where Calvin explains to Hobbes how smart he
(Calvin) is: "You remember how bad Einstein's grades were when he was
a kid? Well, mine are even worse!!!".

Lulu of the Lotus-Eaters

unread,
Jan 19, 2002, 3:11:59 PM1/19/02
to
"Mark McEahern" <mark...@mceahern.com> wrote previously:

|This may be apocryphal, but I heard German philosophy students would
|read Kant in English. Not surprising, who possibly until the end of
|Kant's typical sentence for the verb can wait?

Certainly not apocryphal. I can't vouch for "universal", but I know of
it actually happening. I happen to hold a doctorate in philosophy, so
have read some Kant (in English). My five or six contemporary colleages
whose first language was German *all* preferred to read Norman
Kemp-Smith's English version of the Critique to Kant's original
(possibly with reference back to the original). Their testimony,
moreover, was that they all felt this sentiment to be common.
Unfortunately, beyond a few words of vocabulary and some broken grammar,
I really don't read German... so can form no opinion directly on Kant's
original text.

Yours, Lulu...

--
mertz@ _/_/_/_/_/_/_/ THIS MESSAGE WAS BROUGHT TO YOU BY:_/_/_/_/ v i
gnosis _/_/ Postmodern Enterprises _/_/ s r
.cx _/_/ MAKERS OF CHAOS.... _/_/ i u
_/_/_/_/_/ LOOK FOR IT IN A NEIGHBORHOOD NEAR YOU_/_/_/_/_/ g s


Laurent Szyster

unread,
Jan 19, 2002, 5:23:29 PM1/19/02
to
Here's my entry candidate for Python:

C is dangerous, Java is static and Perl is scary


Steven Majewski wrote:
>
> In Paul Graham's article "What Languages Fix" :
>
> <http://www.paulgraham.com/fix.html>
>
> he notes at the bottom that he doesn't know enough
> about Python to descript it.
>
> Any suggestions?
>
> -- Steve Majewski

Robert Amesz

unread,
Jan 19, 2002, 7:03:27 PM1/19/02
to
Mike C. Fletcher wrote:

> Coming from a background in design, I (possibly too narrowly)
> associate greatness with the ability to transcend the rules, to
> establish new rules. For me, genius ("the greatest minds") is the
> likes of Gaudi, Piccasso, Einstein or Ghandi, people who have
> introduced new ideas and approaches from a vision of power and
> depth.

Be that as it may, nobody ever caught those people bottom-quoting!


Seriously though, breaking social rules is something quite different
from breaking the rules of conventional thinking. The latter is done by
geniuses as well as crackpots (and it's up to us to judge who is what),
but knowingly breaking social rules is hardly ever anything more than
being rude or inconsiderate. People who act that way might try to pass
themselves off as 'unconventional', or cry 'freedom of expression' as
an excuse for their behaviour. But it's a poor excuse, and I, for one,
am not impressed.


Robert Amesz
--
(Hurrying back to some serious Python programming.)

Courageous

unread,
Jan 19, 2002, 8:42:02 PM1/19/02
to

>Seriously though, breaking social rules is something quite different
>from breaking the rules of conventional thinking.

Seriously right! As if the rest of us couldn't distinguish between
an out-of-the-box thinker and someone who's merely glibly trying to
justify their lazy and antisocial behavior.

C//

François Pinard

unread,
Jan 19, 2002, 9:53:05 PM1/19/02
to
[Courageous]

> As if the rest of us couldn't distinguish between an out-of-the-box
> thinker and someone who's merely glibly trying to justify their lazy
> and antisocial behavior.

In my experience, the latter is not ready to consider himself as such.
Else, it would be much easier kindly inviting him to amend his behaviour.

Chris Gonnerman

unread,
Jan 19, 2002, 10:19:38 PM1/19/02
to
----- Original Message -----
From: "François Pinard" <pin...@iro.umontreal.ca>


> [Courageous]


>
> > As if the rest of us couldn't distinguish between an out-of-the-box
> > thinker and someone who's merely glibly trying to justify their lazy
> > and antisocial behavior.
>

> In my experience, the latter is not ready to consider himself as such.
> Else, it would be much easier kindly inviting him to amend his
> behaviour.

Great minds get away with antisocial or non-normal behavior because
their ideas are valuable. The higher the value (perceived or actual)
of an individual mind, the more likely he or she is to be tolerated
in strange, rude, or otherwise abnormal behavior.

Joseph A Knapka

unread,
Jan 19, 2002, 11:56:07 PM1/19/02
to
phil hunt wrote:
>
> Joe Knapka wrote:

> > Aahz Maruch wrote:
> >> Tell me, if you're not willing to follow cultural norms, why should
> >> people pay attention to you?
> >
> >That's a silly argument.
>
> It's not an argument, rather a question.

It seemed clear to me that the intent was to present an
argument in the form of a rhetorical question, the
implication being, "There is no good answer to this
question, therefore you're wrong." I'm deeply sorry
if that was not the intent, <self.asshole_mode=1> in
which case I shall make a point to interpret Mr Maruch's
posts absolutely literally in future, so as not
to make such an embarassing mistake a second time;
however, I doubt such an interpretation was intended.
<self.asshole_mode=0>

> > Sometimes people who break cultural
> >norms are *exactly* the people you ought to be listening to.
>
> That may be true; however, it is the case that people often ignore
> those who break cultural norms.

Yes; and then again, people often get into lengthy discussions
about those who break cultural norms. Very occasionally, this
leads (directly or indirectly) to a change in the norms. On the
gripping hand, often they end up shooting at each other :-(
On some groups I peek at occasionally, it is considered
extremely impolite *not* to begin certain messages with a
page or so of empty space, or a joke, or some other
material *completely irrelevant to the thread*.

Everyone's-hangup-is-someone-else's-norm-ly

Cheers,

-- Joe
"I should like to close this book by sticking out any part of my neck
which is not yet exposed, and making a few predictions about how the
problem of quantum gravity will in the end be solved."
--- Physicist Lee Smolin, "Three Roads to Quantum Gravity"

It is loading more messages.
0 new messages