$ 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!
show comments
leoc
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 .
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.
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>
[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'.
ofek
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.
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.
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.
linsomniac
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.
show comments
bonoboTP
Nice obituary, would have been cool if Guido had stood up for him when he was witch hunted by Python leadership...
show comments
philipallstar
This is a good time to remind everyone of the shabby way the PSF treated Tim Peters, a bunch of lesser minds and nasty people gossip-attacking a great mind and a lovely chap[0].
"[Tim] took up Python on a lark in its very early days, becoming something like Python’s second real user after Guido.
Guido came to rely on Tim heavily. Tim will demur about this, but as far as I can tell, Tim and Guido were largely partners in the design evolution of very early Python, and before most important features made it in to Python, you could be sure that they had been examined from every angle, shaken, stirred, and thunk about very hard by both of them.
Tim often played the role of gatekeeper and polisher. You have Tim to thank at least partially if you were a refugee from Java or Microsoft languages, which made excuses for their sprawling verbosity, complexity, and poor readability. Python, at the time, made none of those and had none of that (it now does). Tim was crucial in ensuring it stayed that way during his most active years.
[...]
Tim was a Director of the Python Software Foundation from 2001 to 2014, bringing Python across an uncanny valley from a time where it was “interesting but ignorable” to “the planet’s default language” along with a cast of other incredible people. If you use Python, it’s not in small part due to Tim."
asalahli
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
"Question everything. Love everyone" (from his page)
RIP "Uncle Timmy".
neya
For anyone with more context, could you please help me understand why this wasn't announced earlier? Seems like such a great loss to the community. But, waiting until November to announce the death of a pioneer in July doesn't seem to sit right. Unless there's any historical or cultural context (in which case, I apologize in advance).
show comments
grep_it
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>
The Tim of Tim Sort, for those that want to identify him quickly.
show comments
__mharrison__
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.)
benji-york
I was honored to work with Tim for a couple of years. He was one of the smartest and funniest people I've ever known. He will be missed.
kgcgfva
I learned how to be a person on the internet in large part by watching Tim back in the day. RIP.
kapilvt
Tim (of Timsort) was a long time python contributor (aka 90s), and a foundation of its early community (>>> import this). Rip.
themanmaran
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.
benjiwdubs
Ugh. As a teen in the aughts interested in computers two things stuck with me. Sitting in his lap and "helping" my dad do SQL modules as he job hunted after the dot com crash, and "discovering" the Zen of Python and Python many years later.
Never really ended up using Python outside one-off scripts and personal stuff but learning the magick of making silicon do work for you and principles for that really stuck with me as I went to high school and beyond.
RIP :'(
dyoo1979
The world is a bit dimmer for your absence. We miss you.
As a programmer who used Python, I'm in debt to him.
patrec
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.
qwertytyyuu
Tim? The Tim (Timsort) Peters?
loeg
I learned about Timsort and used it in a class as a student long ago. RIP.
May he rest in peace, I just learned about Timsort!
fghorow
Very, very sad news. RIP Tim Peters.
vjay15
o7
jujube3
RIP.
fxm73
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
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.)
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.
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'.
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
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
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.
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.
Nice obituary, would have been cool if Guido had stood up for him when he was witch hunted by Python leadership...
This is a good time to remind everyone of the shabby way the PSF treated Tim Peters, a bunch of lesser minds and nasty people gossip-attacking a great mind and a lovely chap[0].
[0] https://lwn.net/Articles/1002340
mcdonc wrote:
"[Tim] took up Python on a lark in its very early days, becoming something like Python’s second real user after Guido.
Guido came to rely on Tim heavily. Tim will demur about this, but as far as I can tell, Tim and Guido were largely partners in the design evolution of very early Python, and before most important features made it in to Python, you could be sure that they had been examined from every angle, shaken, stirred, and thunk about very hard by both of them.
Tim often played the role of gatekeeper and polisher. You have Tim to thank at least partially if you were a refugee from Java or Microsoft languages, which made excuses for their sprawling verbosity, complexity, and poor readability. Python, at the time, made none of those and had none of that (it now does). Tim was crucial in ensuring it stayed that way during his most active years.
[...]
Tim was a Director of the Python Software Foundation from 2001 to 2014, bringing Python across an uncanny valley from a time where it was “interesting but ignorable” to “the planet’s default language” along with a cast of other incredible people. If you use Python, it’s not in small part due to Tim."
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
Tim's Blog https://tim-one.github.io/psf/
"Question everything. Love everyone" (from his page)
RIP "Uncle Timmy".
For anyone with more context, could you please help me understand why this wasn't announced earlier? Seems like such a great loss to the community. But, waiting until November to announce the death of a pioneer in July doesn't seem to sit right. Unless there's any historical or cultural context (in which case, I apologize in advance).
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...
The Tim of Tim Sort, for those that want to identify him quickly.
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.)
I was honored to work with Tim for a couple of years. He was one of the smartest and funniest people I've ever known. He will be missed.
I learned how to be a person on the internet in large part by watching Tim back in the day. RIP.
Tim (of Timsort) was a long time python contributor (aka 90s), and a foundation of its early community (>>> import this). Rip.
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.
Ugh. As a teen in the aughts interested in computers two things stuck with me. Sitting in his lap and "helping" my dad do SQL modules as he job hunted after the dot com crash, and "discovering" the Zen of Python and Python many years later.
Never really ended up using Python outside one-off scripts and personal stuff but learning the magick of making silicon do work for you and principles for that really stuck with me as I went to high school and beyond.
RIP :'(
The world is a bit dimmer for your absence. We miss you.
He once answered my noob stackoverflow question. I had a fanboy moment after reading the about section of his profile: https://stackoverflow.com/users/2705542/tim-peters
He'll be sorely missed by everyone who has read the Zen of Python (but not limited to it ofc).
Every time `1 + 2.5` just works in Python, that's Tim. RIP
Genuine question - why do you think many seminal figures in CS dying at a relatively young age?
I quoted im earlier today in a commit message at work. Not knowing him at all, this news is a bit of a shock.
RIP. I didn't know him IRL, but I remember him fondly from the Python Usenet group and Python bug tracker discussions.
The Steering Council bureaucrats must be very happy that he cannot "post too many mails" or "use the wrong language" on the mailing lists any longer.
Your corporate sinecure "custom Python distributions" are secure now!
I miss arguing with Perl… back in the day I wrote a full http proxy in Perl that rewrote and compressed http requests. Fun times.
Legendary contributor.
Thinking that the Python software foundation decided to ban this person for frivolous reasons is both laughable and sad.
https://lunduke.locals.com/post/5985667/python-bans-prominen...
As a programmer who used Python, I'm in debt to him.
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.
Tim? The Tim (Timsort) Peters?
I learned about Timsort and used it in a class as a student long ago. RIP.
May his memory be a blessing
https://en.wikipedia.org/wiki/Tim_Peters_(software_engineer)
https://en.wikipedia.org/wiki/Timsort
May he rest in peace, I just learned about Timsort!
Very, very sad news. RIP Tim Peters.
o7
RIP.
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.
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.
https://news.ycombinator.com/item?id=50450488 links to GvR's announcment on discuss.python.org .
A black bar is appropriate for this news.
Black bar, anyone?
[flagged]
Obviously a great man, but that was no defense when the intolerant leftists came for him.
https://discuss.python.org/t/three-month-suspension-for-a-co...