this post was submitted on 08 Jun 2025
476 points (97.6% liked)

Programmer Humor

36296 readers
934 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
[–] bobo1900@sopuli.xyz 71 points 1 day ago* (last edited 7 hours ago) (7 children)

Partially unrelated to the meme, but I find it almost malicious how some python keywords are named differently from the nearly universal counterpart of other languagues.

This/self, continue/pass, catch/except and they couldn't find a different word for switch so they just didn't implement it.

It's as if the original designers purposefully wanted to be different for the sake of it.

[–] SolNine@lemmy.ml 1 points 3 hours ago

List and Array terminology also bothers me ... Why not just call it an array?

[–] sjmarf@sh.itjust.works 14 points 17 hours ago (1 children)

Python does have a switch statement now, actually. And yes, they went out of their way to call it something different - match.

https://docs.python.org/3/tutorial/controlflow.html#match-statements

[–] NichtElias@sh.itjust.works 6 points 12 hours ago

match isn't just equivalent to switch though, so in this case it actually makes sense to call it something different.

[–] lime@feddit.nu 58 points 1 day ago (1 children)

pass and continue are absolutely not equal (pass is a noop, and python has a continue keyword that does what you think), and switch is called match like in many other languages. except is weird though.

[–] Phen@lemmy.eco.br 10 points 21 hours ago

"except" is also used in Pascal (or at least the main derivatives of it), but not sure if that's older than its use in Python or not.

[–] CanadaPlus@lemmy.sdf.org 15 points 20 hours ago (1 children)

PHP naming "::" a Paamayim Nekudotayim is also pretty infamous.

When I'm designing shit, I'm pretty zealous about borrowing terminology from anything even vaguely related to avoid this.

[–] bobo1900@sopuli.xyz 1 points 6 hours ago

PHP weirdness and inconsintencies never fail to amaze me.

On the bright side, I found my first StackOverflow answer that would fit exactly the same on Linguistic Stack Exchange.

https://stackoverflow.com/a/59259755

[–] bestelbus22@lemmy.world 20 points 1 day ago (1 children)

I read that self as a keyword also has quite a history. It was already used in Smalltalk, an OOP language from the early 80's.

[–] Jambalaya@lemmy.zip 14 points 23 hours ago (2 children)

Isn't self not actually a keyword? Like you can name the first variable in a class method anything and it will behave like self.

[–] Diplomjodler3@lemmy.world 17 points 22 hours ago (1 children)

You could use "this" instead of "self". And if you want a lynch mob of Python programmers outside your house, make a push request with that to some commonly used package.

[–] pastermil@sh.itjust.works 12 points 21 hours ago (2 children)

I think there will be a lynch mob of git users outside your house for calling PR as "push request".

[–] Diplomjodler3@lemmy.world 10 points 21 hours ago* (last edited 19 hours ago) (1 children)

I've been wondering about the noise.

Edit: turns out, they weren't there to lynch me. They just gave me a two hour lecture on proper usage of git.

[–] naught@sh.itjust.works 3 points 19 hours ago* (last edited 19 hours ago)

TECHNICALLY, there is no such thing as a pull request in git. That's a Github convention. It's really a merge request

e: drat someone already out-pedantic'd me

[–] lime@feddit.nu 8 points 20 hours ago

only github users. git itself doesn't have PRs, and other forges call them different things. gitlab calls them merge requests, pico calls them patch requests...

[–] mkwt@lemmy.world 1 points 22 hours ago

You could even choose the name this.

[–] scrubbles@poptalk.scrubbles.tech 2 points 23 hours 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 15 points 22 hours ago (3 children)

Maybe I'm missing something, but:

[–] wewbull@feddit.uk 15 points 22 hours ago (1 children)

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

[–] jacksilver@lemmy.world 5 points 20 hours 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.

[–] vrighter@discuss.tchncs.de 5 points 18 hours 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

[–] Natanox@discuss.tchncs.de 6 points 22 hours ago* (last edited 22 hours 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 11 hours ago

i mean tbf match case was only added in 3.10

[–] undefinedValue@programming.dev 6 points 20 hours 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 1 points 19 hours 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 4 hours 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 8 points 18 hours ago* (last edited 18 hours 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 1 points 19 hours 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 23 hours ago (1 children)

Tf, who needs lambdas in python?

[–] lime@feddit.nu 7 points 19 hours ago (1 children)

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

[–] Dagnet@lemmy.world 2 points 23 hours ago

List instead of array, dict instead on object (tho it also has objects)