ACME-QuoteDB

 view release on metacpan or  search on metacpan

t/data/python_quotes.txt  view on Meta::CPAN


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

t/data/python_quotes.txt  view on Meta::CPAN

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 1999

Yes: the code in ntpath.split is too clever to have any hope of working
correctly <wink>.
      -- Tim Peters, 19 Mar 1999

Thanks. The sooner I get discouraged and quit, the more time I'll save overall.
      -- Frank Sergeant, 28 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

    1. Beautiful is better than ugly.
    2. Explicit is better than implicit.
    3. Simple is better than complex.
    4. Complex is better than complicated.
    5. Flat is better than nested.
    6. Sparse is better than dense.
    7. Readability counts.
    8. Special cases aren't special enough to break the rules.
    9. Although practicality beats purity.
    10. Errors should never pass silently.
    11. Unless explicitly silenced.
    12. In the face of ambiguity, refuse the temptation to guess.
    13. There should be one -- and preferably only one -- obvious way to do it.
    14. Although that way may not be obvious at first unless you're Dutch.
    15. Now is better than never.
    16. Although never is often better than *right* now.
    17. If the implementation is hard to explain, it's a bad idea.
    18. If the implementation is easy to explain, it may be a good idea.
    19. 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

Stackless Python 0.2, a plug-in replacement for the Python core that does not
use the C stack, has been announced by Christian Tismer as the best way to
prove that it was possible without a major rewrite to the core. Neel
Krishnaswami commented to Christian, "This is very neat, and you are completely
deranged".
      -- From Linux Weekly News, 17 Jul 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

This is good. It means that while Ionesco is dead, his spirit lives on.
      -- Gordon McMillan on how Windows attaches meaning to 3-character
         file extensions, 30 Jul 1999

(On the statement print "42 monkeys"+"1 snake") BTW, both Perl and Python get
this wrong. Perl gives 43 and Python gives "42 monkeys1 snake", when the answer
is clearly "41 monkeys and 1 fat snake".
      -- Jim Fulton, 10 Aug 1999

I expect that what you really object to is the absence of control structures
other than goto, and the LT/GE/etc spelling of comparison operators. That was
common enough in its day, and even by the time Pascal came around the keypunch
I used still didn't have a semicolon key. It looks ugly in retrospect only
because it is <wink>.
      -- Tim Peters on SNOBOL4, 17 Aug 1999

Theory and reality rarely are kissing cousins.
      -- Christopher Petrilli, 1 Sep 1999

Features generally don't exist in isolation, and you have to look at all the
consequences, not just the one that attracts you at first sight.
      -- Tim Peters, 3 Sep 1999

The danger in this line of thinking is not realizing that the computational
effort involved in big NP complete problems is *so* huge that even in optimized
micro-code, the algorithm might take a million years to run. Tweezers or shovel
-- it makes little difference when you are trying to move a universe...
      -- Sean McGrath, 4 Sep 1999

On a scale of one to ten I'd give it a tim.
      -- William Tanksley, 13 Sep 1999

Statistical analysis shows that the junk looks like human text, which clearly
shows that it is actually used in some yet unknown way. (docstrings?)
      -- Fredrik Lundh, writing about junk DNA, 5 Oct 1999

If I engineer code that I expect to be in use for N years, I make damn sure
that every internal limit is at least 10x larger than the largest I can
conceive of a user making reasonable use of at the end of those N years. The
invariable result is that the N years pass, and fewer than half of the users
have bumped into the limit <0.5 wink>.
      -- Tim Peters, 11 Nov 1999

I don't think the bytecodehacks, while sufficiently dark and useless to be a
tim-ism, qualify me in any way for a Pythonic Wizard Hat...
      -- Michael Hudson, 16 Nov 1999

The bottom tier is what a certain class of wanker would call "business
objects"...
      -- Greg Ward, 9 Dec 1999

Since I've done fewer than my normal quota of futile things this week, I
thought I'd post to remind people that ...
      -- Phil Austin, 9 Dec 1999

There are useful diagrams in UML, (eg, the state and transition diagrams).
Unfortunately, the one most tools use to generate code (and draw from reverse
engineering) has everything to do with language structure, and nothing to do
with what actually happens at runtime. To put it bluntly: people spend most of
their time designing the wrong thing. Worse, they get it wrong, but it's carved
in stone now; so the final system is either needlessly complex and marginally
functional, or bears no resemblance to the "design".
      -- Gordon McMillan, 15 Dec 1999

The secret to good performance is to prototype and prototype, then code the
bottlenecks in a faster language. The secret to large systems is to prototype
and prototype, until you've got clean separation of the system into managable
pieces, then code in whatever language most suits the need of each piece.
      -- Gordon McMillan, 15 Dec 1999

When Jim [Fulton] says "tricky" it means your brain could explode.
      -- Michel Pelletier, 15 Dec 1999

You have start-tags, attributes, end-tags and character data. We have all seen
"XML applications" and "XML parsers" which handle this gang- of-four concepts.
... Now we can peer over the parapet and shout "your parser smells of
elderberries" or "I wave my mixed content at your ankles", as long as we like
but the simple gang-of-four base apps will not go away.
      -- Sean McGrath, 19 Dec 1999

