Summary of Major Changes Between Python Versions
nicholashairs.com
nicholashairs.com
3.13 release note : https://docs.python.org/3.13/whatsnew/3.13.html
no-gil PEP https://peps.python.org/pep-0703/#backwards-compatibility
But of course, I have to learn all of it to understand other people's code. Python's syntax has really gotten worse. The match statement is ugly in comparison to functional languages, I'm not sure about f-strings, the with-statement extension adds new overhead to the reader.
Python is really like C++ now, except 50 times slower (yes, I know about the slow std::unordered_map special case that is due to its rigid specification).
Yet there is still a common belief among programmers that “Python is a simple language”. I don’t know how that persists.
Perhaps what people really mean is just that it has “friendly” syntax (no braces, sigils etc) - and they aren’t considering semantics?
Agree that match is shite, Python has a Guido-induced antagonism towards functional programming, starting with the opposition to multi-line lambdas, then with the attempted assassination of map() and filter() in Python 3, the removal of argument pattern matching, and now with statement-based match (in 2024!).
I don’t think there’s anything else there that I want to use. But, I recognise that as someone who only uses Python for small dynamically-typed programs, I’m not the target audience for the language any more.
I used to hate TypeScript (circa 2016) because it kept bugging me with typing errors, and I used to sprinkle "any" to shut it up.
Ned’s list is what I usually use.
```python if header.startswith("X-Forwarded-"): section = header.removeprefix("X-Forwarded-") ```
the `startswith()` check is unnecessary. If `header` doesn't start with "X-Forwarded-" then `header.removeprefix("X-Forwarded-")` just returns `header`.
Nice summary doc, with good examples. You can also visit [this site of mine](https://ptmcg.pythonanywhere.com/python_nutshell_app_a_searc...) to search for changes by version (3.7-3.11).
I didn't know about the pyupgrade tool. Very useful.
I'd love to see a step further, and avoid the circular import problem entirely. It's something I fight with everything time I work in Python. I find that I am forced to structure my Python programs in a way specifically designed to avoid this instead of what makes sense for organization. Or I will C+P functions if I feel that tradeoff is not worth it.
The piping and typing changes are so useful ! Bookmarked and I'll be coming back to this often.
I also caught the sleep token references. Well done .
I've missed a lot of these that I'm going to take advantage of!