522 points by ayhanfuat 13 hours ago
<a href="https://www.reddit.com/r/Python/s/2Cm5dBcvQw" rel="nofollow">https://www.reddit.com/r/Python/s/2Cm5dBcvQw</a>
Comments are read-only. Visit Hacker News to participate in the discussion.
w-m 11 hours ago | 0 points
<p><pre><code> $ 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!</code></pre>
Waterluvian 2 hours ago | 0 points
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.
Buttons840 22 minutes ago | 0 points
Which is stored in `this.s` as the following string:<p>Gur Mra bs Clguba, ol Gvz Crgref<p>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 <i>evtug</i> 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 1 hour ago | 0 points
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.
leoc 1 hour ago | 0 points
And at that moment, shiandow was enlightened. ;)<p>(<a href="https://en.wikipedia.org/wiki/Zen_of_Python" rel="nofollow">https://en.wikipedia.org/wiki/Zen_of_Python</a> has more about the discrepancy.)
bitter_michael 1 hour ago | 0 points
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
gavmor 1 hour ago | 0 points
I have cited this poem countless times over the years--sometimes ironically. I'm sad.
glerk 1 hour ago | 0 points
Hard to disagree with any of this. RIP.
flykespice 1 hour ago | 0 points
> There should be one-- and preferably only one --obvious way to do it.<p>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 24 minutes ago | 0 points
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 <i>obvious</i>. 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 39 minutes ago | 0 points
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".
svilen_dobrev 2 hours ago | 0 points
Thank you, Tim Peters.<p>.
leoc 3 hours ago | 0 points
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: <a href="https://www.linuxjournal.com/article/6467" rel="nofollow">https://www.linuxjournal.com/article/6467</a> .<p>(EDIT: Robert Woodhead apparently shares in the credit, too: <a href="https://www.ceas.cc/papers-2004/136.pdf" rel="nofollow">https://www.ceas.cc/papers-2004/136.pdf</a> <a href="https://ceas.cc/papers-2004.html" rel="nofollow">https://ceas.cc/papers-2004.html</a> . Apparently Rob Hooft was another implementor? I can't find a good source for that though.)
curiousObject 1 hour ago | 0 points
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 8 hours ago | 0 points
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.<p>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".<p>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.<p>The brief interactions we had will always be cherished as high points in my Pythonista trajectory.<p>One favorite of mine was this response: <a href="https://www.python.org/doc/humor/#id15" rel="nofollow">https://www.python.org/doc/humor/#id15</a>. I also like <a href="https://www.python.org/doc/humor/#id19" rel="nofollow">https://www.python.org/doc/humor/#id19</a> very much.
pdonis 2 hours ago | 0 points
One of my favorite Tim Peters comp.lang.python posts has always been this one in the discussion of doctest:<p><a href="https://groups.google.com/g/comp.lang.python/c/DfzH5Nrt05E/m/aLuIWLtcfdcJ" rel="nofollow">https://groups.google.com/g/comp.lang.python/c/DfzH5Nrt05E/m...</a>
apetresc 2 hours ago | 0 points
> 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.
ofek 1 hour ago | 0 points
Tim was one of the people who contributed to my love of the Python language eventually expanding to its entire community.<p>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.<p>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.<p>RIP Tim<p>[0]: <a href="https://discuss.python.org/t/5778/24" rel="nofollow">https://discuss.python.org/t/5778/24</a>
linsomniac 2 hours ago | 0 points
My last exchange with Tim was him saying that he wasn't feeling up to having visitors.<p>You never know when an email is going to be the Last Email. Don't put off reconnecting with old friends.
linsomniac 6 hours ago | 0 points
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?'"<p>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.<p>RIP my friend.
dalke 10 hours ago | 0 points
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.<p>I was an active participant in the comp.lang.python Usenet channel in the late 1990s.<p>I learned much from reading Tim Peters' posts. To many, including me, he was affectionately referred to as "Uncle Timmy."<p>One of the things I learned was that I still had much to learn about the art of programming.<p>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.<p>I remember posting questions about things I didn't understand, which he figured out and explained. [1]<p>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]<p>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><p>Here is Guido van Rossum starting the thread on "In Memoriam: Tim Peters", at <a href="https://discuss.python.org/t/in-memoriam-tim-peters-1952-2026/110028" rel="nofollow">https://discuss.python.org/t/in-memoriam-tim-peters-1952-202...</a> .<p>Here's an interview of him at PyCon 2006, <a href="https://www.youtube.com/watch?v=1wAOy88WxmY" rel="nofollow">https://www.youtube.com/watch?v=1wAOy88WxmY</a><p>[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.<p>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.<p>[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'.
rdtsc 1 hour ago | 0 points
Tim's Blog <a href="https://tim-one.github.io/psf/" rel="nofollow">https://tim-one.github.io/psf/</a><p>"Question everything. Love everyone" (from his page)<p>RIP "Uncle Timmy".
grep_it 2 hours ago | 0 points
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><p>1: <a href="https://mail.python.org/pipermail/python-list/2000-March/048085.html" rel="nofollow">https://mail.python.org/pipermail/python-list/2000-March/048...</a>
__mharrison__ 2 hours ago | 0 points
Thanks, Tim. Your contributions have helped me feed me family over the years. RIP<p>(I've taught the Zen of Python, doctests, timsort, and more during my career.)
asalahli 56 minutes ago | 0 points
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.<p>It feels surreal to learn about his death just the next day. RIP
Copenjin 13 hours ago | 0 points
The Tim of Tim Sort, for those that want to identify him quickly.
yowlingcat 2 hours ago | 0 points
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.
wagarwaliw 34 minutes ago | 0 points
Pay your respect firing those ratfuckers in the psf that banned him and made so many people stop giving a shit about Python
dyoo1979 30 minutes ago | 0 points
The world is a bit dimmer for your absence. We miss you.
themanmaran 2 hours ago | 0 points
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.
loeg 39 minutes ago | 0 points
I learned about Timsort and used it in a class as a student long ago. RIP.
leoc 9 hours ago | 0 points
<a href="https://news.ycombinator.com/item?id=50450488">https://news.ycombinator.com/item?id=50450488</a> links to GvR's announcment on discuss.python.org .
bajard 1 hour ago | 0 points
As a programmer who used Python, I'm in debt to him.
bonoboTP 2 hours ago | 0 points
Nice obituary, would have been cool if Guido had stood up for him when he was witch hunted by Python leadership...
polotics 1 hour ago | 0 points
<a href="https://chrismcdonough.substack.com/p/the-shameful-defenestration-of-tim" rel="nofollow">https://chrismcdonough.substack.com/p/the-shameful-defenestr...</a><p>And after that three months suspension BS drama Tim just got back to work on Python. Saintly.<p>btw. made me stop having a favourite programming language.
kgcgfva 1 hour ago | 0 points
I learned how to be a person on the internet in large part by watching Tim back in the day. RIP.
kapilvt 16 hours ago | 0 points
Tim (of Timsort) was a long time python contributor (aka 90s), and a foundation of its early community (>>> import this). Rip.
iqbal1980 51 minutes ago | 0 points
May he rest in peace, I just learned about Timsort!
allendoerfer 1 hour ago | 0 points
I quoted im earlier today in a commit message at work. Not knowing him at all, this news is a bit of a shock.
baggy_trough 31 minutes ago | 0 points
Obviously a great man, but that was no defense when the intolerant leftists came for him.<p><a href="https://discuss.python.org/t/three-month-suspension-for-a-core-developer/60250" rel="nofollow">https://discuss.python.org/t/three-month-suspension-for-a-co...</a>
throwaway81523 13 hours ago | 0 points
RIP. I didn't know him IRL, but I remember him fondly from the Python Usenet group and Python bug tracker discussions.
QuantumAtom 1 hour ago | 0 points
May his memory be a blessing
fghorow 2 hours ago | 0 points
Very, very sad news. RIP Tim Peters.
toomuchtodo 2 hours ago | 0 points
<a href="https://en.wikipedia.org/wiki/Tim_Peters_(software_engineer)" rel="nofollow">https://en.wikipedia.org/wiki/Tim_Peters_(software_engineer)</a><p><a href="https://en.wikipedia.org/wiki/Timsort" rel="nofollow">https://en.wikipedia.org/wiki/Timsort</a>
jujube3 2 hours ago | 0 points
RIP.
throw-the-towel 2 hours ago | 0 points
Black bar, anyone?
SoftTalker 58 minutes ago | 0 points
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 1 hour ago | 0 points
Agreed. As it was for Fredrik Lundh (aka "the effbot") a few years ago.
dalke 9 hours ago | 0 points
I posted my thoughts in a parallel thread, at <a href="https://news.ycombinator.com/item?id=50451689">https://news.ycombinator.com/item?id=50451689</a> .<p>I focus on how I learned to be a better software developer from him, in both writing better code and supporting others.
dang 3 hours ago | 0 points
(We've since merged that thread hither.)
leoc 8 hours ago | 0 points
A black bar is appropriate for this news.