Abstraction is one of those notions that Python tosses out the window, yet
expresses very well.
      -- Gordon McMillan, 6 Jan 2000

The set of naming conventions has a cardinality equal to the number of Python
users.
      -- Gordon McMillan, 6 Jan 2000

The way to build large Python applications is to componentize and
loosely-couple the hell out of everything.
      -- Aahz Maruch, 6 Jan 2000

It's not the mail volume that bothers me -- I can ignore 100s of messages a day
very quickly. It's the time it takes to respond to all of them.
      -- Guido van Rossum, 20 Jan 2000

This is the way of Haskell or Design by Contract of Eiffel. This one is like
wearing a XV century armor, you walk very safely but in a very tiring way.
      -- Manuel Gutierrez Algaba, 26 Jan 2000

Life's better without braces.
      -- Unofficial motto of IPC8, coined by Bruce Eckel

"Aggressive" means "sometimes wrong".
      -- John Aycock at IPC8, during his "Agressive Type Inferencing" talk

Do I do everything in C++ and teach a course in advanced swearing?
      -- David Beazley at IPC8, on choosing a language for teaching

Alice is 3D Logo on steroids.
      -- Randy Pausch at IPC8

I was willing to grant this one at once, but, now that I look back at it all --
the loyalty oaths, the relentless self-criticism sessions, the midnight visits
from the Ministry of Love -- I'm afraid what we really have here is unspeakably
more sinister.
      -- Tim Peters after a reference to "Python's cult-like following", 2
         Feb 2000

Guido (like us!) is a bit schizophrenic here: he wants to be a benevolent
dictator, but also wants to treat people like grownups. This probably worked
better before Python got a large American audience <0.9 wink>.
      -- Tim Peters, 10 Feb 2000

I have formal proofs that any change of the indentation rules results in 35%
increase of the page faults for only 63.7% of the cache misses. The net effect
is an overall slowdown of 10%.
      -- Vladimir Marangozov after Yet Another indentation flamewar, 16 Feb
         2000

... let me just say that my least-favourite Python error message is
"SyntaxError: invalid syntax", which somehow manages to be both overly terse
and redundant at the same time.
      -- Greg Ward, 15 Feb 2000

    See, functional programmers are an insular lot. You rarely see them in
public, except at parades when they all have antler- hats and silly shoes on.
So they completely missed the infamous "goto considered harmful" thread and
didn't even realize they were doing anything wrong.
    Now, let's pretend you're writing a 'bot that can pass as a functional
programmer. There's a complex protocol here. When two functional programmers
see each other on the street, they recognize each other by the antler hats. But
in certain parts of the Midwest, regular people wear antler hats, too. So
there's a protocol. First a <wink wink>. Then the secret handshake. Then you
sniff each other's armpits and stamp your foot 3 times.
    OK, so you've written a bot, and it works fine on the street. Now you send
it to a cocktail party. It sees a potential functional programmer and gives the
<wink wink>. Now it tries to move into position to do the secret handshake, but
discovers that it's antler-hat is entangled with someone else's. Oops. <wink
wink> at the new guy. Handshake. But before it can sniff, the first one has
moved up for his handshake. Ay yi yi. Your bot crashes and is exposed.
    So now you rewrite your bot to use a finite state machine so it can handle
multiple sessions. That means throwing out all the code that worked on the
street. But if you'd used continuations, it would be a relatively minor
adjustment of that code. 'Course you wouldn't have had to write the bot to
begin with.
      -- Gordon McMillan, 18 Feb 2000

IIRC, Guido went to CNRI to work on bots and agents or something similar. Could
the timbot and the effbot be an offshoot of that? Next, he's going to start a
company with timbot and effbot as the main products. Van Rossum's Universal
Robots?
      -- Bernhard Herzog, 21 Feb 2000

So those are the extremes: Boehm-Demers-Weiser avoids blame by refusing to do
anything. Java avoids blame by exposing an impossibly baroque
implementation-driven finalization model. Scheme avoids blame by refusing to do
anything "by magic", but helps you to shoot yourself with the weapon of your
choice. The bad news is that I don't know of a scheme *not* at an extreme!
      -- Tim Peters on the knotty problem of finalizers and cycles, 3 Mar
         2000

It's extremely un-Pythonic to let things leak (despite that it has let things
leak for a decade <wink>), but also extremely un-Pythonic to make some wild-ass
guess.
      -- Tim Peters on garbage collection, 3 Mar 2000

IOW, the only people who lose under this scheme are the ones begging to lose,
and their "loss" consists of taking responsibility.
      -- Tim Peters, 3 Mar 2000

An axiom is accepted without proof: we have plenty of proof that there's no
thoroughly good answer (i.e., every language that has ever addressed this issue
-- along with every language that ever will <wink>).
      -- Tim Peters on garbage collection, 3 Mar 2000

    I can see the FAQ now...
    Q1.1.2.3: Why can't I divide integers?
    A: You drooling moron! You need a 10-page owners manual and instructional
