Python Humor

    Here is a spurious collection of semi to totally unserious stuff,mostly postings found wafting gently in thecomp.lang.pythonnewsgroup (a.k.a. thepython-list mailinglist).

    See also Andrew Kuchling's collection ofPython quotations, containing in acondensed form some sterling examples of the wit and wisdomencountered in the Python world.

    Contents

    The Zen of Python

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

    (This classic is also available in the Python interactive interpreter,justimport this!)

    Fundamental...

    Subject: Re: Book review reviewFrom: "Chyden.Net" <@chyden.net>Date: Fri, 17 Apr 1998 12:53:48 +0100Newsgroups: comp.lang.pythonMark Lutz wrote:> Naturally, not everyone has the same sense of humor.Dear, gentle, Mr. Lutz:Not everyone has *ANY* sense of humor.I -- an economist-turned-businessman who never got "Hello World"to work right in C++ -- have enjoyed reading _Programming Python_.I find computer science as god-awful as you probably findeconomics.  Applied computer science [programming] is fun, andapplied economics [making money] is fun.  The textbooks that teachboth subjects are mind-numblingly dreadful.Anyone who finds _Programming Python_ "too cute" needs to haveholes drilled in his head to let the evil spirits out.> The only objective thing worth interjecting is that Python is> named after a BBC comedy series; humor is a fundamental part of> its culture (and, I think, life in general, but I'm not in a> deep enough mood to go there today ;-).Right.  What was van Rossum supposed to do?  Call it Hitler?> Mark ("Pull my finger") L.Charles "I'm not touching that nasty thing" EvansCKO, Chyden.Net    The World's First BeOS ISP

    Cute Wabbit

    A little girl goes into a pet show and asks for a wabbit. The shopkeeper looks down at her, smiles and says:

    "Would you like a lovely fluffy little white rabbit, or a cutesywootesly little brown rabbit?"

    "Actually", says the little girl, "I don't think my python wouldnotice."

    —Nick Leaton, Wed, 04 Dec 1996

    Shooting Yourself in the Foot

    There's an endless series of jokes about how to shoot yourself in thefoot using a particular programming language. Here are entries forPython and Java:

    Python: You create a gun module, a gun class, a foot moduleand a foot class. After realising you can't point the gun at thefoot, you pass a reference to the gun to a foot object. After thefoot is blown up, the gun object remains alive for eternity, readyto shoot all future feet that may happen to appear.

    Java: You find that Microsoft and Sun have releasedimcompatible class libraries both implementing Gun objects. Youthen find that although there are plenty of feet objectsimplemented in the past in many other languages, you cannot getaccess to one. But seeing as Java is so cool, you dont care and goaround shooting anything else you can find.

    —Mark Hammond

    Legal Issues

    [Reuters] There are unconfirmed reports that MicroSoft Inc. isconsidering bringing an intellectual property infringement actionagainst the inventer of the Python programming language claimingthat the language documentation infringes on MicroSoft's rights tothe Monty Python Flying Circus. Steve Ballmer, MicrosoftExecutive Vice President, is reported to have said "This is veryserious -- we paid almost a quarter billion for those rights; thisis almost up there with the Mona Lisa thing."

    Microsoft reportedly is willing to stop the action if either alicensing agreement can be worked out or if Guido Van Rossum, theinventer, changes the name of the computer language and personallydestroys all references to Spam, the Spanish Inquisition, and soforth, in all copies of the Python code and documentationwhereever they may have propagated.

    A highly placed White House Official claims that President Clintontakes the matter very seriously and is willing to break off alldiplomatic relations with the government of Japan over the issue."We're beginning to wonder if this information super-highway thingis such a good idea after all," she said. The ambassador of Japanin Washington is reportedly "very, very confused."

    A highly placed Speaker of the House, who asked not to be named,is reported to have said, "I thought Guido was an Italian name.Those damn Japanese are sure crafty!"

    In an unrelated development, Stacker Inc. is reportedlyconsidering bringing action against Van Rossum, Brian Kernigan,and Don Knuth over their alleged infringement on Stacker's "forloop" patent.

    —Aaron Watters, Thu, 30 Mar 1995

    Python vs Tcl vs Perl5

    Subject: Re: Python vs Tcl vs Perl5From: Andrew Dalke <@ks.uiuc.edu>Date: 24 Feb 1997 15:38:48 GMTAli Shah <@texcel.no> asked:> if anyone out there has done some sort of evaluation about the> suitability of [Python, Tcl or Perl5] for different applications?Granted, the following has little to do with your questions... :)Tcl -- It is short (only three letters) and does a suprising   amount given that it doesn't have a vowel.  It can be   pronounced "Tickle", which is a command.Perl -- Bigger and has a vowel.  However you'll note that it isn't   a common english word; you'll have to know what you're doing to   use it, especially with spell-checkers which otherwise complain   that it looks like noise.Python -- This is a Real English Word (honest, look it up!) that   happens to refer to a type of snake, which you'll notice is an   object.  With the two vowels, python is quite readable.

    Python Object Oriented Programming Seminar

    Subject: Re: Fall Python Workshop & OOPSLA?From: Joseph Strout <@ucsd.edu>Date: Fri, 28 Feb 1997 09:24:41 -0800On Tue, 25 Feb 1997, Jeffrey Kunce wrote:> At last Fall's workshop, there was talk of combining the 1997> Fall Python Workshop with OOPSLA in some way.>> Have there been any developments?I suggested holding a "Python Object Oriented ProgrammingSeminar", but the acronym was unpopular.

    PSA Budget

    Subject: Where is the PSA $$$ Going?From: Matthew Lewis Carroll Smith <@mem.net>X-Newsgroups: comp.lang.pythonDate: Fri, 04 Apr 1997 11:25:02 -0500Those of you who are PSA members may have seen this message fromGuido:> I don't think it would be wise to publish a detailed budget (and> it would be impossible as well).  However, I can tell you> roughly where the money goes -- there are no secrets.In an effort to take some of the burdens off of Guido's back, Ihave compiled a summary budget of the PSA for your edification.PSA 1996 Budget---------------Income:     'Guido for President' Campaign Contributions (1)...$ 1,093,276.54     Milk Money Extortion Program.......................$         3.12     PSA Memberships....................................$     2,934.07                                                         -------------                                          Total Income: $ 1,096,213.73Expenses:     Monty Python Licencing Fees (2)....................$   652,362.55     Pre-Release 2 Week Vacations (3)...................$    10,876.45     Post-Release 2 Week Vacations (3)..................$   369,841.59     Alien Abduction Insurance..........................$        15.01     Python Web Site Maintenance........................$    62,541.72     Great Comfort Cream................................$       554.65                                                         -------------                                        Total Expenses: $ 1,096,191.97                                   Total Profit (Loss): $(21.76)Notes:     (1) Many of you many not be aware of the fabulouslysuccessful 'Guido for President' Campaign. While Guido has nointerest in being the president, the PSA thought it would be acool way to collect money. The centerpiece of the campaignfeatured an attractive offer to spend the night in Guido's sparebedroom in exchange for a $50,000.00 contribution. (Mark Lutzstayed TWICE!)     (2) Since the proliferation of Monty Python related names(Python, Monty, Grail, Eric-the-Half-a-Compiler, et al.) hasincreased over the past year, the PSA felt it would be wise tolicencing the Python name to forestall any lawsuits. An addedbenefit is that John Cleese is teaching Guido how to walk funny.     (3) Pre-Release vacations are spent in theCatskills. Post-Release vacations are spent in the Bahamas. Guidois currently working on a system which will allow him to make morereleases of Python; thus octupling the number of vacations hetakes in a year.Well, folks, as you can see, Guido is taking money out of his ownpocket to make the PSA work! So stop whining!

    The Origin of the Great Timbot Conspiracy Theory

    Subject: RE: Python bytecodeDate: Wed, 30 Apr 97 04:29:43 UTFrom: Tim Peters <@msn.com>Cc: python-list@cwi.nl> [steve "lost highway" majewski inflames ...]> ...> What's changed in the last year has been my estimate of some> of the secondary gains due to what I think is the reasonable (but> arguable) belief that Java:> (1) will largely replace C++ [& C] as an application programming>     language.> (2) will provide a higher level of portability than is now common>     with C + standard posix libraries.*If* I were an AI program, I would both dispute and embrace bothsides of both claims until we all got so lost in the maze ofnested invocations that the poor chicken couldn't even *see* theother side of the road.  Short-circuiting all that, to #1 I say wecan hope; to #2, not if Microsoft can stop it <0.3 wink>.> I don't think I'm overestimating you, Aaron.It would be hard to overestimate Aaron!  I've tried, & haven'tsucceeded yet.> You're too opinionated to be NEVER wrong, but you've never> been absurdly wrong before, whichJeez, Steve, you just can't stop provoking tchrist, can you<wink>?> is why I assumed there must be a communication problem.Na, it's all e-mail artifacts.  Trust me.  If we were all in thesame bar, we would have punched each other out by now & reachedharmonic convergence despite that.  The older I get, the more Ihate everything ...> BTW: I know Guido is never wrong, but that's a matter of> theology -- like the way the Pope is never wrong.Even worse than that -- I think the Pope has to be sitting in amagic chair (or something) to be infallible.  Guido just *is*.> And I know I've been wrong, because Guido and Tim have told> me so.Wrong again, Steve:  we've never said that.  QED.> But has anyone ever seen Tim be wrong ?Nobody living, except Guido, and I wouldn't count on him living*much* longer if he catches me in another misteake.> ...You don't think that maybe during his absence from the list,> he cobbled up an AI simulation of himself in his basement on a> couple of KSR's he swiped when they stiffed him on his severance> pay ? Hmmm.  And, isn't there something mechanical and formulaic> about his patterned signoff lines -- I mean compared to us> normal humans who repeatedly use the same exact sigs in message> after message.  I think he/it's been dropping us a hint all> along with the "tim_one" address!!Ya, ya, ya, except ... if I were built out of KSR chips, I'd berunning at 25 or 50 MHz, and would be wrong about ALMOSTEVERYTHING almost ALL THE TIME just due to being a computer!Think about it -- when's the last time you spent 20 hours straightdebugging your son/wife/friend/neighbor/dog/ferret/snake?  Andthey *still* fell over anyway?  Except in a direction you've neverseen before each time you try it?  The easiest way to tell you'redealing with a computer is when the other side keeps making thesame moronic misteakes over and misteakes over and misteakes overand misteakes over and misteakes over and misteakes CTRL-C again.> Hey Tim: How many chickens does it take to cross the road?No number of Java chickens, because it isn't safe to cross theroad.but-it-only-takes-one-python-chicken-to-*build*-a-damn-road-ly y'rs  - tim

    The Other Origin of the Great Timbot Conspiracy Theory

    Subject: The Truth about TimFrom: Barry A. WarsawDate: 22 Mar 1998 23:28:48 -0500X-Oblique-Strategy: Everything leaks. (given by Ken Manheimer)>>>>> "TP" == Tim Peters <@email.msn.com> writes:    TP> I don't know, Barry -- is it time to let the cat out of    TP> the bag about how easy the C++ and Perl modes were?*PERL* mode?  Don't you know the reason I dropped Perl for Pythonin the first place?  Ah well, read on...Actually "Tim", it is finally time to come clean with the *real*truth behind "you".Folks, the net.personality you know as "Tim Peters" is really aport of the old Richard Stallman AI program written in Emacs Lisp,which ran on Emacs 17.45.  A few years ago, the FSF asked me toport this program to another free (oops, open source) language ofmy choice, because stallman.el wasn't compatible with the newfangled Emacs 18 that was being worked on, and nobody understoodhow the old code worked anyway.So I chose Python because of its cool name and the fact thatfont-lock actually worked for Python syntax, and I wrote a PythonC extension that allowed me to embed Emacs in Python, and toseamlessly call Elisp programs from Python.  This was actuallycleaner than JPython is now (sorry Jim), except for one littleproblem.  I was under the misguided idea that Python used bracedelimiters and I was hoping to just substitute parentheses forbraces.  My having to write the translator between lisp braces andmixed tabs and spaces indentation was why "Tim Peters" was off thenet for so long a few years back (okay, so it took me a looongtime to get through the Python tutorial!).Anyway I finished this work, wrote a small wrapper script calledtim.py and since the GNU machines never had passwords on theirlogins, I was able to set up a cron job that scanned mailing listsand newsgroups, and posted "responses" to interesting messages.Sadly, all the GNU machines got moved recently, they put passwordson their accounts, and I was only able to rescue the tim.pyscript, which I include below.I've asked the FSF for the source code to my system, called thePython-Emacs Extension for Enabling Workable Elisp (called PEEEWE) which included the stallman.py and witty.py modules, but allI got back was a MIME encoded email written in Japanese, for whichthe only words I could make out were "proprietary" and "waitingfor copyright assignment".  Sigh.Anyway, it appears that there's at least one friendly person atthe FSF, because every time the "Tim Peters" becomes quiet for alittle while, someone always seems to reboot it...There.  I feel so much better now.-Barry    TP> Ya, and if anoyone actually saw that msg, they'd also know    TP> why I make sure to cash your checks before the ink is dry!    TP> Cheapskate.P.S.  You better watch it "Tim", or I'll have you-know-who overthere hit C-c and remove the pickle of your state.  Don't push me,man... I'll DO IT!P.P.S.  So how many of you have ever actually met "Tim Peters"?  Iknow Guido claims to have, but I've seen no proof.  And I ran aDNA scan on that mustache hair that was mysteriously sent to mefrom someone claiming to be "Tim", and all the report said was"not of human origin".

    For What?

    Date: Fri, 21 Nov 97 22:40:35 cstFrom: Jeff RushTo: @python.orgSubject: [PSA MEMBERS] Erotic Programming in Python ???While perusing the Python sources I came across this tidbit;either a mispelling of 'esoteric' or some very interestingprogramming practices...  <grin> Guido?----- cut here -----/* API to access the initialized flag -- useful for eroteric use */intPy_IsInitialized(){        return initialized;}----- cut here -----

    Tasty Slices

    Subject: Re: pass copy of list to functionFrom: "Gordon McMillan" <@hypernet.com>To: Timo Schmitt <@mailhost.uni-koblenz.de>, python-list@cwi.nlDate: Thu, 12 Feb 1998 09:13:59 -0500Timo asked:> how do i pass a copy of a list of a function?Use the Paranoia emoticon.list = ['blah', 'blah']f(list[:])This passes the "here's my desert, where's everyone elses?" slice.

    Python Block Delimited Notation Parsing Explained

    Subject: Addition explanation of indentation for the tutorialFrom: Michael McLay <@nist.gov>Date: Mon, 9 Mar 1998 16:42:19 -0500Message-Id: <199803092142.QAA04377@fermi.eeel.nist.gov>To: python-list@cwi.nlFredrik Lundh writes: > In fact, Python already supports block delimiters: > >     if foo: #{ >         foo1(); >         foo2(); >         foo3(); >     #} > > Inspired by Larry Wall, Guido also made sure that the ending > delimiter could be written in various other ways, such as #end > if.  Anything to empower the newbies, you know.  But real > Python programmers tend to omit both semicolons and curly > braces, of course.This undocumented feature of the language should be explained inthe official distribution of documentation!!  How about adding thefollowing as an Appendix of the Python Tutorial.  Also add afootnote the explanation of indentation at the end of Chapter 3.                        Appendix XXX        Python Block Delimited Notation Parsing ExplainedPython incorporates a sophisticated parser and advanced notationfor recognizing block delimiters from almost any computerlanguage.  The foreign language notations of C, Ada Pascal, TCL,and Perl will work in most situations.  The Python parser onlyrequires two minor modifications to the block notation rules ofthe foreign language's grammar rules in order to be Pythoncompliant.The first change is the addition of a rule which states thatindentation of code is not simply a stylistic suggestion like itis in other languages.  It is mandatory in Python.  The use ofindentation is considered good coding practice in all theselanguages and Python takes this a step further by making itrequired by the language grammar.  In Python the meaning of a codeblock which is not properly indent is not defined.  ExperiencedPython programmers find this rule to be very helpful in makingeveryone's code more readable.  An added benefit is that languagesensitive editors, such as Xemacs, can assist in writing codesince they are able to automate the indentation of code blocks.The second change to to the grammar rules of foreign languages isthat all symbols used to indicate the beginning or end of a blockmust be prefixed with the '#' character.  If you are a formerPascal or Ada programmer this will change your usual notation to:        if x: #BEGIN                x = x + 1        #ENDIf you are more familiar with C and C++ then you will becomfortable with either:        if x: #{                x = x + 1        #}or:        if x:                x = x + 1or even:        if x: x = x + 1C programmers will be happy to hear that the Python parser will dothe right thing even if curly braces are not included when twotrailing statements are present:        if x:                x = x + 1                y = 3 + xThis last feature will fix a common source of bugs in C, C++, andJava programs.Python's parser is also sophisticated enough to recognize mixednotations, and it will even catch missing beginning or enddelimiters and correct the program for the user.  This allows thefollowing to be recognized as legal Python:        if x: #BEGIN                x = x + 1        #}or even:        if x: #{                x = x + 1Now as you can see from this series of examples, Python hasadvanced the state of the art of parser technology and coderecognition capabilities well beyond that of the legacy languages.It has done this in a manner which carefully balances good codingstyle with the need for older programmers to feel comfortable withlook of the language syntax.  </pre>

    Bad Habits

    Subject: Re: Why We Chose Perl (and What You Can Do About It)From: @mchip00.med.nyu.edu (Roy Smith)Date: Mon, 23 Mar 1998 16:11:21 -0500X-Copyright: Copyright 1997 Roy SmithPaul F Dubois <@home.com> wrote:> Stereotyping Fortran programmers as somehow less likely than anyone> else to learn something new is unlikely to produce any insight.C  YES I AGREE.  I STARTED OUT PROGRAMMING IN FORTRAN ON A TOPS-10 S  000100C  YSTEM AND OTHER SIMILAR MACHINES.  ALTHOUGH, I MUST ADMIT, I STIL  000200C  L HAVE SOME BAD HABITS I PICKED UP FROM THOSE OLD DAYS, BY AND LA  000300C  RGE I BELIEVE I HAVE OVERCOME MOST OF THE WORST ONES.              000400

    Nolo Contendre

    Subject: Re: Does Python meet the definitions of an OO Programming         Language?From: Tim Peters <@email.msn.com>Date: Sun, 29 Mar 1998 18:19:54 -0500[jeff <nospam@myhost.com>]> Is it not true that a programming language must> enforce "data hiding" or encapsulation to be> considered a true Object Oriented programming> language?Absolutely! Guido (van Rossum, Python's creator) probably doesn'teven know how to spell those phrases, though.> (It is true incase you thought not).Who could deny it?> So how does Python implement encapsulation? From> what I have seen it does not, and therefore may contain> many OO concepts, but cannot be considered a> true OO programming language.Indeed, and because it doesn't support closures, it's not a truefunctional programming language either. And because you have toimport all sorts of modules to do the simplest things (e.g.,regular expressions), neither is it a true scriptinglanguage. Indeed, because it doesn't support labeled break orcontinue statements, it's not even a true structured programminglanguage.> Tell me I'm wrong.No way! You should forget Python and move on to something else. Infact, it would be a waste of your time even to reply to any of thesilly flames you'll probably get back in response to your message-- these people are, like, hypnotized or something.takes-one-to-know-one-ly y'rs - tim

    Fractional Winkery

    Washington DC: April 1, 1998.

    Senators Exon and Danforth today called a press conference toannounce new efforts to make the internet safe for children.

    "Bleeding heart, do-good, L-word lawyers and judges have twisted thefounding father's obvious intentions and used First Amendment as aprotection for subversives, satanists and pederasts", said theirrelease. "But today we have uncovered a threat so insidious, somorally debilitating, so counter to any notion of the public good,that it is unimaginable that even the most depraved, card-carryingACLU member will fail to see the need for immediate action."

    The Senators refused to describe the practice in detail, butreliable sources referred to it as "fractional winkery". Medicalresearch into the affects of the practice had to be halted when aimpromptu VIP tour of the facilities came upon the researchers, starknaked, in their lab. "They had 16 rolls of duct tape, 2 bags ofclothes pins, 130 hampsters from the cancer labs down the hall, andat least 500 pounds of grape jello and unknown amounts of choppedliver" said the source on a recent Geraldo interview. The researcherswere summarily dismissed. "What's truly disturbing is that theyapparently showed absolutely no sign of remorse" commented Geraldo."These were ordinary, hard working people... They could have beenyour children... All they could do was laugh."

    In a possibly related anouncment, the Massachusetts Home for theBewildered (soon to become the Massachusetts Institute of TabSciences) reports the recent discovery of an escape that took placesome time ago. The escapee is thought to be a practioner of"fractional winkery" according to second hand reports, (first handreports being unreliable, because most of the original staff are nowinmates). The escape was discovered during an outside audit of MHB'scomputer systems. "I became suspicious of some code in the inmaterelease modules", said the auditor. "It suddenly occurred to me thatI was looking at code that was much better than anything MHB'sinternal staff could write. It was really very, very, very, very,very, very clever. If he weren't such a wacko, I'd hire him myself."

    Happy NTPAD!

    —Gordon McMillan, Wed, 1 Apr 1998

    Eloquent Appliances

    Subject: Warning - contentless!From: "Gordon McMillan" <@hypernet.com>To: python-list@cwi.nlDate: Thu, 2 Apr 1998 11:22:29 -0500I see news from JavaOne about the API's for embedded Java andspeach recognition.Then I see this from CNN(http://www.cnn.com/US/9804/01/waiting.for.god.ap/):---------------------------------------"Teacher Chen," leader of God's Salvation Church, did not admitfailure. ... Speaking through an interpreter, he had a fewwarnings for those who would listen: ... - Other items likecomputers, toasters, and refrigerators may begin moving aroundrooms and talking.---------------------------------------I'm very disturbed that Python will miss out on all the fun.<refrigerator> [to dishwasher] "...so I'm inclined to believe thatcapping the capital gains tax at 13% would enable sustainablegrowth in the GNP of over 4%."<dishwasher> "Hmmm, not that I disagree in principle, but..."<toaster> "Ewww, couple a bleedin' wanna-bees. If somebody woulddefrost you, you wouldn't have any friggin long-term investments!"<refrigerator> "Well, I... Humph. Look, with a sustained GNPgrowth of 4%, even those without significant investments stand tobenefit."<toaster> "Yeah, right, you bloated freon-gas-bag. Like Labor gotsomething from the Reagan feeding frenzy..."<dishwasher> "Now look here! That's an entirely differentissue. Labor has simply not kept up with the productivityincreases necessary..."<toaster> "Oh piss off, you washed out whizzer! You need yourgaskets changed!"<microwave> "SSSHHH, here she comes!"<all - in sing-song> "Good morning Mrs. Gumby!"Now doesn't Python seem more appropriate than Java for this?

    The Power of Generalization

    Subject: list.popFrom: "Tim Peters"To: <python-list@cwi.nl>Date: Sat, 25 Jul 1998 17:16:12 -0400[tim gets behind terry reedy's list.pop idea, and suggests list.pop(index=-1) so that list.pop() complements list.append(x) and list.pop(i) list.insert(i, x)]> OTOH, anyone can kill the idea instantly just by proposing a> generalization to list.pop(lo:hi) <0.5 wink>.[David Ascher]> [suggests] list.pop(lo:hi:stride).> And I propose an extension to the indexing notation in general> -- if a callable is sent in as either lo, hi or stride, that> callable is called with either (lo,hi,stride), (hi,lo,stride) or> (stride,lo,hi) depending on which position in the index is> currently in use.  It's up to the callee to figure out which it> is.>> The real question is how metaclasses can help here...[Andrew Kuchling]> Why make things so complicated?  Just define a markup language> for specifying which items to remove.  Then you'd only need a> single list.modify() method which would accept a string> containing a document such as:>> <poplist>>   <remove>>     <element index="1">>   </remove>>   <remove>>     <slice start="-4" end="-1">>   </remove>>   <insert start=5>>     <listref xml:link="pylist" href="python:__main__.myList">>   </insert>> </poplist>> ...> This is much better than having a complicated function which> takes a varying number of arguments.  Remember, one of Python's> guiding principles is simplicity!damn-but-it's-great-to-be-proved-right<wink!>-ly y'rs  - tim

    Fanatically Pragmatic

    Date: Wed, 29 Jul 1998 23:05:03 -0400From: Tim Peters <@email.msn.com>Cc: python-list@cwi.nlSubject: RE: Embedded code in regexes[Marc-Andre Lemburg]> Would be an unfair approach, but also shows how pragmatism can> sometimes beat purism ;-)[Mark Hammond]> Id go farther - "always" is the word I would use :-)>> As Tim and I have discussed privately before - this is probably> why Python is as popular as it is - Guido does tend to have a> more pragmatic bent than other language designers.  Sometimes I> think it could be more so, but I do appreciate it being as it> is!>> Never let a pure design get in the way of actually using it :-)[Steven D. Majewski]> I'd disagree: some of the problems with Perl and Tcl are that> they are entirely *too* pragmatic and ad hoc designs. I'ld say> Guido has done a good job of walking the line -- he has had a> moderate concern with elegance and consistency, and as a result,> the design has held up well.Sorry, but I need to disagree with everyone.  Not that I have anopposing view formed, this is just a matter of principle with me.I'll let you know what my view is once I figure it out -- it seemsunusually hard to disagree with everyone here without appearinginconsistent!  Tempted to point out that Perl and Tcl are bothmore widely used than Python, but I don't want to get involvedwith facts lest they turn on me later <wink>.upholding-the-std-for-pragmatic-posting-ly y'rs  - tim

    Forseen Consequences

    Subject: Re: IOError(errno, strerror)Date: Sat, 01 Aug 1998 23:36:17 -0400From: Guido van Rossum <@cnri.reston.va.us>Cc: python-list@cwi.nl[Gordon McMillan]> Very cool! Now before your time machine cools down, go back 2> weeks and have him fix select.err (9, bad fileno in select) to> tell me which one!You know very well I can't do that.  To fix that one, I'd have totravel all the way back to the early eighties and convince the BSDdesign team to improve the diagnostics abilities of the Unixkernel in general, and of select(2) in particular.  And while Icould certainly do that, I'm worried of the consequences -- theBSD vs. System V split might never have happened, Unix would haveruled the world, we'd all be programming in awk++, and Bill Gateswould be an obscure patent lawyer that no-one had heard of.Oops-- those would actually all be good things, except for awk++;Python would never have happened and I wouldn't be here to answeryour question before you've asked it.  (The answer is no, ofcourse.  You'll think of the question in a few days.)

    Judicious Application of Scant Fudiciary Resources

    Date: Wed, 26 Aug 1998 02:13:49 -0400From: Tim Peters <@email.msn.com>To: python-list@cwi.nlSubject: RE: Idea - alternative to lambda[tim]> Think this might actually happen <wink>?[Guido]> Perhaps...Ah!  Newcomers should be told that this is Guido's subtle way ofsaying he's in doubt about scraping together September rent money.Enough said.emailing-cash-and-lots-of-it-ly y'rs  - tim

    Neutral testimony...

    Subject: Re: Just Say No to //From: Johann Hibschman <@physics.berkeley.edu>Date: 06 Sep 1998 22:15:39 -0700To: python-list@cwi.nl"M.-A. Lemburg" <@lemburg.com> writes:> I think 1//2 and 1 + 1//2 are good compromises. While keeping a> close eye on novice's thoughts about natural ways of expressing> themselves to computers is a Good Thing, there's really no point> in throwing tradtions over board that easily. Just put them on> the Todo list for Flying 1.0 or Circus 0.1 [Then I'll contract> your daugther to convert my scripts to the new style ;-)].Just for a data point on the non-programmer's perspective, I wentout and asked a friend of mine, a graduate student in medievalenglish literature, what she though of this whole debate.  Theconversation went something like this:Me : So, say you take two integers, ok?Her: Okay.Me : So, you can add them, subtract them, and multiply them in a     program, right?Her: Um.  Sure.Me : Now let's say that you divide them--Her: But that makes no sense!  Integers form a ring, not a field.     You did say you were taking these numbers from Z, right?Me : Uh, yeah.So there you have it.  The non-programmer viewpoint.  (With whichI conveniently agree.)  "Integer division" is hokey and shouldn'tbe spelled "/", even if C wants to.  ;-)I hope that helps.  <1e10 winks>

    Guido Speedo

    Subject: Re: Guess who's on the cover of the Linux JournalDate: Thu, 17 Sep 1998 16:59:38 -0400 (EDT)From: Dave Mitchell <@magnet.com>  Maybe for the conference we should include an official SPAM 7speedo swimsuit this year? And take a big group picture of allof us sporting 'em!                                                        -daveOn Thu, 17 Sep 1998, Barry A. Warsaw wrote:> >>>>> "DA" == David Ascher <da@skivs.ski.org> writes:>>     DA> I think for maximum visibility, Guido should be in the>     DA> swimsuit issue instead.>> I was *not* going to be the one to suggest that!  :-)

    ... and ...

    Subject: Re: Guess who's on the cover of the Linux JournalDate: Fri, 18 Sep 1998 16:01:26 GMTFrom: "Michael T. Richter" <@igs.net>Newsgroups: comp.lang.python[Dave Mitchell]>>   Maybe for the conference we should include an official SPAM 7>> speedo swimsuit this year? And take a big group picture of all>> of us sporting 'em![Bill Anderson]> the "Guido Speedo" ?> ...has a certain alliterative quality...<0.7 wink>It's more assonance than alliteration.

    ... and THEN someone had the AUDACITY to say ...

    Subject: Re: Guess who's on the cover of the Linux JournalDate: 18 Sep 1998 16:20:08 -0400From: "Barry A. Warsaw" <@cnri.reston.va.us>Newsgroups: comp.lang.pythonX-Oblique-Strategy: Remove the elements, keep the structure>>>>> "MTR" == Michael T Richter <@igs.net> writes:    >> the "Guido Speedo" ?    MTR> It's more assonance than alliteration.emphasis on the a... <bzzt>

    Python vs. Perl according to Yoda

    Subject: Python versus Perl: A humorous lookFrom: larry (funkster@midwinter.com)Date: 10 Jul 1999 01:45:07 -0700This has been percolating in the back of my mind for a while.It's a scene from _The Empire Strikes Back_ reinterpreted to servea valuable moral lesson for aspiring programmers.--EXTERIOR: DAGOBAH -- DAY           With Yoda strapped to his back, Luke climbs up one of        the many thick vines that grow in the swamp until he        reaches the Dagobah statistics lab. Panting heavily, he        continues his exercises -- grepping, installing new        packages, logging in as root, and writing replacements for        two-year-old shell scripts in Python.YODA: Code!  Yes.  A programmer's strength flows from code      maintainability.  But beware of Perl.  Terse syntax... more      than one way to do it...  default variables.  The dark side      of code maintainability are they.  Easily they flow, quick      to join you when code you write.  If once you start down the      dark path, forever will it dominate your destiny, consume      you it will.LUKE: Is Perl better than Python?YODA: No... no... no.  Quicker, easier, more seductive.LUKE: But how will I know why Python is better than Perl?YODA: You will know.  When your code you try to read six months      from now.