(One of my summaries of the 2023 Dutch pythonconferentie python meeting in Utrecht, NL).
She showed “the zen of python”:
>>> 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!
She herself wondered whether she fully understood those. Are they suggestions? Aphorisms? The law? She took the book “Gödel, Escher, Bach”. Mentioned in there, are the three layers of any message:
Frame message. How is it packaged/presented?
Outer message. The actual contents. The musing itself. Or the actual text.
Inner message. The emotion you feel. The perception. To understand the inner message is to have extracted the meaning intended by the sender.
Simple is better than complex: fine. But “complex is better than complicated”? What do those terms mean exactly? Complex is difficult to separate or to solve. Complicated is difficult to understand or explain. Aha.
Readability counts. Adequate variable/module naming. A well-designed structure. Linting. Flat is better than nested, sparse is better than dense. Documentation is important. She thanked Daniele Procida for his work on this.
Freedom. Freedom of will. Freedom of choice. Python is in a sense an exercise in freedom: how much freedom can we give developers? How much do we need to restrict to keep everything readable?
Viktor Frankl: the only thing you cannot take away from me is is the way I choose to respond to what you do to me. Freedom.
Bias. We often think with ourselves in the center of our universe. If you clap, you always hear a sound, right? Well, not in a vacuum. We also think we see everything correctly. But there’s a blind spot in your eye: the area where there are no light-sensitive receptors as some connectors have to pass through on the way to the brain. The brain compensates for it by literally filling in the blank with bogus information…
We are biased. We have unrealistic expectations. How can we mitigate? A good start is to recognise it and to try to mitigate. Some strategies:
Make conscious choices, even in worst case scenarios. If you’re about to automatically react on something, don’t. Make a conscious choice. If Viktor Frankl could do it in a concentration camp….
Have a safe space to talk about hard human problems. Being a human is hard.
Listen to understand. Give yourself space. Give yourself time to discover the real “inner message”.
Read books! It changes your perception.
Funny! She was asked afterwards which line she would like to add to the Zen of Python :-) It was Good enough is good. (I think it was followed by a next line, … but refactor afterwards).
My name is Reinout van Rees and I program in Python, I live in the Netherlands, I cycle recumbent bikes and I have a model railway.
Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):