video to handle the notational complexity of Tic-Tacs, don't you? As every
schoolboy knows, the integers are a *ring*, not a field, you simpering
simpleton. Oh wait! Let me guess! I have to spell it out for you, you festering
wombat boil. You can't divide integers by integers and get integers. Understand
now? Now go out there and don't do it. And read Herstein, while you're at it.
      -- Johann Hibschman, 4 Mar 2000

Actually, I believe you understand me fine, you'd just rather not believe it:
floating point sucks, rationals suck, refusing to allow int division sucks, the
constructive reals suck, symbolic manipulation sucks, ..., but all in different
ways for different reasons. Every one bristles with its own brands of both
shallow and deep "surprises". So it goes -- seeking to represent the infinite
by the finite is an inherently unreachable goal. This is also why people die
<wink>.
      -- Tim Peters, 4 Mar 2000

    The reason I'm right is that I said there won't be any *single* "survivor"
of the evolutionary struggle, and that the efforts to crown one's favorite as
such are just so much noise. The software ecosystem of the foreseeable future
will always have its own form of "diversity": there will be lions *and*
elephants *and* fish *and* seals *and* birds, because there will be many
diverse "habitats" where the particular adaptations of each will be
needed/advantageous.
    The reasoned debates (as opposed to religious wars) may lead to lions with
opposable thumbs, or elephants that can see in the infrared, but there will
never be a 2000-pound fish with a mane and wings. Well, not outside the lab,
anyway.
      -- Ran, 5 Mar 2000

"Complexity" seems to be a lot like "energy": you can *transfer* it from the
end user to one/some of the other players, but the total amount seems to remain

t/data/python_quotes.txt  view on Meta::CPAN


UTF-8 has a certain purity in that it equally annoys every nation, and is
nobody's default encoding.
      -- Andy Robinson, 10 Apr 2000

    "Now if we could figure out where python programmers are from, someone
could write a book and get rich."
    "Yorkshire."
      -- Quinn Dunkan and Warren Postma, 11 Apr 2000

If I didn't have my part-time performance art income to help pay the bills, I
could never afford to support my programming lifestyle.
      -- Jeff Bauer, 21 Apr 2000

Of course, this brought me face to face once again with Python's _pons
asinorum_, the significance of whitespace.
      -- Eric S. Raymond, in the _Linux Journal_'s Python supplement

Surprisingly enough, Python has taught me more about Lisp than Lisp ever did
;-).
      -- Glyph Lefkowitz, 3 May 2000

How about we notate the hungarian notation with the type of hungarian notation,
you know, hungarian meta notation: HWND
aWin32ApiHandleDefinedInWindowsDotH_hwndWindowHandle;
      -- Warren Postma, 4 May 2000

Note that Python's licence is in fact the MIT X11 licence, with MIT filed off
and CNRI written in its place in crayon.
      -- A.M. Kuchling, 5 May 2000

Once you've read and understood _The Art of the Metaobject Protocol_ you are
one quarter of the way to provisional wizard status. (The other three-fourths
are b) understanding Haskell's monads, c) grokking Prolog, and d) becoming
handy with a combinator- based language by implementing a Forth.)
      -- Neel Krishnaswami, 9 May 2000

"The future" has arrived but they forgot to update the docs.
      -- R. David Murray, 9 May 2000

/* This algorithm is from a book written before the invention of structured
programming... */
      -- Comment in parser/pgen.c, noted by Michael Hudson

For more information please see my unpublished manuscript on steam driven
turing machines. [2000pp in crayon donated to the harvard library -- they never
told me whether they filed it under mathematics, philosophy, logic, mechanical
engineering, or computational science]
      -- Aaron Watters, 12 May 2000

    Me? I hate the whole lambda calculus, not because of what it is, but
because of what many people think it is. They think that it's the whole of
computer science, the ultimate way to express and reason about programs, when
in reality it's merely a shabby and incomplete model of how Fortran fails to
work. The first thing SICP has to do is teach everyone how bad the lambda
calculus model is -- as part of teaching them about a language allegedly based
on lambda calculus.
    I'm sorry, was my bias showing again? :-)
      -- William Tanksley, 13 May 2000

I never got beyond starting the data-structures in C++, I never got beyond
seeing how it would work in Scheme. I finished it in one Python -filled
afternoon, and discovered the idea sucked big time. I was glad I did it in
Python, because it only cost me one afternoon to discover the idea sucks.
      -- Moshe Zadka, 13 May 2000

In truth, we use 'j' to represent sqrt(-1) for exactly the same reason we use a
convention for the direction of current which is exactly the opposite of the
direction the electrons actually travel: because it drives physicists crazy.
(And if we pick up a few mathematicians or whatever along the way, well, that's
just gravy. ;-)
      -- Grant R. Griffin, 14 May 2000

Unicode: everyone wants it, until they get it.
      -- Barry Warsaw, 16 May 2000

I saw a hack you sent me a few months ago and approved of its intent and was
saddened by its necessity.
      -- Jim Fulton, 16 May 2000

