riffraff 2 days ago

I was thinking of the walrus operator, various f-string changes, relenting on the "GIL removal must not cost performance" stance (although"covered" by other improvements), things like that.

I don't follow python closely so it may 100% be stuff that GvR endorsed too, or I'm mixing up the timelines. It just feels to me that python is changing much faster than it did in the 2.x days.

  • dragonwriter 2 days ago

    > python is changing much faster than it did in the 2.x days.

    I think part of the reason Guido stepped down was that the BDFL structure created too much load on him dealing with actual and potential change, so its unsurprising that the rate of change increased when the governance structure changed to one that managed change without imposing the same load on a particular individual.

  • kqr 2 days ago

    This may just be time passing faster now that you're older.

pinoy420 2 days ago

Pattern matching seems like a cool feature that was added just because it was cool. I think the syntax is really odd too - apparently to “be pythonic”. I really see no use for it other than to “look smart”. The fact that case match (switch case is a much better description) is expanded to practically a huge if else is disturbing. Similarly the walrus operator. Other than an answer to “what is a new feature of python that you like” interview trivia question, really, who has actually used it?

  • dragonwriter 2 days ago

    I don't use pattern matching much, but I use walrus fairly regularly.

  • Qem 2 days ago

    > Similarly the walrus operator. Other than an answer to “what is a new feature of python that you like” interview trivia question, really, who has actually used it?

    At least in my case I use it all the time, to avoid duplicated operations inside comprehensions.

  • pansa2 2 days ago

    Yeah, it was added to tick the box for people who ask "does Python have pattern matching?"

    If you look at the feature in detail, and especially how it clashes with the rest of the language, it's awful. For example:

    https://x.com/brandon_rhodes/status/1360226108399099909

    • kqr 2 days ago

      To be fair, "The Substitution Principle" (more commonly known as "equational reasoning" in this context) has never been valid in any languages that aren't... Haskell, and maybe Ada? Any expression that can trigger side effects is an unsafe substitution. (The reason such substitutions are safe in Haskell and Ada is that those languages prevent expressions from triggering side effects in the first place.)

      • pansa2 2 days ago

        This isn't about general substitutability though, just about naming constants. If you have `case 404:` and you add a named constant `NOT_FOUND = 404`, you can't change the code to `case NOT_FOUND:` because that completely changes its semantics.

        Given that one of the fundamental rules of programming is "don't use magic numbers, prefer named constants", that's terrible language design.