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 how to code Python, instead of the other way around...

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


[Contact me]