Suspicions are most easily dispelled/confirmed via evidence, and taking the
trouble to do this has the pleasant side-effect that you can either cease
expending effort worrying, or move directly to taking positive action to
correct the problem.
      -- Neel Krishnaswami, 21 May 2000

Thanks to the overnight turnaround and the early interpreter's habit of
returning nothing at all useful if faced with a shortage of )s, one could
easily detect the LISP users: they tended to walk around with cards full of
)))))))... in their shirt pockets, to be slapped onto the end of submitted card
decks: one at least got something back if there were too many )s.
      -- John W. Baxter, 21 May 2000

Python: embodies a harmony of chocolate kisses with hints of jasmine and rose.
Trussardi's wild new fragrance.
      -- From _Marie Claire_, Australian edition, May 2000; noted by Fiona
         Czuczman

In arts, compromises yield mediocre results. The personality and vision of the
artist has to go through. I like to see Python as a piece of art. I just hope
the artist will not get too tainted by usability studies.
      -- François Pinard, 22 May 2000

In fact, I've never seen an argument about which I cared less. I'm completely
case insensitivity insensitive.
      -- William Tanksley, 23 May 2000

They boo-ed when Dylan went electric. But for me its about the instincts of a
designer, and the faith of a fan. Not science. So much the better.
      -- Arthur Siegel, 23 May 2000

Burroughs did something very odd with COBOL at one point (and no, it wasn't The
Naked Lunch).
      -- Will Rose, 27 May 2000

Code generators are hacks. Sometimes necessary hacks, but hacks nevertheless.
      -- Paul Prescod, 7 Jun 2000

Very rough; like estimating the productivity of a welder by the amount of
acetylene used.
      -- Paul Svensson, on measuring programmer productivity by lines of
         code, 19 Jun 2000

I vote for backward compatibility for now, and not only because that will
irritate /F the most.
      -- Tim Peters, 30 Jun 2000

A comment is in order then. If the code is smarter than it looks, most people
aren't going to think it looks very smart.
      -- Jeremy Hylton, 6 Jul 2000

You and I think too much alike ?!ng. And if that doesn't scare you now, you
should have a talk with Gordon.
      -- Barry Warsaw, 12 Jul 2000

Isn't it somewhat of a political statement to allow marriages of three or more
items? I always presumed that this function was n-ary, like map().
      -- Paul Prescod, on the proposed name marry() for a function to
         combine sequences, 12 Jul 2000

Since my finger was slowest reaching my nose, I got elected Editor. On the
positive side of that, I get to make the early decisions that will be cursed
for generations of Python hackers to come.
      -- Barry Warsaw, 12 Jul 2000

Hey, you know, we can work this in. Sailor Moon + Giant Robots + Tentacle
Demons + Python Conference == Bizarre hilarity ensues!
      -- Alexander Williams, 4 Aug 2000

The rapid establishment of social ties, even of a fleeting nature, advance not
only that goal but its standing in the uberconscious mesh of communal psychic,
subjective, and algorithmic interbeing. But I fear I'm restating the obvious.
      -- Will Ware, 28 Aug 2000

The comp.lang.python newsgroup erupted last week with a flurry of posts that
accused the Python development team of creeping featurism, selling out the
language to corporate interests, moving too fast, and turning a deaf ear to the
Python community. What triggered this lava flow of accusations? The development
team accepted a proposal to change the syntax of the print statement.
      -- Stephen Figgins, 30 Aug 2000

    INTERVIEWER: Tell us how you came to be drawn into the world of pragmas.
    COMPILER WRITER: Well, it started off with little things. Just a few
boolean flags, a way to turn asserts on and off, debug output, that sort of
thing. I thought, what harm can it do? It's not like I'm doing anything you
couldn't do with command line switches, right? Then it got a little bit
heavier, integer values for optimisation levels, even the odd string or two.
Before I knew it I was doing the real hard stuff, constant expressions,
conditionals, the whole shooting box. Then one day when I put in a hook for
making arbitrary calls into the interpreter, that was when I finally realised I
had a problem...
      -- Greg Ewing, 31 Aug 2000

The modules people have built for Python are like the roads the Romans built
through Europe. On this solid ground, you can move fast as you work on aspects
of program design that aren't so analytical -- user interface, multi-threaded
event dispatching models, all kinds of things that can be done a lot of
different ways and are hard to get right the first time through.
      -- Donn Cave, 3 Sep 2000

Python 2.0 beta 1 is now available from BeOpen PythonLabs. There is a long list
of new features since Python 1.6, released earlier today. We don't plan on any
new releases in the next 24 hours.
      -- Jeremy Hylton, in the 2.0b1 announcement, 5 Sep 2000

Fortunately, you've left that madness behind, and entered the clean, happy, and
safe Python world of transvestite lumberjacks and singing Vikings.
      -- Quinn Dunkan, 17 Sep 2000

Regular expressions are among my most valued tools, along with goto, eval,
multiple inheritance, preemptive multithreading, floating point, run-time type
identification, a big knife, a bottle of bleach, and 120VAC electricity. All of
these things suck sometimes.
      -- Kragen Sitaker, 27 Sep 2000

    IIRC, he didn't much care for regexps before, but actually writing a regexp
