Python quotes
We will perhaps eventually be writing only small modules which are
identified by name as they are used to build larger ones, so that
devices like indentation, rather than delimiters, might become
feasible for expressing local structure in the source language.
Donald E. Knuth, "Structured Programming with goto
Statements", Computing Surveys, Vol 6 No 4, Dec. 1974
Some rejected alternate names for "Monty Python's Flying Circus":
1 2 3 / It's Them!
/
Arthur Megapode's Flying Circus / The Horrible Earnest Megapode
/
The Panic Show / The Plastic Mac Show
/
Ow! It's Colin Plint! / Vaseline Review
/
Vaseline Parade / The Keen Show
/
Brian's Flying Circus / The Year of the Stoat
/
Cynthia Fellatio's Flying Circus / Owl Stretching Time
/
The Whizzo Easishow! (Guaranteed to last 1/2 hour! Money back if not!)
From Kim "Howard" Johnson's _Life Before and After Monty Python_.
[It's interesting to contemplate what Python would have been called
if one of these names had been chosen.]
Anybody else on the list got an opinion? Should I change the language
or not?
Guido van Rossum, 28 Dec 91
in-any-case-the-best-christmas-present-i-got-today!-ly y'rs - tim
Tim Peters, 29 Dec 91
[First occurrence of Tim Peters's long-phrase-ly idiom.]
Ha -- you have done me the favor of underestimating my ignorance <smile>.
Tim Peters, 30 Dec 91
I prefer (all things being equal) regularity/orthogonality and logical
syntax/semantics in a language because there is less to have to remember.
(Of course I
know all things are NEVER really equal!)
Guido van Rossum, 6 Dec 91
The details of that silly code are irrelevant.
Tim Peters, 4 Mar 92
Frankly, I'd rather not try to compete with Perl in the
areas where Perl is best -- it's a battle that's impossible to win,
and I don't think it is a good idea to strive for the number of
obscure options and shortcuts that Perl has acquired through the years.
Guido van Rossum, 07 Jul 1992
Python is a truly wonderful language. When somebody comes up with a
good idea it takes about 1 minute and five lines to program something
that almost does what you want. Then it takes only an hour to extend
the script to 300 lines, after which it still does almost what you
want.
Jack Jansen, 08 Jul 1992
If you have a browser from CERN's WWW project (World-Wide Web, a
distributed hypertext system) you can browse a WWW hypertext version
of the manual...
Guido van Rossum, 19 Nov 1992
[First mention of the Web on python-list.]
Just a success note for Guido and the list:
Python 0.9.9, stdwin, readline, gmp, and md5 all go up on
linux 0.99 pl11 without much problems.
Allan Bailey, 2 Aug 93
[First mention of Linux on python-list.]
Rule: "You shouldn't have to open up a black box and take it apart to
find out you've been pushing the wrong buttons!"
Corollary: "Every black box should have at least TWO blinking lights:
"Paper Jam" and "Service Required" (or equivalent)."
Steven D. Majewski, 9 Sep 1993
We've been through a couple of syntax changes, but I have sort of
assumed that by the time we get to version 1.0 release, the language,
(if not the implementation) will essentially be stable.
Steven D. Majewski, 14 Sep 1993
"Python tricks" is a tough one, cuz the language is so clean. E.g., C
makes an art of confusing pointers with arrays and strings, which leads
to lotsa neat pointer tricks; APL mistakes everything for an array,
leading to neat one-liners; and Perl confuses everything period, making
each line a joyous adventure <wink>.
Tim Peters, 16 Sep 93
I've seen Python criticized as "ugly" precisely because it
doesn't have
a trick-based view of the world. In many ways, it's a dull language,
borrowing solid old concepts from many other languages & styles: boring
syntax, unsurprising semantics, few automatic coercions, etc etc. But
that's one of the things I like about it.
Tim Peters, 16 Sep 93
One of the things that makes it interesting, is exactly how much Guido
has managed to exploit that
one implementation trick of
'namespaces'.
Steven D. Majewski, 17 Sep 1993
Anyone familiar with Modula-3 shold appreciate the difference between
a layered approach, with generic Rd/Wr types, and the Python 'C with
foam padding' approach.
John Redford, 24 Nov 93
People simply will not agree on what should and shouldn't be "an
error", and once exception-handling mechanisms are introduced to give
people a choice, they will far less agree on what to do with them.
Tim Peters, 17 Dec 93
Note that because of its semantics, 'del'
can't be a function: "del
a" deletes 'a' from the current namespace. A function can't delete
something from the calling namespace (except when written by Steve
Majewski :-).
Guido van Rossum, 01 Aug 1994
I don't know a lot about this artificial life stuff
-- but I'm suspicious of anything Newsweek gets goofy about
-- and I suspect its primary use is as another money extraction tool
to be applied by ai labs to the department of defense
(and more power to 'em).
Nevertheless in wondering why free software is so good these days
it occurred to me that the propagation of free software is one gigantic
artificial life evolution experiment, but the metaphor isn't perfect.
Programs are thrown out into the harsh environment, and the bad ones
die. The good ones adapt rapidly and become very robust in short
order.
The only problem with the metaphor is that the process isn't random
at all. Python
chooses to include Tk's genes; Linux decides
to make itself more suitable for symbiosis with X, etcetera.
Free software is artificial life, but better.
Aaron Watters, 29 Sep 1994
I claim complete innocence and ignorance! It must have been Tim.
I wouldn't know a Trondheim Hammer if it fell on my foot!
Steve Majewski, 10 Jan 1995
(Aieee! Yet another thing on my TODO pile!)
A.M. Kuchling, 10 Jan 1995
[After someone wrote "...assignment capability, a la djikstra"]
Ehh, the poor old man's name is Dijkstra. I should know, "ij" is a
well known digraph in the Dutch language. And before someone asks the
obvious: his famous "P and V" names for semaphores are derived for the
Dutch words "Passeer" and "Verlaat", or "Pass" and "Leave". And no, I
haven't met him (although he did work at CWI back in the fifties when
it was called, as it should still be today, Mathematical Centre). he
currently lives in Austin, Texas I believe. (While we're at
it... does anybody remember the Dijkstra font for Macintoshes? It was
a scanned version of his handwriting. I believe Luca Cardelli scanned
it -- the author of Obliq, a somewhat Python-like distributed language
built on Modula-3. I could go on forever... :-)
Guido van Rossum, 19 Jan 1995
As always, I'll leave it to a volunteer to experiment with this.
Guido van Rossum, 20 Jan 1995
Non-masochists, please delete this article NOW.
Aaron Watters, 20 Jan 1995
If Perl weren't
around, I'd probably be using Python right now.
Tom Christiansen in comp.lang.perl, 02 Jun 95
GUI stuff is
supposed to be hard. It builds character.
Jim Ahlstrom, at one of the early Python workshops
>VERY cool mod, Peter. I'll be curious to see GvR's reaction to your syntax.
Hm.
Nick Seidenman and Guido van Rossum, 1 Aug 1996
Python is an experiment in how much freedom programmers need. Too
much freedom and nobody can read another's code; too little and
expressiveness is endangered.
Guido van Rossum, 13 Aug 1996
[On regression testing] Another approach is to renounce all worldly
goods and retreat to a primitive cabin in Montana, where you can live
a life of purity, unpolluted by technological change. But now and
then you can send out little packages....
Aaron Watters
Ah, you're a recent victim of forceful evangelization. Write your own
assert module, use it, and come back in a few months to tell me
whether it really caught 90% of your bugs.
Guido van Rossum, 7 Feb 1997
The larger scientific computing centers generally have a "theory"
division and a "actually uses the computer" <wink> division. The
theory division generally boasts some excellent theoreticians and
designers, while the other division generally boasts some excellent
physical scientists who simply want to get their work done. In most
labs I've seen, the two divisions hate each others' guts (or, rarely,
blissfully ignore each other), & the politics is so thick you float on
it even after they embed your feet in cement blocks (hence even the
simple relief of death is denied you <wink>).
Tim Peters, 25 Mar 1997
In one particular way the conflict is fundamental & eternal: the
"working scientists" generally understand the hardware du jour
perfectly, and passionately resent any attempt to prevent them from
fiddling with it directly -- while the theory folks are forever
inventing new ways to hide the hardware du jour. That two groups can
both be so right and so wrong at the same time is my seventh proof for
the existence of God ...
Tim Peters, 25 Mar 1997
You're going to be in a minority - you're coming to Python programming
from a language which offers you a lot more in the way of comfortable
operations than Python, instead of coming from medieval torture
chambers like C or Fortran, which offer so much less.
Andrew Mullhaupt, 26 Jun 1997
...although Python uses an obsolete approach to memory management, it
is a _good_ implementation of that approach, as opposed to S, which
uses a combination of bad implementation and demented design decisions
to arrive at what may very well be the worst memory behavior of any
actually useful program.
Andrew Mullhaupt, 26 Jun 1997
I suggested holding a "Python Object Oriented Programming Seminar", but
the acronym was unpopular.
Joseph Strout, 28 Feb 1997
Strangely enough I saw just such a beast at the grocery store last
night. Starbucks sells Javachip. (It's ice cream, but that shouldn't
be an obstacle for the Java marketing people.)
Jeremy Hylton, 29 Apr 1997
A little girl goes into a pet show and asks for a wabbit. The shop
keeper looks down at her, smiles and says
"Would you like a lovely fluffy little white rabbit, or a cutesy
wootesly little brown rabbit"
"Actually", says the little girl, "I don't think my python would notice"
Nick Leaton, 04 Dec 1996
When I originally designed Perl 5's OO, I thought about a lot of this
stuff, and chose the explicit object model of Python as being the
least confusing. So far I haven't seen a good reason to change my
mind on that.
Larry Wall, 27 Feb 1997 on perl5-porters
PSA 1996 Budget
---------------
Income:
$1,093,276.54 'Guido for President'
Campaign Contributions(1)
$ 3.12 Milk Money Extortion Program
$ 2,934.07 PSA Memberships
-------------
$1,096,213.73 Total Income
Expenses:
$ 652,362.55 Monty Python Licencing Fees (2)
$ 10,876.45 Pre-Release 2 Week Vacations (3)
$ 369,841.59 Post-Release 2 Week Vacations (3)
$ 15.01 Alien Abduction Insurance
$ 62,541.72 Python Web Site Maintenance
$ 554.65 Great Comfort Cream
-------------
$1,096,191.97 Total Expenses
$ (21.76) Total Profit (Loss)
Notes:
(1) Many of you many not be aware of the fabulously successful
'Guido for President' Campaign. While Guido has no interest in being the
president, the PSA thought it would be a cool way to collect money. The
centerpiece of the campaign featured an attractive offer to spend the
night in Guido's spare bedroom in exchange for a $50,000.00
contribution. (Mark Lutz stayed TWICE!)
(2) Since the proliferation of Monty Python related names (Python,
Monty, Grail, Eric-the-Half-a-Compiler, et al.) has increased over the
past year, the PSA felt it would be wise to licencing the Python name to
forestall any lawsuits. An added benefit is that John Cleese is teaching
Guido how to walk funny.
(3) Pre-Release vacations are spent in the Catskills. Post-Release
vacations are spent in the Bahamas. Guido is currently working on a
system which will allow him to make more releases of Python; thus
octupling the number of vacations he takes in a year.
Matthew Lewis Carroll Smith, 04 Apr 1997
I mean, just take a look at Joe Strout's brilliant little "python for
beginners" page. Replace all print-statements with
sys.stdout.write( string.join(map(str, args)) + "\n")
and you'll surely won't get any new beginners. And That Would Be A
Very Bad Thing.
Fredrik Lundh, 27 Aug 1996
Ya, ya, ya, except ... if I were built out of KSR chips, I'd be
running at 25 or 50 MHz, and would be wrong about ALMOST EVERYTHING
almost ALL THE TIME just due to being a computer! Think about it --
when's the last time you spent 20 hours straight debugging your
son/wife/friend/neighbor/dog/ferret/snake? And they
still fell over
anyway? Except in a direction you've never seen before each time you
try it? The easiest way to tell you're dealing with a computer is
when the other side keeps making the same moronic misteakes over and
misteakes over and misteakes over and misteakes over and misteakes
over and misteakes CTRL-C again.
Tim Peters, 30 Apr 97
BTW, a member of the ANSI C committee once told me that the only
thing rand is used for in C code is to decide whether to pick up the
axe or throw the dwarf, and if that's true I guess "the typical libc
rand" is adequate for all but the most fanatic of gamers <wink>.
Tim Peters, 21 June 1997.
Things in Python are very clear, but are harder to find than the
secrets of wizards. Things in Perl are easy to find, but look like
arcane spells to invoke magic.
Mike Meyer, 6 Nov 1997
Indeed, as Palin has come to understand, being part of Python means
never really knowing what may lurk around the corner.
"We've never really followed any rules at all with Python," he said.
"We're a spontaneous lot. It's more fun that way."
Michael Palin, quoted from a Reuters/Variety news item titled
"Rare Python Reunion", Jan 15 1998.
Python is an excellent language for learning object orientation. (It also
happens to be my favorite OO scripting language.)
Sriram Srinivasan
Advanced Perl Programming
The point is that newbies almost always read more into the semantics
of release than are specified, so it's worthwile to be explicit about
how little is being said <wink>.
Tim Peters, 12 Feb 1998
Ah! "Never mind" to a bunch of what I said before (this editor can't
move backwards <wink>).
Tim Peters, 12 Feb 1998
After 1.5 years of Python, I'm still discovering richness (and still
unable to understand what the hell Jim Fulton is talking about).
Gordon McMillan, 13 Mar 1998
Tabs are good, spaces are bad and mixing the two just means that your
motives are confused and that you don't use enough functions.
John J. Lehmann, 19 Mar 1998
... but whenever optimization comes
up, people get sucked into debates about exciting but elaborate schemes
not a one of which ever gets implemented; better to get an easy 2% today
than dream about 100% forever.
Tim Peters, 22 Mar 1998
I've been playing spoilsport in an attempt to
get tabnanny.py working, but now that there's absolutely no reason to
continue with this, the amount of my life I'm willing to devote to it is
unbounded <0.9 wink>.
Tim Peters, 30 Mar 1998
Python is a little weak in forcing encapsulation. It isn't made for
bondage and domination environments.
Paul Prescod, 30 Mar 1998
One of my
first big programming assignments as a student of computer science was
a source formatter for Pascal. The assignment was designed to show us
the real-life difficulties of group programming projects. It
succeeded perhaps too well. For a long time, I was convinced that
source code formatters were a total waste of time, and decided to
write beautiful code that no automatic formatter could improve upon.
In fact, I would intentionally write code that formatters could only
make worse.
Guido van Rossum, 31 Mar 1998
You need to build a system that is futureproof; it's no good just
making a modular system. You need to realize that your
system is just going to be a module in some bigger system to come, and
so you have to be part of something else, and it's a bit of a way of
life.
Tim Berners-Lee, at the WWW7 conference
From gotos to the evolution of life in 10 posts; that's
comp.lang.python for you!
A.M. Kuchling, 4 Apr 1998
This is
Python! If we didn't care what code looked like, most
of us would probably be hacking in some version of Lisp -- which already
covered most of Python's abstract
semantics way back when Guido was just a
wee snakelet frolicking in the lush Amsterdam jungle.
Tim Peters, 24 Apr 1998
The infinities aren't contagious except in that they often appear that way
due to to their large size.
Tim Peters on the IEEE 754 floating point standard, 27 Apr 1998
The "of course, while
I have no problem with
this at all, it's surely too much for a lesser being" flavor of argument
always rings hollow to me. Are you personally confused by the meanings for
"+" that exist today?
Objecting to the variations is a different story;
I'm wondering whether you personally stumble over them in practice. I
don't; Steven doesn't; I doubt that you do either. I'm betting that almost
nobody ever does, in which case those "less nimble colleagues and
students" must be supernaturally feeble to merit such concern.
Tim Peters, 29 Apr 1998
"Ideally, IMO, two messages with the same name should have
the same meaning but possibly different implementations.
Of course, "meaning" is somewhat relative, but the notion
that two messages with the same name should have the same
'meaning' is very useful."
"Like clothes.launder() vs money.launder(), or shape.draw() vs blood.draw(),
or matrix.norm() vs hi.norm() <wink>?
I'm afraid English thrives on puns,
and the same word routinely means radically different things across
application areas. Therefore, to insist that a word have "one true meaning"
in a programming language is insisting that the language cater to one true
application domain."
Jim Fulton and Tim Peters, in a discussion of rich comparisons, 29 Apr 1998
Indeed, when I design
my killer language, the identifiers "foo" and "bar"
will be reserved words, never used, and not even mentioned in the reference
manual. Any program using one will simply dump core without comment.
Multitudes will rejoice.
Tim Peters, 29 Apr 1998
Too little freedom makes life
confusingly clumsy; too much, clumsily confusing. Luckily, the tension
between freedom and restraint eventually gets severed by Guido's Razor.
Tim Peters, 29 Apr 1998
In other words, I'm willing to see dark
corners added to the language, as long as I don't have to go into them
myself.
A.M. Kuchling, 29 Apr 1998
This argument is specious. What on earth would it mean to compare an
object you created with another object from someone else's code unless
you knew exactly what each object's semantics were? Do you really
want to ask if my abstract syntax tree is less then your HTTP
connection object?
Jeremy Hylton, in a discussion of rich comparisons, 29 Apr 1998
Two things I learned for sure during a particularly intense acid trip in my
own lost youth: (1) everything is a trivial special case of something else;
and, (2) death is a bunch of blue spheres.
Tim Peters, 1 May 1998
Well, they will be: "<" will mean what everyone thinks it means when
applied to builtin types, and will mean whatever __lt__ makes it mean
otherwise, except when __lt__ isn't defined but __cmp__ is in which case it
will mean whatever __cmp__ makes it mean, except when neither __lt__ or
__cmp__ are defined in which case it's still unsettled. I think. Or isn't
that what you meant by "clearly defined"?
Tim Peters, 6 May 1998
You write a great program, regardless of
language, by redoing it over & over & over & over, until your fingers bleed
and your soul is drained. But if you tell newbies
that, they might decide
to go off and do something sensible, like bomb defusing<wink>.
Tim Peters, 5 Jun 1998
OO styles help in part because they make it easier to redo large parts over,
or, when the moon is shining just right, to steal large parts from someone
else. Python helps in many additional ways regardless of style, not least
of which in that it hurts less to throw away 50 lines of code than 5,000
<0.5 wink>. The pains, and joys, of programming are
qualitatively the
same under Python. There's less pain less often, and joy comes quicker.
And that's worth a whole lot.
Tim Peters, 5 Jun 1998
I've had a DBA tell me that what I wanted to do
"could not" be done because his silly $5000 tool couldn't model it.
Proving him wrong simply increased his conviction that what I was
doing was immoral and perverse.
Which, come to think of it, it probably was. Hee hee.
Gordon McMillan, 8 Jun 1998
The majority of programmers aren't really looking for flexibility. Most
languages that enjoy huge success seem to do so not because they're
flexible, but because they do one particular thing
extremely well. Like
Fortran for fast number-crunching in its day, or Perl for regexps, or C++
for compatibility with C, or C for ... well, C's the exception that proves
the rule.
Tim Peters, 11 Jun 1998
It has also been referred to as the "Don Beaudry
hack," but
that's a misnomer. There's nothing hackish about it -- in fact,
it is rather elegant and deep, even though there's something dark
to it.
Guido van Rossum, Metaclass Programming in Python 1.5
Just point your web browser at
http://www.python.org/search/ and look for "program", "doesn't",
"work", or "my". Whenever you find someone else whose program didn't
work, don't do what they did. Repeat as needed.
Tim Peters, on python-help, 16 Jun 1998
Now some people see unchecked raw power and flee from perceived danger,
while others rush toward perceived opportunity. That's up to them. But I
think it's enormously
clarifying in either case to see just
how raw this
particular gimmick can get.
Tim Peters, 16 Jun 1998
Every language has its partisans, usually among folks deeply immersed in
their particular theology, triumphant in having divined the inner meaning of
some esoteric operations, like a medieval Jesuit hot on the trail of the
final ontological proof, whose conciseness in solving a single problem
makes them almost swoon with ecstacy at the expected savings of many
keystrokes, as if those very keystrokes represented a lot of heavy lifting
and hauling on their part.
John Holmgren, 18 Jun 1998
> In general, the situation sucks.
mind-if-i-use-that-as-my-epitaph<wink>?-ly y'rs - tim
Timothy J. Grant and Tim Peters, 22 Jun 1998
> Just for the record, on AIX, the following C program:
Oh no you don't! I followed AIX threads for the first year it came out, but
eventually decided there was no future in investing time in baffling
discussions that usually ended with "oh, never mind -- turns out it's a bug"
<0.9 wink>.
Vladimir Marangozov and Tim Peters, 23 Jun 1998
Python - why settle for snake oil when you can have the
whole snake?
Mark Jackson, 26 Jun 1998
The problem I have with "SETL sets" in Python is the same I have with every
other language's "killer core" in Python: SETL is much more than just "a
set type", Eiffel is much more than just fancy pre- and post-conditions,
Perl's approach to regexps is much more than just its isolated regexp
syntax, Scheme is much more than just first-class functions & lexical
closures, and so on. Good languages aren't random collections of
interchangeable features: they have a philosophy and internal coherence
that's never profitably confused with their surface features.
Tim Peters, 10 Jul 1998
"Since I'm so close to the pickle module, I just look at the
pickles directly, as I'm pretty good at reading pickles."
"As you all can imagine, this trick goes over really well at parties."
Jim Fulton and Paul Everitt on the Bobo list, 17 Jul 1998
My theory is that the churning of old threads and reminiscences
(Continuations, Icon influences, old-T-shirts, the pre news-group
mailing list archive, whitespace, closures, .... ) has brought
some old messages to the surface, via some mechanism similar to
the way plankton and other nutrients are cycled in the ocean.
Steven D. Majewski, 23 Jul 1998
In general, Our Guido flees from schemes that merely change
which foot
gets blown off <0.45 caliber wink>. Schemes that remove the firing pin
entirely have a much better, um, shot <wink>.
Tim Peters, 25 Jul 1998
I don't know what "invert the control structure" means -- but if it's
anything like turning a hamster inside-out, I would
expect
it to be messy <wink>.
Tim Peters, 25 Jul 1998
This makes it possible to pass complex object hierarchies to a C
coder who thinks computer science has made no worthwhile advancements
since the invention of the pointer.
Gordon McMillan, 30 Jul 1998
The nice thing about list comprehensions is that their
most useful forms could be implemented directly as light sugar for
ordinary Python loops, leaving lambdas out of it entirely. You end up
with a subtly different beast, but so far it appears to be a beast
that's compatible with cuddly pythons.
Tim Peters, 6 Aug 1998
I wonder what Guido thinks he might do in Python2 (assuming, of course, that
he doesn't hire a bus to run over him before then <wink>).
Tim Peters, 26 Aug 1998
After writing CGI scripts the traditional way for a few
years, it is taking awhile to reshape my thinking. No sledgehammer to
the head yet, but lots of small sculpting hammers...
John Eikenberry on the Bobo list, 27 Aug 1998
I believe sometimes numbers
creep into my programs as strings, so '4'/2 needs to also be 2.
Other languages do this. Since this is due in part to user input,
I guess 'four'/2, 'quattro/2', 'iv/2' etc. need to be 2 as well;
don't know any other language that does so, but Python could take the
lead here in software reliability. Any white space should be ignored,
including between my ears. I don't have time to write any useful
software, so I've decided to devote myself to proposing various
changes to the Python interpreter.
Donn Cave uses sarcasm with devastating effect, 28 Aug 1998
then-again-if-history-were-important-god-wouldn't-have-hid-
it-in-the-past-ly y'rs
Tim Peters, 28 Aug 1998
> >( float ( / 1 3 ))
> 0.33333333333333331
Now
that one is impressive: it's the best possible 17-digit decimal
representation of the best possible 53-bit fp binary representation of 1/3,
and 17 is the minimum number of decimal digits you need in general so that a
53-bit binary fp value can be exactly reconstructed by a best-possible atof.
Tim Peters, 2 Sep 1998
This is not a technical issue so much as a human issue; we
are limited and so is our time. (Is this a bug or a feature of time?
Careful; trick question!)
Fred Drake on the Documentation SIG, 9 Sep 1998
There are also some surprises [in the late Miocene Australia]
some small mammals totally unknown and not obviously related
to any known marsupial (appropriately awarded names such as
Thingodonta and
Weirdodonta) and a giant
python immortalized as
Montypythonoides.
The Book of Life, found by Aaron Watters
Can the denizens of this group enlighten me about what the
advantages of Python are, versus Perl ?
"python" is more likely to pass unharmed through
your spelling checker than "perl".
An unknown poster and Fredrik Lundh, 11 Sep 1998
I have to say that the Dragon book is good when you consider
the alternatives, but compared with the Platonic ideal it leaves
much to be desired. In particular the algorithm descriptions
are described at such a low level it's difficult to understand
how they work -- and at a higher conceptual level
involving graph theoretical transforms of automata (which I got
thanks to Jean Gallier by word of mouth and effort of chalk)
is nearly invisible for the trees.
Aaron Watters, 17 Sep 1998
... and at a higher conceptual level involving graph theoretical
transforms of automata (which I got thanks to Jean Gallier by word of
mouth and effort of chalk) ...
Aaron Watters, 17 Sep 1998
Every clarity vanished? :-)
Christian Tismer after answering a poster's question, 17 Sep 1998
Take the "public" modifier off
Joseph's interface, or leave it there but nest the interface inside
class closure, or even move the interface to its own printer.java
file, and it compiles and runs without incident. Most of the big boys
I hang with aren't paralyzed by self-explanatory compiler msgs <wink>.
not-to-mention-the-girls-ly y'rs
Tim Peters, 24 Sep 1998
<shakes head ruefully> You kids today, with your piercings and your
big pants and your purple-and-green hair and your X-Files and your
Paula Cole and your espresso coffee and your Seattle grunge rock and
your virtual machines and your acid-washed jeans and your Ernest
Hemingway and your object-oriented languages and your fax machines and
your hula hoops and your zoot suits and your strange slang phrases
like "That's so bogus" or "What a shocking bad hat" and those atonal
composers like Arnold Schoenberg and Milton Babbit that you kids seem
to like these days and your cubist painters and your Ally McBeal and
that guy in Titanic and your TCP/IP protocol and your heads filled
with all that Cartesian dualism these days and ... well, I just don't
get you kids. <shakes head ruefully again>
A.M. Kuchling, 01 Oct 1998
E.g., at the REBOL prompt I typed
send tim@email.msn.com "Did this work?"
and in response it dialed my modem, connected to my ISP, and then
REBOL crashed after provoking an invalid page fault in kernel32.dll.
Then my connection broke, and the modem dialed and connected again.
Then it just sat there until it timed out.
now-
that's-user-friendly<wink>-ly y'rs
Tim Peters, 24 Sep 1998
"The event/tree dualism reminds me why I always wanted to be able to do pattern matching on trees."
"'Honey, what is this guy doing up there?'
'Oh, I suppose it's Christian, trying to match some patterns.' "
Christian Tismer and Dirk Heise, 12 Oct 1998
Perl is worse than Python because people wanted it worse.
Larry Wall, 14 Oct 1998
"What's the opinion of the (wink) Python luminaries?"
"The last time I saw a position paper from them, they came out strongly
against the suggestion that old people be put on ice floes and left to drift
out to sea to die.
they-never-like-
any-of-my-ideas-ly y'rs"
Stuart Hungerford and Tim Peters, 14 Oct 1998
Rather than borrowing from our beauty-impaired ugly sibling, why not look
at Java, the beautiful, conceited sister? We could have something more
like JavaDoc.
Paul Prescod, 18 Oct 1998
It won't work. This is far too concrete a problem to interest Tim. I
see 3 possible approaches:
1) Claim that Python can't do a <some random combination of 'L', 'R',
'A'> grammar. This will yield an irate response from Aaron which will
draw Tim into it and you'll get a solution in 3 months after lots of
entertaining posts.
2) Turn it into an optimization problem and get a solution from
Marc-Andre using mxTextTools next week.
3) Turn it into an obfuscation problem and get competing solutions
from Greg Stein and Fredrik tomorrow morning.
if-anybody's-found-don-beaudry's-sucker-button-let-me-know ly 'yrs
Gordon McMillan, 16 Oct 1998
To my battle-scarred mind,
documentation is never more than a hint. Read it once with disbelief
suspended, and then again with full throttle skepticism.
Gordon McMillan, 19 Oct 1998
Then let the record show that I hereby formally lobby for such an
optimization! I'd lay out some arguments, except that it's already
implemented <wink>.
well-
that-one-went-easy-ly y'rs - tim
Tim Peters, 20 Oct 1998
We did requirements and task analysis, iterative design,
and user testing. You'd almost think programming languages
were an interface between people and computers.
Steven Pemberton, one of the designers of Python's direct ancestor ABC
Not at all, although I agree here too <wink>. It's like saying a fork is
broken just because it's not that handy for jacking up a car. That is,
Guido implemented the syntax to support default arguments, and it works
great for that purpose! Using it to fake closures is a hack, and the "hey,
this is cool!" / "hey, this really sucks!" mixed reaction thus follows, much
as pain follows a car falling on your skull. Stick to stabbing peas, or
even teensy pea-sized closures, and a fork serves very well.
Tim Peters, 31 Oct 1998
My customers consider it a marketable skill that I
a) think for myself
b) share my thoughts with them.
Paul Prescod, 02 Nov 1998
Anyone else know what a Stanley #45 plane is? ... it's not
what you use if you aren't looking to produce intricate moldings. If
you want to make a tabletop flat, and bring out the natural beauty of
the wood, you use a big, long and flat bench plane. The beauty is in
the wood, not the tool, the tool is just the right one to let you see
that and to let others see it too.
And that's a very impressive kind of beauty in itself, isn't it? The
kind of beauty some say is homely--an uninteresting face, boring angles,
few if any parts, no curly flowers. It's just a tool, and not beautiful
at all. But look, that tool makes beauty. It makes it *easy* to make
beautiful things, to see deep into the the grain of whatever material
you're working.
Maybe it gets us a little closer to art.
Ivan Van Laningham, 03 Nov 1998
You might think "That's illegal." That's not illegal; that's
cool.
Paul Dubois at IPC7, on recursive template definitions in C++
This supports reflection, which is the 90s way of writing self-modifying code.
John Aycock at IPC7, during his parsing talk
It turns out that docstrings are the only way to associate information with functions, which is what led you to abuse them in such a fascinating and stomach-churning way.
Jim Hugunin at IPC7, on embedding BNF parsing rules in docstrings
"The Mayans looked on the integers as gods."
"What did the Mayans think of integer division?"
Ivan Van Laningham and an unknown audience member at IPC7
Y2K problem? The Mayans didn't have a
millennium-2K problem!
Eric S. Raymond at IPC7, on learning that the Mayan calendar takes 28 octillion years to wrap around
"Generic identifier" -- think about it too much and your head explodes.
Sean McGrath at IPC7, discussing SGML terminology
Nothing I've ever written has reached 1.0.
Greg Ward at IPC7, on using small version numbers
Well, that's a little thing -- the specification.
Guido van Rossum at IPC7
"We've got a name (Module Distribution Utilities) that gives us a good 3-letter acronym to group things under: MDU."
"<thpftbt>"
Greg Ward and Jeremy Hylton at IPC7
Mailman is designed to be extensible
and comprehensible. Without
comprehensibility, enhancement is self-limiting -- functionality may be
improved, but further enhancement gets increasingly difficult.
Ken Manheimer at IPC7
"Generating Usable Installations" -- OK, you've got the GUI SIG.
Barry Warsaw at IPC7, on the choice of name for a SIG to discuss extension building
Performance is a lot like drugs -- it doesn't do much for you, but it occupies a lot of your time.
Jeremy Hylton at IPC7, on the need for a Performance SIG
I made some slides, but they suck, so I won't bother with them.
Andrew Kuchling at IPC7
"What's Python?"
"It's a computer programming language."
"You mean, like DOS?"
Some guy in a bar and Eric S. Raymond (who was wearing
a conference T-shirt) at IPC7
Excellent plan! Devious minds are attracted to Python, like mimes to
unappreciative crowds.
Tim Peters, 13 Nov 1998
Ha! If we had only started numbering dimensions with one, we'd already be
living in a 4-D world, and Mental Organons would be *all over the place*!
Tim Peters, 13 Nov 1998
Well, during those periods when I was me, there was most assuredly
only one of me. But during some of the more intense discussions, I
was not me, and while all the rest of the attendees were also not me,
it is difficult to say whether they were the same not me that I was
or wasn't at the time.
Gordon McMillan, 18 Nov 1998
If Python strays into trying to be something completely new it will fail,
like Scheme, K and Smalltalk. There are both technical and sociological
reasons for this. If you stray too far technically, you make mistakes:
either you make modelling mistakes because you don't have an underlying
logical model (i.e. C++ inheritance) or you make interface mistakes
because you don't understand how your new paradigm will be used by real
programmers.
Let research languages innovate. Python integrates.
Paul Prescod, 21 Nov 1998
"I got a little mad at the way python polynomials were written --
the code looked like its author knew neither polynomials nor
Python."
"That would be me :-)."
Moshe Zadka and Guido van Rossum, 22 Nov 1998
I would
recommend not wasting any more time on the naming issue. (This is a
recurring theme in my posts -- remember, I spent about 0.3
microseconds thinking about whether "Python" would be a good name for
a programming language, and I've never regretted it.)
Guido van Rossum, 25 Nov 1998
"My course members are almost all coming from Math,
and the first question was 'why isn't it complete?'
Just a matter of elegance."
"Oh, don't worry. My background is math. This is actually
good for them -- like discovering that Santa Claus doesn't
really exist."
Christian Tismer and Guido van Rossum, 2 Dec 1998
One of my cheap entertainments is axiomatizing characterizations
of [Tim Peters]. I think I've come up with a minimal one: the only
c.l.p poster more concerned with working non-legal code than
non-working legal code.
Cameron Laird, 2 Dec 1998
PYTHON = (P)rogrammers (Y)earning (T)o (H)omestead (O)ur (N)oosphere.
Seen in Sean McGrath's .sig, 3 Dec 1998
I never realized it before, but having looked that over
I'm certain I'd rather have my eyes burned out by zombies with flaming dung
sticks than work on a conscientious Unicode regex engine.
Tim Peters, 3 Dec 1998
"Python? Oh, I've heard of that.
I have a friend at the NSA who uses it."
Overhead at a meeting, quoted in c.l.p on 3 Dec 1998
I think Gordon has priority on this one, since it's clearly a consequence of
his observation that tim_one despises and deplores anything useful. Which
has greater explanatory power, since I've often noted that tim_one complains
about legal working code too! Anything that works may be useful, right?
Brrrrr. Must destroy.
Tim Peters in the third person, 3 Dec 1998
"Eric has a way of explaining what we're doing and why we're doing
it," says Guido van Rossum, the inventor of a programming language
called Python and a prominent figure among open-source proponents. Van
Rossum, a gawky Dutchman who now lives in Reston, invited Raymond to
address a group of Python software developers in Houston...
From the Washington Post, 3 Dec 1998
Subclassing with a mixin doesn't let you, for example, interfere with
how an existing attribute is accessed. The general idea here is to
kidnap the object, skin it, then waltz around in public impersonating
it. All without letting the programmer / user know he's been
bamboozled.
Gordon McMillan, 3 Dec 1998
Hey, while they're all eating dinner, let's sneak in a keyword!
emancipate variable: declare absolute freedom for one variable. It can be whatever it
wants whenever it wants in whatever form it wants in whatever language it
wants on whatever computer it wants. In the ensuing chaos it will get
nothing done, but it will give programmers stories to tell for years to
come...
Mike Fletcher, 25 Dec 1998
"Can we kill this thread? The only thing it does as far as I'm
concerned is increase the posting statistics. :-)"
"don't-open-cans-of-worms-unless-you're-looking-for-a-new-diet-ly y'rs"
Guido van Rossum and Tim Peters, 6 Jan 1999
Hey, that was the first truly portable laptop! Of course I'm nostalgic.
Came with a mighty 24Kb RAM standard, & I popped the extra $80 to max it out
at 32Kb. Much of Cray's register assigner was developed on that beast:
unlike the prototype Crays of the time, the M100 was always available and
never crashed. Even better, I could interrupt it any time, poke around, and
resume right where it left off <wink>.
m100-basic-reminded-me-a-lot-of-python-except-that-it-sucked-ly y'rs
Tim Peters remembering the Model 100, 10 Jan 1999
"Heh -- all it really broke so far was my resistance to installing Tk. I
suppose wizardry is inevitable after one installs something, though <wink>."
"Spoken like a truly obsessive-compulsive wizard!
It-takes-one-to-know-one..."
Tim Peters and Guido van Rossum, 6 Jan 1999
Note, however, that architectural forms are completely declarative and
can be implemented in a highly optimized fashion. The sorts of
extensions that Microsoft has proposed for XSL (<xsl:eval>...</>)
would completely destroy those features. Architectural mapping would,
in general, be as reliable and high performance as ordinary software
-- (not at all).
Paul Prescod, 6 Jan 1999
Darned confusing, unless you have that magic ingredient
coffee, of which
I can pay you Tuesday for a couple pounds of extra-special grind today.
John Mitchell, 11 Jan 1999
That's so obvious that someone has already got a patent on it.
Guido van Rossum, 12 Jan 1999
I have to stop now. I've already told you more than I know.
Wolf Logan, 14 Jan 1999
I really don't have any incisive insights about the economic
mechanisms or viability of free software and open source, but I do
have a strong, clear sense that such things make it possible for me to
do my job, as a programmer and a facilitator of/participant in online
communities, better and more easily than I otherwise could do.
Ken Manheimer, 24 Jan 1999
Every standard applies to a certain problem domain and a certain level. A
standard can work perfectly and save the world economy billions of dollars
and there will still be software and hardware compatibility problems.
In fact, solving one level of compatibility just gives rise to the next
level of incompatibility. For example, connecting computers together through
standard protocols gives rise to the problem of byte endianness issues.
Solving byte endianness gives rise to the problem of character sets.
Solving character sets gives rise to the problem of end-of-line and
end-of-file conventions. Solving that gets us to the problem of
interpreting the low-level syntax (thus XML). Then we need to interpet
that syntax in terms of objects and properties (thus RDF, WDDX, etc.). And
so forth.
We could judge a standard's success by its ability to reveal another level
of standardization that is necessary.
Paul Prescod, 24 Jan 1999
I just want to go on the record as being completely opposed to
computer languages. Let them have their own language and soon
they'll be off in the corner plotting with each other!
Steven D. Majewski, 25 Jan 1999
Constraints often boost creativity.
Jim Hugunin, 11 Feb 1999
Programming is no different - it's only by going outside what you know, and
looking from another direction (working, if you like, your brain, so that
it can be more powerful :-) that you can improve further.
Andrew Cooke, 12 Feb 1999
any-technology-indistinguishable-from-magic-is-too-mysterious-
to-trust-ly y'rs
Tim Peters, 16 Feb 1999
"I don't think we've thought of this, and it's actually a good idea."
"I'd better go patent it!"
Uche Ogbuji and Paul Prescod, 16 Feb 1999
Contrary to advertising, no parsing system is "easy to learn", in or out of
the Python world -- parsing is a hard problem. Most are easy enough to use
after practice, though. Ironically, the trickiest system of all to master
(regexps) is also the feeblest and the most widely used.
Tim Peters, 17 Feb 1999
So Python's only cross-platform choices were to
mimic the C/POSIX API or invent its own new x-platform API; only one of
those is realistic (as Java proves every day <wink>).
Tim Peters, 21 Feb 99
Yes: the code in ntpath.split is too clever to have any hope of working
correctly <wink>.
Tim Peters, 19 Mar 99
Thanks. The sooner I get discouraged and quit, the more time
I'll save overall.
Frank Sergeant, 28 Mar 1999
I would actively encourage my competition to use Perl.
Sean True, 30 Mar 1999
But it's a general way to debug: tell someone what right things
your program is doing. Chances are that you will see the wrong
thing(s) before the other person has said anything...
I just stick a picture of a face on my monitor and talk to
it to find bugs.
Richard van de Stadt, 9 Apr 1999
Might just be nostalgia, but I think I would give an arm
or two to get that (not necessarily my own, though).
Fredrik Lundh, 13 May 1999
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than
right now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
Tim Peters' 19 Pythonic Theses, 4 Jun 1999
"However, I've heard that after about
10K items in a dict, it starts having problems."
"11,523 to be exact. After that, dicts drink to excess and show up for work
late the morning after. We don't like to talk about it, though."
Aahz Maruch and Tim Peters, 8 Jun 1999
... we need more
people like him, who are willing to explore without being driven to argue
with people about it.
William Tanksley on Chuck Moore, inventor of Forth, 2 Jul 1999
Sorry for the term, I picked it up from Jim Fulton back when it was
an about-to-be-added feature for Principia/Aqueduct. As with so many
Fultonisms, it's vivid and tends to stick in one's (non-pluggable) brain.
Paul Everitt on the term "pluggable brains", 5 Jul 1999
I picture a lump of inanimate flesh (a result from a
relational database query) being infused with the spark of life (object
behavior, aka class).
Jim Fulton on the term "pluggable brains", 5 Jul 1999