this post was submitted on 08 Jun 2025
515 points (97.4% liked)

Programmer Humor

36482 readers
33 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] scrubbles@poptalk.scrubbles.tech 1 points 1 week ago (4 children)

Iv come to loathe the "pythonic way" because of this. They claim they wanted to make programming easier, but they sure went out of their way to not follow conventions and make it difficult to relearn. For example, for me not having lambdas makes python even more complex to work with. List operations are incredibly easy with map and filter, but they decided lambdas weren't "pythonic" and so we have these big cumbersome things instead with wildly different syntax.

[–] jacksilver@lemmy.world 17 points 1 week ago (3 children)

Maybe I'm missing something, but:

[–] wewbull@feddit.uk 16 points 1 week ago (1 children)

So much Python criticism comes from people who don't know the language.

[–] jacksilver@lemmy.world 5 points 1 week ago

I mean, there is a lot wrong with it, but every language has its quirks. Generally I like discussing it's actual flaws cause it helps me better understand the language.

[–] Natanox@discuss.tchncs.de 6 points 1 week ago* (last edited 1 week ago) (1 children)

And switch cases (called match cases) are there as well.

I use lambdas all the time to shovel GTK signal emitions from worker threads into GLib.idle_add in a single line, works as you'd expect.

Previous commenters probably didn't look at Python in a really long time.

[–] Jumuta@sh.itjust.works 1 points 6 days ago

i mean tbf match case was only added in 3.10

[–] vrighter@discuss.tchncs.de 5 points 1 week ago

a lambdo which can only contain one expression, and not even a statement is pretty much useless. For anything nontrivial you have to write a separate function and have the lambda be just a function call expression. Which completely defeats the point

[–] undefinedValue@programming.dev 6 points 1 week ago (1 children)

Speaking of big cumbersome things with wildly different syntax have you tried a ternary operation in python lately? Omg that thing is ugly. JavaScripts is hard to beat.

uglyTernary = True: if python_syntax == “shit” else: False prettyTernary = javascript_syntax == “pretty” ? true : false

[–] limdaepl@feddit.org 2 points 1 week ago (2 children)

That’s just because you’re used to it. The pythonic ternary is structured like spoken language, which makes it easier to read, especially if you nest them.

Is there an objective argument for the conventional ternary, other than „That’s how we’ve always done it!“?

[–] Ephera@lemmy.ml 1 points 6 days ago

The conventional ternary is structured like a normal if-else. In fact, in many languages with functional influence, they're the same thing.

For example, you can write this in Rust:

let vegetable = if 3 > 4 { "Potato" } else { "Tomato" };
[–] vrighter@discuss.tchncs.de 9 points 1 week ago* (last edited 1 week ago)

I don't read spoken language, but I do read written ones. The problem with python's ternary is that it puts the condition in the middle, which means you have to visually parse the whole true:expression just to see where the condition starts. Which makes it hard to read for anything but the most trivial examples.

The same goes for comprehensions and generators

[–] limdaepl@feddit.org 2 points 1 week ago

If the conventions suck you have to break them. How else can you improve things?

map and filter are almost always inferior to generators and comprehension expressions in terms of readability. If you prefer the former, it’s just because you got used to it, not because it’s better.

[–] MonkderVierte@lemmy.zip -1 points 1 week ago (1 children)

Tf, who needs lambdas in python?

[–] lime@feddit.nu 8 points 1 week ago (1 children)

anyone using map, filter, reduce, or anything in itertools or functools?