engine drives most people who do it to intense hatred.
    Just more of the magic of Python! Transmuting a few peoples' intense agony
into the subject of others' idle amusement <wink>.
      -- Tim Peters, 27 Sep 2000

"I do not love thee, lambda; let me count the ways..."
      -- Aahz Maruch, 27 Sep 2000

They are called "Exceptions" because to any policy for handling them, imposed
in advance upon all programmers by the computer system, some programmers will
have good reason to take exception.
      -- William Kahan, quoted by Tim Peters, 13 Oct 2000

"Interim steps" have a tendency to become permanent in our industry, where
"Compatibility" is the way the sins of the fathers are inflicted upon the third
and fourth generations ...
      -- William Kahan, quoted by Huaiyu Zhu, 16 Oct 2000

The most successful projects I've seen and been on *did* rewrite all the code
routinely, but one subsystem at a time. This happens when you're tempted to add
a hack, realize it wouldn't be needed if an entire area were reworked, and mgmt
is bright enough to realize that hacks compound in fatal ways over time. The
"ain't broke, don't fix" philosophy is a good guide here, provided you've got a
very low threshold for insisting "it's broke".
      -- Tim Peters, 25 Oct 2000

Humour is a tricky thing. Some people can't even get the spelling right.
      -- Richard Brodie, 30 Oct 2000

    The same way as you get the name of that cat you found on your porch: the
cat (object) itself cannot tell you its name, and it doesn't really care -- so
the only way to find out what it's called is to ask all your neighbours
(namespaces) if it's their cat (object)...
    ....and don't be surprised if you'll find that it's known by many names, or
no name at all!
      -- Fredrik Lundh, 3 Nov 2000, in answer to the question "How can I
         get the name of a variable from C++ when I have the PyObject*?"

These are mostly nice features, to be sure, but they're also just that:
features. C++ has features. Python doesn't have a stellar score on my
elegance-o-meter, but for me its major win is the lack of features, and lack of
ambiguities. It fits in my brain.
      -- Quinn Dunkan, 18 Nov 2000

When explaining programming I sometimes compare programmers to photographers:
amateur photographers talk about cameras and lenses and gadgets. They know how
to make their camera do almost anything, and they are keen to argue the merits
of their favorite tools. Professional photographers talk about contrast and
lighting and composition. The camera is almost irrelevant. Ansel Adams used
cameras that were less sophisticated than a supermarket disposable, back when
photography was slow and tedious (like batch-oriented programming). Because the
technology was so primitive, he carefully planned his photographs and developed
discipline so he could reliably make excellent photographs over and over.
      -- Greg Jorgensen, 26 Nov 2000

As you might have guessed, I didn't do this just for fun. It is the old game of
explaining what is there, convincing everybody that you at least know what you
are talking about, and then three days later coming up with an improved
application of the theory.
      -- Christian Tismer, 11 Dec 2000

Have they sprouted a new timbot, more geared towards newbies, more polite and
friendly maybe, with a touch of human fallibility (hence the occasional slip of
the keyboard) and named it Alex?
      -- Carel Fellinger, 12 Dec 2000

I'm spending most of my waking hours understanding this patch -- it is a true
piece of wizardry.
      -- GvR, discussing a patch from Neil Schemenauer, 13 Dec 2000

    Maybe they took solidity *for granted*, because, in their (Renaissance)
times and in their (Architecture) calling, compromises regarding solidity were
simply unthinkable. Well, we're not so lucky, in the software field, today; the
Firmitas of *by far* most software around is imperfect.
    We *must* live by "do the simplest thing that can possibly work" -- give
solidity its proper, foremost place. One of the debilitating factors for much
current software is a misplaced emphasis on assumed 'convenience' (funky GUIs,
quirky shortcuts, special cases aplenty) to the detriment of solidity. A small
but crucial step to reverse this trend, is to start by putting the order right
once more... the way Vitruvius had it!
      -- Alex Martelli, 13 Dec 2000

The Martellibot Mark 1 has a completely European flavour to it, and adds a
cosmopolitan touch of linguistics to its output, sprinkling foreign language
references in. It is similar to the timbot in its overall erudition, but can be
distinguished from it by its tendency to indulge in flamewars (which, I
believe, it does mostly to convince us it is human).
      -- Steve Holden, 13 Dec 2000

    In keeping with the religious nature of the battle-- and religion offers
precise terms for degrees of damnation! --I suggest:
    struggling -- a supported feature; the initial state of all features; may
transition to Anathematized
    anathematized -- this feature is now cursed, but is supported; may
transition to Condemned or Struggling; intimacy with Anathematized features is
perilous
    condemned -- a feature scheduled for crucifixion; may transition to
Crucified, Anathematized (this transition is called "a pardon"), or Struggling
(this transition is called "a miracle"); intimacy with Condemned features is
suicidal
    crucified -- a feature that is no longer supported; may transition to
Resurrected
    resurrected -- a once-Crucified feature that is again supported; may
