←back to thread

2024 points randlet | 4 comments | | HN request time: 0.513s | source
Show context
AdmiralAsshat ◴[] No.17515876[source]
What was the issue that was evidently so contentious that it made him wish to step down?
replies(5): >>17515913 #>>17515941 #>>17515956 #>>17515958 #>>17515959 #
Analemma_ ◴[] No.17515959[source]
(a := b) rather than a = b

Naturally people went to the barricades for it, in a classic example of bikeshedding and Wadler's Law (programmers will fight to the death over trivial syntax disagreements and just shrug at profound changes to semantics and architecture)

replies(4): >>17516054 #>>17516202 #>>17516377 #>>17517585 #
1. fwdpropaganda ◴[] No.17516377[source]
Damn dude...

I'm sick and tired of writing stuff like

m = f( <...> )

if m:

    # do stuff with m
Trivial as it may be, I for one welcome this.
replies(3): >>17516951 #>>17517466 #>>17518376 #
2. makecheck ◴[] No.17516951[source]
Yep, and common for regular expressions. I’d alwayed liked the simplicity of Perl’s “if ($x =~ /.../) {“ and in Python you had to create the match object before you could test it. Assignment expressions should work nicely there.
3. nas ◴[] No.17517466[source]
That's pretty much the main use of the new syntax. When you have a cascade of regexes, it is even better:

  if m := re.match(...):
     ...
  elif m := re.match(...):
     ...
The world is not coming to an end, as some detractors of the PEP might think. The new syntax is a win in a number of cases. Otherwise, you don't need to use it. The concern for abuse is way overblown. I could live without it (voted -1 on the idea originally) but now that it is in, think it is fine.
4. marcosdumay ◴[] No.17518376[source]
Many languages solve that with pattern matching, like in Haskell:

    case f <...> of
        Nothing -> -- Handles the problem values
        Just m -> -- do stuff with m
This is, honestly, much better than an assignment expression. Side-effect expressions always bring problematic cases.