• Bobo The Great@sopuli.xyz
    link
    fedilink
    arrow-up
    39
    arrow-down
    1
    ·
    4 hours ago

    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, except/catch 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.

    • CanadaPlus@lemmy.sdf.org
      link
      fedilink
      arrow-up
      1
      ·
      1 minute ago

      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.

    • lime!@feddit.nu
      link
      fedilink
      English
      arrow-up
      27
      arrow-down
      1
      ·
      4 hours ago

      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
        link
        fedilink
        arrow-up
        3
        ·
        2 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.

    • Scrubbles@poptalk.scrubbles.tech
      link
      fedilink
      English
      arrow-up
      7
      arrow-down
      2
      ·
      3 hours ago

      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.

      • Jambalaya@lemmy.zip
        link
        fedilink
        English
        arrow-up
        7
        ·
        3 hours ago

        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.

        • Diplomjodler@lemmy.world
          link
          fedilink
          arrow-up
          10
          ·
          2 hours ago

          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.

            • lime!@feddit.nu
              link
              fedilink
              English
              arrow-up
              3
              ·
              33 minutes 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…

  • schnurrito@discuss.tchncs.de
    link
    fedilink
    arrow-up
    42
    ·
    4 hours ago

    TBF the last two bullet points are verbose descriptions of the thing it means in C++, Java, and Python too. It’s just that in JS, “this” can also be used in other places.

    But yeah, in practice, every time I write JS I want to throw my hands in the air and shout “this is bullshit”, but never know what “this” refers to… :D

    • Pennomi@lemmy.world
      link
      fedilink
      English
      arrow-up
      6
      arrow-down
      2
      ·
      edit-2
      4 hours ago

      In Python you can use 🍆 as a variable name.

      Edit: oops, guess I was mistaken, you can use most Unicode but emojis are not valid.

        • scott@lemmy.org
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 hour ago
          ~ $ python
          Python 3.12.10 (main, Apr  9 2025, 18:13:11) [Clang 18.0.3 (https://android.googlesource.com/toolchain/llvm-project d8003a456 on linux
          Type "help", "copyright", "credits" or "license" for more information.
          >>> ❗ = 'nah'
            File "<stdin>", line 1
              ❗ = 'nah'
              ^
          SyntaxError: invalid character '❗' (U+2757)
          >>>
          ~ $ node
          Welcome to Node.js v23.11.1.
          Type ".help" for more information.
          > const 👍 = 'test'
          const 👍 = 'test'
                ^
          
          Uncaught SyntaxError: Invalid or unexpected token
          >
          
    • ryedaft@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      4
      ·
      4 hours ago

      You can use anything that doesn’t start with a digit or punctuation as a variable name (underscore beginning also allowed) unless it’s a keyword.

      • funkless_eck@sh.itjust.works
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        3 hours ago

        _ (sic) as a variable name is often used when a function returns multiple outputs but you only want one

         def my_function:
              return 1, 2, 3
        
         _, two, _ = my_function()
        
        • ryedaft@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          2
          ·
          3 hours ago

          Underscore alone is a special variable name and I’m pretty sure anything assigned to it goes straight to garbage collection. Whereas _myvariable is typically use to indicate a “private” class variable or method (Python doesn’t have private so it’s just a convention).

  • Demdaru@lemmy.world
    link
    fedilink
    arrow-up
    5
    arrow-down
    1
    ·
    4 hours ago

    Not much experience, but quickly learned .bind() in JS after it switched me to window instead of object.

    • bleistift2@sopuli.xyz
      link
      fedilink
      English
      arrow-up
      1
      ·
      44 minutes ago

      The key is to not reassign function names to local variables.

      const print = obj.toString
      print() // gives you a bad time