transition to Condemned, Anathematized or Struggling; although since
Resurrection is a state of grace, there may be no point in human time at which
a feature is identifiably Resurrected (i.e., it may *appear*, to the
unenlightened, that a feature moved directly from Crucified to Anathematized or
Struggling or Condemned -- although saying so out loud is heresy).
      -- Tim Peters, 18 Dec 2000

my-python-code-runs-5x-faster-this-month-thanks-to-dumping-$2K- on-a-
new-machine-ly y'rs
      -- Tim Peters, 26 Dec 2000

Really, I should pronounce on that PEP (I don't like it very much but haven't
found the right argument to reject it :-) ) so this patch can either go in or
be rejected.
      -- GvR, 04 Jan 2001, in a comment on patch #101264

The rest is history: the glory, the fame, the riches, the groupies, the
adulation of my peers. We won't mention the financial scandal and subsequent
bankruptcy lest it discourage you for no good reason <wink>.
      -- Tim Peters, 14 Jan 2001

If you're using anything besides US-ASCII, I *stringly* suggest Python 2.0.
      -- Uche Ogbuji (A fortuitous typo?), 29 Jan 2001

    "There goes Tim, browsing the Playboy site just for the JavaScript.
Honest."
    "Well, it's not like they had many floating-point numbers to ogle! I like
'em best when the high-order mantissa bits are all perky and regular, standing
straight up, then go monster insane in the low-order bits, so you can't guess
*what* bit might come next! Man, that's hot. Top it off with an exponent field
with lots of ones, and you don't even need any oil. Can't say I've got a
preference for sign bits, though -- zero and one can both be saucy treats. Zero
is more of a tease, so I guess it depends on the mood."
      -- Barry Warsaw and Tim Peters, 3 Feb 2001

We were sincerely hoping that the Python core team would teach their employers

t/data/python_quotes.txt  view on Meta::CPAN

      -- Pieter Nagel, 5 Feb 2001

This bug fix brought to you by the letters b, c, d, g, h, ... and the reporter
Ping.
      -- Jeremy Hylton in a checkin message for Python/compile.c, 12 Feb
         2001

    "It's in ClassModules.py you dumb f**k - can't you tell by the name?"
    "Furthermore, RTFM is much more effective if you do it gently and make them
feel nicely embarrassed, rather than having them just say 'well, fuck you too'
when reading the first insult, and not learn a thing."
    "Thanks. I'll try to keep that in mind the next time I flame myself."
      -- Phlip, following up to a query he'd posted earlier, and Thomas
         Wouters, 18 Feb 2001

    "Also, does the simple algorithm you used in Cyclops have a name?"
    "Not officially, but it answers to "hey, dumb-ass!"
      -- Neil Schemenauer, interested in finding strongly connected
         components in graphs, and Tim Peters, 23 Feb 2001

Make this IDLE version 0.8. (We have to skip 0.7 because that was a CNRI
release in a corner of the basement of a government building on a planet
circling Aldebaran.)
      -- GvR, in a CVS commit message, 22 Mar 2001

Python: programming the way Guido indented it.
      -- Digital Creations T-shirt slogan at IPC9

Stackless Python: programming the way Guido prevented it.
      -- Christian Tismer's title slide, at IPC9

I don't think we should use rational numbers for money because money isn't
rational.
      -- Moshe Zadka, at IPC9

We can't stop people from complaining but we can influence what they complain
about.
      -- Tim Peters, at IPC9

Perl is like vise grips. You can do anything with it but it is the wrong tool
for every job.
      -- Bruce Eckel, at IPC9

Given the choice between a good text editor and a good source control system,
i'll take the source control, and use "cat" to write my code.
      -- Greg Wilson, at IPC9

here's the eff-bot's favourite lambda refactoring rule:
1) write a lambda function
2) write a comment explaining what the heck that lambda does
3) study the comment for a while, and think of a name that captures
   the essence of the comment
4) convert the lambda to a def statement, using that name
5) remove the comment
      -- Fredrik Lundh, 01 Apr 2001

The GPL tried to protect the freedom of end-users to modify and redistribute
their code. Most people do not believe that this is a legitimate freedom like
freedom of speech or assembly but Richard Stallman does. I don't think that
there is an argument that that will persuade a person one way or another. If
freedoms could be proven, that famous document would probably start: "Not
everyone holds these truths to be self-evident, so we've worked up a proof of
them as Appendix A."
      -- Paul Prescod, 11 Apr 2001

That is one of the first goals. Also, we want to handle a C++ SAX stream with
Python, and vice versa (feed a Python SAX stream into Xalan). Bi-SAXuality, in
a sense. :)
      -- Jürgen Hermann, 11 Apr 2001

As you seem totally unwilling or unable to understand that _Weltanschauung_ to
any extent, I don't see how you could bring Python any constructive enhancement
(except perhaps by some random mechanism akin to monkeys banging away on
typewriters until 'Hamlet' comes out, I guess).
      -- Alex Martelli, 17 Apr 2001

    "Are we more likely to add different concrete subclasses of Consumable in
