Tim Peters has died

(discuss.python.org)

672 points | by ayhanfuat 15 hours ago ago

65 comments

  • w-m 13 hours ago ago

      $ python -c "import this"
      The Zen of Python, by Tim Peters
    
      Beautiful is better than ugly.
      Explicit is better than implicit.
      Simple is better than complex.
      Complex is better than complicated.
      Flat is better than nested.
      Sparse is better than dense.
      Readability counts.
      Special cases aren't special enough to break the rules.
      Although practicality beats purity.
      Errors should never pass silently.
      Unless explicitly silenced.
      In the face of ambiguity, refuse the temptation to guess.
      There should be one-- and preferably only one --obvious way to do it.
      Although that way may not be obvious at first unless you're Dutch.
      Now is better than never.
      Although never is often better than *right* now.
      If the implementation is hard to explain, it's a bad idea.
      If the implementation is easy to explain, it may be a good idea.
      Namespaces are one honking great idea -- let's do more of those!
    • Waterluvian 4 hours ago ago

      I discovered this early on in my programming journey and it helped set my philosophical trajectory. Over the years I’ve slowly grokked these items. But it was valuable to have a North Star even before I realized why they were important.

    • davidja 9 minutes ago ago

      This is a lot of wisdom, which you can tell comes from years of experience. I would like all llms of the world to have this as their base prompt.

    • js2 an hour ago ago

      More succinctly, you can run this as a module:

        $ python -m this  # -mthis works too
    • Buttons840 2 hours ago ago

      Which is stored in `this.s` as the following string:

      Gur Mra bs Clguba, ol Gvz Crgref

      Ornhgvshy vf orggre guna htyl. Rkcyvpvg vf orggre guna vzcyvpvg. Fvzcyr vf orggre guna pbzcyrk. Pbzcyrk vf orggre guna pbzcyvpngrq. Syng vf orggre guna arfgrq. Fcnefr vf orggre guna qrafr. Ernqnovyvgl pbhagf. Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf. Nygubhtu cenpgvpnyvgl orngf chevgl. Reebef fubhyq arire cnff fvyragyl. Hayrff rkcyvpvgyl fvyraprq. Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff. Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg. Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu. Abj vf orggre guna arire. Nygubhtu arire vf bsgra orggre guna evtug abj. Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn. Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn. Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!

    • shiandow 3 hours ago ago

      The PEP explicitly says there are 20 of which only 19 are written down and I can't figure out if that is a joke, a deliberate statement, or both.

    • bitter_michael 3 hours ago ago

      Interestingly, today this text reads not only as good advice for coders but also as good instructions for agents. Perhaps time to revisit those and make sure the spirit of these adages is captured there

    • coffeemug an hour ago ago

      The only thing I never liked about this is complex is better than complicated. Every once in a while there is a post with an “insight” on how they’re different, but it’s the same word! Naming things is hard, but I wish Tim found another word for one of these.

    • gavmor 4 hours ago ago

      I have cited this poem countless times over the years--sometimes ironically. I'm sad.

    • glerk 3 hours ago ago

      Hard to disagree with any of this. RIP.

    • flykespice 3 hours ago ago

      > There should be one-- and preferably only one --obvious way to do it.

      Oh boy, that didn't age well for Python language did it? It matches with C++ in growing complexity of syntax features. With a couple dozen ways to write the very same algorithm.

      • buster 2 hours ago ago

        To be honest I found this sentence to be beautiful and true for many years after working a lot with php and perl. The mort important word in this sentence is obvious. There are many many many ways to do the same thing but working with python I found that mostly to be true, there is always an obvious, documented way (and not two of three!). Searching for a way to do something in perl, for example, was such a huge difference.

      • bigstrat2003 2 hours ago ago

        Python has never followed the Zen. The irritating way the language lets you use non-booleans in a boolean context flies right in the face of "explicit is better than implicit".

        • loeg 2 hours ago ago

          And typing wasn't explicit for a long time. Now it is kind of best practice, but you can still produce Python without typecheck metadata.

        • michaeldh 2 hours ago ago

          Practicality beats purity!

          • logophobia an hour ago ago

            Except it mostly just leads to suprising bugs and time wasting, in exchange for saving a small amount of typing

    • svilen_dobrev 4 hours ago ago

      Thank you, Tim Peters.

      .

  • leoc 5 hours ago ago

    Among his various other works, it was Tim Peters along with Gary Robinson who turned pg's "A Plan for Spam" essay into the successful SpamBayes program: https://www.linuxjournal.com/article/6467 .

    (EDIT: Robert Woodhead apparently shares in the credit, too: https://www.ceas.cc/papers-2004/136.pdf https://ceas.cc/papers-2004.html . Apparently Rob Hooft was another implementor? I can't find a good source for that though.)

    • garyrob an hour ago ago

      Hi I'm the aforementioned Gary Robinson. Very sad to hear of Tim's passing. A really nice guy. And he wrote the following code for the SpamBayes project: https://www.linuxjournal.com/files/linuxjournal.com/linuxjou...

      The reason that's especially interesting is that I was using an AI to write something that needed that functionality, and it spewed out that same Python code, which I recognized immediately. It was slightly modified with respect to naming and comments because, I assume, it was stored slightly imperfectly in the model's weights.

    • curiousObject 3 hours ago ago

      This concept of making the best use of any available data to infer useful probabilities seems like a crude form of some ideas behind current LLMs, BUT they (Peters, Graham, Robinson and Woodhead) were doing this work 20 years earlier.

  • lumpa 10 hours ago ago

    Once upon a time I used to read all python-dev posts and bugs.python.org issues, so I got to follow (and get a feeling of knowing) these people I admired working and discussing together. Tim was always a favorite.

    Another thing that made me feel close to him was his work on the Python Cookbook 2nd Edition, in which he (and other big names in the community) delightfully talks the reader through intricacies and insights of programming, "We read Knuth so you don't have to".

    Watching Tim do his thing was a pleasure. He'd go from long, deep technical dives (that he'd make as approachable as possible) into comic relief and human connection in the fractional wink of an eye.

    The brief interactions we had will always be cherished as high points in my Pythonista trajectory.

    One favorite of mine was this response: https://www.python.org/doc/humor/#id15. I also like https://www.python.org/doc/humor/#id19 very much.

    • pdonis 4 hours ago ago

      One of my favorite Tim Peters comp.lang.python posts has always been this one in the discussion of doctest:

      https://groups.google.com/g/comp.lang.python/c/DfzH5Nrt05E/m...

      • apetresc 4 hours ago ago

        > Ack, on my keyboard I rebound the Tab key to something less annoying: it deletes a random DLL from c:\Windows\SYSTEM\. OK, OK, version 0.0.2 caters to stinking tabs. Patch follows.

        • pdonis 22 minutes ago ago

          Don't forget how he signed that post:

          > if-tabs-were-called-hemorrhoids-as-god-intended-people-would-see-them-for-the-bloody-mess-they-are-ly y'rs - tim

  • ofek 3 hours ago ago

    Tim was one of the people who contributed to my love of the Python language eventually expanding to its entire community.

    He was always so willing to foster discussion that nearly every interaction resulted in an improved understanding of some topic and a shared eagerness to try or learn more out something tangential that came up via digression. I never knew how many types of voting systems there were nor how extensively they are researched! He also reached out about a comment [0] I made a few years ago which made me feel less discouraged and more welcome.

    Tim's writing style was greatly appreciated by myself and many others. What he had to say was often lengthy, to address reader assumptions or some nuance, but was written with such a jovial tone that it was rarely dull or inaccessible.

    RIP Tim

    [0]: https://discuss.python.org/t/5778/24

  • linsomniac 4 hours ago ago

    My last exchange with Tim was him saying that he wasn't feeling up to having visitors.

    You never know when an email is going to be the Last Email. Don't put off reconnecting with old friends.

  • linsomniac 8 hours ago ago

    Gene Hackman's character in Heist says "I tried to imagine a a fella smarter than myself. Then I tried to think 'What would he do?'"

    For me, Tim Peters was that guy. I first met Tim in person at the first PyCon at GWU where I rode an elevator with him and Barry Warsaw. Let me tell you, it was a wild ride. He was a genuinely really nice, smart, kind guy.

    RIP my friend.

  • dalke 12 hours ago ago

    In the 1990s I was a novice developer, though I considered myself a hotshot because I was better than those around me in college and grad school.

    I was an active participant in the comp.lang.python Usenet channel in the late 1990s.

    I learned much from reading Tim Peters' posts. To many, including me, he was affectionately referred to as "Uncle Timmy."

    One of the things I learned was that I still had much to learn about the art of programming.

    Much of the little I know about numerical methods comes from reading his posts. It was fun to read his stories about Kendall Square Research and the (for me) old days of computing.

    I remember posting questions about things I didn't understand, which he figured out and explained. [1]

    I remember bringing up concepts I thought were specialized and esoteric, only to find that it was actually just my lack of experience. He gently corrected misapprehensions like mine. [2]

    He wrote a lot on comp.lang.python. If I recall correctly, at the 7th International Python Conference in Houston, November 1998, there was Festschrift in his honor. He would use <wink> in his messages, and often end with something like "let's-hear-it-for-lambda-in-curly-assignment-stmts-ly y'rs - tim" (that's from the posting where he outlines the Zen of Python). I wondered if they were collected by looking for messages containing an '-ly' only to have Andrew Kuchling remind me about the "From" header. <wink>

    Here is Guido van Rossum starting the thread on "In Memoriam: Tim Peters", at https://discuss.python.org/t/in-memoriam-tim-peters-1952-202... .

    Here's an interview of him at PyCon 2006, https://www.youtube.com/watch?v=1wAOy88WxmY

    [1] In one case, I was parsing a file format where a field was usually three spaces, but was sometimes an integer. I couldn't figure out why one parser was so much faster than the other. The answer was that one tested for three spaces first, and if that failed tested for the int, while the other did the int test first.

    Yes, this is something a senior developer knows. I bring it up now to highlight how hotshot-me didn't have that experience, learned that experience, and learned it from someone who was kind about sharing his knowledge.

    [2] I was doing bioinformatics back then, and learned about dynamic programming as way to do sequence alignment. I didn't think others knew about the technique, and thought I was bringing esoteric new information to the discussion. Uncle Timmy had used dynamic programming techniques for speech-to-text software at Dragon Systems, and politely pointed out it was more widely known. He also implemented Python's 'difflib'.

  • lukasgelbmann 2 hours ago ago

    Among other places, Tim also wrote a lot on StackOverflow. He’d answer all kinds of questions, both from novices and experts.[0][1]

    I like reading his answers. He always seemed to have something interesting to say, and his answers are kind, light-hearted, approachable and insightful.

    [0] https://stackoverflow.com/a/69859068

    [1] https://stackoverflow.com/a/19391867

  • rdtsc 3 hours ago ago

    Tim's Blog https://tim-one.github.io/psf/

    "Question everything. Love everyone" (from his page)

    RIP "Uncle Timmy".

  • grep_it 4 hours ago ago

    Tim's description of dicts always stuck with me by describing the hash table slot states as one of citizen, virgin, or turd[1]. <wink>

    1: https://mail.python.org/pipermail/python-list/2000-March/048...

  • asalahli 3 hours ago ago

    Yesterday, out of nowhere I remembered Zen of Python and looked it up to refresh my memory. Prior to that I hadn't known who the author was, so when I saw Tim Peter's name I had a moment of realization that it's the same person who invented Timsort and the same person who was banned from python forums a few years ago for opposing arguing agains bylaw changes.

    It feels surreal to learn about his death just the next day. RIP

  • Copenjin 15 hours ago ago

    The Tim of Tim Sort, for those that want to identify him quickly.

    • antod an hour ago ago

      That was one of the things Oracle sued Google over in that big Android/Java suit right?

    • yowlingcat 4 hours ago ago

      Before I clicked into the link I mentally thought "Wait I hope it's not the guy who invented Tim Sort". Very sad. Trying to retain hope that newer generations of Python folks will keep the zen of Python alive but especially in an agentic era, to some degree that hope does feel less and less realistic by the day.

    • TZubiri an hour ago ago

      It's the Tim of the Zen of Python for me

  • __mharrison__ 5 hours ago ago

    Thanks, Tim. Your contributions have helped me feed me family over the years. RIP

    (I've taught the Zen of Python, doctests, timsort, and more during my career.)

  • leoc 11 hours ago ago

    https://news.ycombinator.com/item?id=50450488 links to GvR's announcment on discuss.python.org .

  • themanmaran 4 hours ago ago

    I have the Zen of python printed out on our office wall and everyone quotes it at least weekly. It started as a bit of a joke, but become a pretty big part of our culture. It's a great set of rules.

  • kgcgfva 3 hours ago ago

    I learned how to be a person on the internet in large part by watching Tim back in the day. RIP.

  • kapilvt 19 hours ago ago

    Tim (of Timsort) was a long time python contributor (aka 90s), and a foundation of its early community (>>> import this). Rip.

  • dyoo1979 2 hours ago ago

    The world is a bit dimmer for your absence. We miss you.

  • bajard 3 hours ago ago

    As a programmer who used Python, I'm in debt to him.

  • bonoboTP 4 hours ago ago

    Nice obituary, would have been cool if Guido had stood up for him when he was witch hunted by Python leadership...

    • polotics 3 hours ago ago

      https://chrismcdonough.substack.com/p/the-shameful-defenestr...

      And after that three months suspension BS drama Tim just got back to work on Python. Saintly.

      btw. made me stop having a favourite programming language.

      • Postosuchus 27 minutes ago ago

        I came to quote this very article. This raised my eyebrows a lot when I originally read it. I always thought that DEVELOPING A DAMN PROGRAMMING LANGUAGE is inherently apolitical and strongly meritocratic endeavor. Boy, how naive I was...

  • patrec 15 minutes ago ago

    Ah, yes who more fitting to give a eulogy than Guido, who so bravely spoke up when the woke crazies tried to defenestrate (the unfailingly polite, kind and patient) Tim not even 2 years before his death.

  • loeg 2 hours ago ago

    I learned about Timsort and used it in a class as a student long ago. RIP.

  • allendoerfer 3 hours ago ago

    I quoted im earlier today in a commit message at work. Not knowing him at all, this news is a bit of a shock.

  • iqbal1980 2 hours ago ago

    May he rest in peace, I just learned about Timsort!

  • throwaway81523 15 hours ago ago

    RIP. I didn't know him IRL, but I remember him fondly from the Python Usenet group and Python bug tracker discussions.

  • toomuchtodo 4 hours ago ago
  • QuantumAtom 3 hours ago ago

    May his memory be a blessing

  • fghorow 4 hours ago ago

    Very, very sad news. RIP Tim Peters.

  • throw-the-towel 4 hours ago ago

    Black bar, anyone?

    • SoftTalker 3 hours ago ago

      Sounds like he was living quietly out of the spotlight, or his family kept news of his death private. He died back in July.

    • fghorow 3 hours ago ago

      Agreed. As it was for Fredrik Lundh (aka "the effbot") a few years ago.

  • jujube3 4 hours ago ago

    RIP.

  • fxm73 an hour ago ago

    As a greybeard (literally) of the industry, I've reached the age where the people who shaped my younger years, and much of the computing world around me, are slowly being piped to /dev/random.

    It's sad to hear, but reflecting on the impact Tim made brings some comfort. Most of us will never know how many people our work helped. Tim could at least see some of that, though even Python's reach can only tell part of the story.

    Reading the tributes (https://discuss.python.org/t/in-memoriam-tim-peters-1952-202...), what strikes me is how often people mention his patience and humour alongside his technical brilliance. There's something to aspire to there: doing good work, and taking the time to help others do theirs.

    The older I get, the more I appreciate what it takes to leave both kinds of legacy.

    Quiet lines of code Still guide the hands of strangers His kindness lives on

    Rest well, Tim.

  • dalke 11 hours ago ago

    I posted my thoughts in a parallel thread, at https://news.ycombinator.com/item?id=50451689 .

    I focus on how I learned to be a better software developer from him, in both writing better code and supporting others.

    • dang 5 hours ago ago

      (We've since merged that thread hither.)

  • leoc 11 hours ago ago

    A black bar is appropriate for this news.