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

[Contact me]