the future, or different concrete subclasses of Consumer? I suspect the former
is more likely."
    "With genetic engineering being the latest growth industry, I'm not sure
that's true. Although I expect that any new models of cow, etc. will have a
backwards compatible food-consumption protocol."
      -- Alex Martelli and Greg Ewing, 19 Apr 2001

This property is called confluence, and the proof is called the Church -Rosser
theorem. I'm sure you know this, of course, but somewhere out there there's a
college student who is being shocked that CS is actually turning out to be
relevant, for sufficiently small values of relevance.
      -- Neelakantan Krishnaswami, 20 Apr 2001

if the style mafia finds out, you may find a badly severed list comprehension
in your bed one morning, but I'd say the risk is very low.
      -- Fredrik Lundh, 10 May 2001

1495 is a *deservedly* unpopular number. After all, Lorenzo de' Medici ("il
Magnifico") died in 1492, and Giovanni de' Medici ("dalle Bande Nere") wasn't
born until 1498, so 1495 fell right in the middle of a very boring and unusual
lull where no really outstanding member of the Medici family (either branch)
was around.
      -- Alex Martelli, 24 May 2001

    "What do you call the thing that pops up and says `Searching' or something
to reassure the user that his computer hasn't crashed and the application is
still running?"
    "On Windows, that's called 'a miracle'."
      -- Laura Creighton and Tim Peters, 28 May 2001

In general, my conclusion after doing numerical work for a while is that the
desire to look at algorithms crucial to your research as black boxes is futile.
In the end, I always had to dig into the details of the algorithms because they
were either never black-boxable or the black-box versions didn't do a good
enough job.
      -- David Ascher, 28 May 2001

    "Oh, read *all* Kahan has written, and if you emerge still thinking you
*know* what you're doing when floating point is involved, you're either Tim
Peters, or the world champ of hubris."
    "I find it's possible to be both <wink>."
      -- Alex Martelli and Tim Peters, 20 May 2001

Wow, this almost looks like a real flamefest. ("Flame" being defined as the
presence of metacomments.)
      -- GvR, 13 Jun 2001

    "Maybe we also have a smaller brain than the typical Lisper -- I would say,
that would make us more normal, and if Python caters to people with a
closer-to-average brain size, that would mean more people will be able to
program in Python. History will decide..."
    "I thought it already has, pretty much."
      -- GvR and A.M. Kuchling, 14 Jun 2001

Did Guido use the time machine to get a copy of the GoF book before he started
working on the first version of Python, or are Patterns just a transparent
attempt to cover for chronically inexpressive languages like C++ and Java which
can't generally implement these mind-numbingly simple constructs in code?
      -- Glyph Lefkowitz, 7 Jun 2001

Google confuses me; if you search for "michael hudson" my page is the third hit
-- but my name doesn't actually appear anywhere on the linked page! The "did
you mean to search for..." feature is also downright uncanny. They've clearly
sold their souls to the devil -- there's no other explanation.
      -- Michael Hudson, 28 Jun 2001

You didn't say what you want to accomplish. If the idea of "provably correct"
programs appeals to you, Eiffel will give you more help than any other
practical language I know of. But since your post didn't lay out your
assumptions, your goals, or how you view language characteristics as fitting in
with either, you're not a *natural* candidate for embracing Design by Contract
<0.6 wink>.
      -- Tim Peters, 3 Jun 2001

    The static people talk about rigorously enforced interfaces, correctness
proofs, contracts, etc. The dynamic people talk about rigorously enforced
testing and say that types only catch a small portion of possible errors. The
static people retort that they don't trust tests to cover everything or not
have bugs and why write tests for stuff the compiler should test for you, so
you shouldn't rely on *only* tests, and besides static types don't catch a
small portion, but a large portion of errors. The dynamic people say no program
or test is perfect and static typing is not worth the cost in language
complexity and design difficulty for the gain in eliminating a few tests that
would have been easy to write anyway, since static types catch a small portion
of errors, not a large portion. The static people say static types don't add
that much language complexity, and it's not design "difficulty" but an
essential part of the process, and they catch a large portion, not a small
portion. The dynamic people say they add enormous complexity, and they catch a
small portion, and point out that the static people have bad breath. The static
people assert that the dynamic people must be too stupid to cope with a real
language and rigorous requirements, and are ugly besides.
    This is when both sides start throwing rocks.
      -- Quinn Dunkan, 13 Jul 2001

I am becoming convinced that Unicode is a multi-national plot to take over the
minds of our most gifted (and/or most obsessive) programmers, in pursuit of an
elusive, unresolvable, and ultimately, undefinable goal.
      -- Ken Manheimer, 19 Jul 2001

Unicode is the first technology I have to deal with which makes me hope I die
before I really really *really* need to understand it fully.
      -- David Ascher, 19 Jul 2001

Moore's law is slowly making type declarations irrelevant...
      -- Paul Prescod, 29 Jul 2001

The mark of a mature programmer is willingness to throw out code you spent time
on when you realize it's pointless.
      -- Bram Cohen, 20 Sep 2001

Generators and iterators are among the most loving features ever introduced.
They will give and give, without ever asking anything from you save the
privilege of gracing your code, waiting with eager anticipation for you to
resume them at your pleasure, or even to discard them if you tire of their
charms. In fact, they're almost pathologically yielding.
      -- Tim Peters, 18 Oct 2001

IMO a bunch of the frustration I sometimes feel with Python comes from its
originally being intended as a "glue" language. It's too good for that, and
finds itself used as a work horse or even a race horse. Neither type of horse
belongs in the glue factory ;-).
      -- Paul Rubin, 30 Oct 2001

    "Which inevitably has the followup rhyme 'There was a young man from
Verdun'."
    "But somehow no one ever seems to be able to remember what it was about the
man from Abdero."
      -- Simon Callan and Gareth McCaughan, 04 Nov 2001, after someone
         quoted the limerick "There was a young man from Wooloomooloo /
         Whose limericks always finished on line two."

Sometimes I feel like I'm reinventing Zope, but at least it's a Zope I
understand.
      -- Quinn Dunkan, 05 Nov 2001 on the quixote-users list

Homological algebra beckons -- brain relief in this context!
      -- Michael Hudson, 07 Nov 2001, in a discussion of Stackless Python

If you're talking "useful", I'm not your bot.
      -- Tim Peters, 08 Nov 2001

    "How do you do a range of floats?"
    "Bring flowers, and buy them all nice dinners. Try not to be *too* obvious
that you're out to do them, though."
      -- Thomas Wouters and Tim Peters, 09 Nov 2001

Changing diapers reminded Guido that he wanted to allow for some measure of
multiple inheritance from a mix of new- and classic-style classes.
      -- Tim Peters in a checkin message, 14 Nov 2001

My late father-in-law, Ray Pigozzi, was an extremely talented architect (he was
made a fellow of the AIA in the late 70's or early 80's), and although he was

t/data/python_quotes.txt  view on Meta::CPAN

tried in real life.
      -- GvR, 02 Oct 2002

Most recipes are short enough for the attention span of the average Python
programmer.
      -- GvR, in the introduction to the _Python Cookbook_

We read Knuth so you don't have to.
      -- Tim Peters, _Python Cookbook_

Here's another technique that is faster and more obvious but that is often
avoided by those who mistakenly believe that writing two lines of code where
one might do is somehow sinful.
      -- Tim Peters, _Python Cookbook_

A fruitful approach to problem solving is known as "divide and conquer", or
making problems easier by splitting their different aspects apart. Making
problems harder by joining several aspects together must be an example of an
approach known as "unite and suffer!"
      -- Alex Martelli, _Python Cookbook_

compromise-is-the-art-of-spreading-misery-ly y'rs
      -- Tim Peters, 11 Dec 2002

As for Grail, it was certainly a "hot product" in the Python community in 1995
because of the restricted execution environment which I evaluated for a project
involving mobile software agents. How priorities and trends have changed since
then! Who would have thought that Microsoft Outlook would be the premier
platform for mobile code?
      -- Paul Boddie, 16 Jan 2004

    I mean, if I think about my open-source contributions, nobody wants to see
talks with these titles:
    * The Zope API Reference: Ouch
    * A Random Handful Of Bugs I've Fixed In Other Peoples' Code
    * An Old Crufty Project I Inherited That Has Zero Relevance To You
    * The Joy of Preemptive Abandonware: Release Late, If Ever (or, Software
Design as a Nihilistic Abstract Art Form) (or, Sourceforge as a Medium for
Cryptic Time Capsules)
      -- Paul Winkler, 14 Mar 2005

Syntax should not look like grit on my monitor.
      -- Anthony Baxter, 02 Jun 2005

Can this not be resolved by carefully adjusting the order of finalization? If
code can be bootstrapped it can be strootbapped.
      -- Kristján Jónsson, 30 Jun 2006

Python resembles Lisp like an octopus eye resembles a mammalian eye: they have
lots in common because they're both pretty good solutions to similar problems.
Deciding whether it's Python or Lisp that has the retina fitted back-to-front
is left as an exercise for the reader.
      -- Gareth McCaughan, 11 Jul 2006

As Neal said, we are not perfect; bugs happen. If we all gave up on a piece of
software after two bugs we would not be able to turn our computers.
      -- Brett Cannon, 13 Jul 2006

... I've come to believe that some people have the personality traits that let
them tolerate redoing the same work over and over again for no reason other
than management "furniture rearranging", whereas others start to resent having
their (working) life repeatedly flashed before their eyes, but in slightly
different colours, over a longer period of time.
      -- Paul Boddie, 29 Aug 2006

    I am the very model of a modern major database,
     For gigabytes of information gathered out in userspace.
     For banking applications to a website crackers will deface,
     You access me from console or spiffy user interface.
    My multi-threaded architecture offers you concurrency,
     And loads of RAM for caching things reduces query latency.
     The data is correctly typed, a fact that I will guarantee,
     Each datum has a data type, it's specified explicitly.
      -- Tim Chase, 12 Sep 2006



( run in 2.491 seconds using v1.01-cache-2.11-cpan-d8267643d1d )