…from people who seem to refuse to install paredit or coloring plugins for either? ps lisp syntax ftw, it’s a feature!

  • DumbAceDragon@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    1 month ago

    I don’t get why people hate semantic whitespace. The whitespace would be there anyway, and if anything it’s easier to read as long as you avoid 15 nested if statements, and you’re not using a dynamically typed abomination like python.

    S-expressions are a hack because the Lisp devs didn’t know how to make an actual compiler, and instead had the users write the syntax tree for them. (For legal reasons I am being facetious).

    In all honesty, I can understand the reason people love s-expressions, but to me they’re just unreadable at a glance.

    • Traister101@lemmy.today
      link
      fedilink
      arrow-up
      0
      ·
      1 month ago

      Semantic whitespace is awful because whitespace (something that you can’t actually see) has meaning in how the program runs. Braces { } for scopes gives you the ability to easily tell at a glance where a scope ends. Whitespace doesn’t allow for that. Especially, especially when you can accidentally exit a scope (two new lines in a row with Python) and it’s not actually an error (Pythons global scope). Yeah formatters and linters make this less of an issue but it sucks… Languages with legible symbols for scoping are significantly easier to reason about, see end symbols in Lua.

  • sajran@lemmy.ml
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 month ago

    So I’m going to say what I always say when people complain about semantic whitespace: Your code should be properly indented anyway. If it’s not, it’s a bad code.

    I’m not saying semantic whitespace is superior to brackets or parentheses. It’s clearly not. But it’s not terrible either.

    As someone who codes in Python pretty much everyday for years, I NEVER see indentation errors. I didn’t see them back when I started either. Code without indentation is impossible to read for me anyway so it makes zero difference whether the whitespace has semantic meaning or not. It will be there either way.

    • eluvatar@programming.dev
      link
      fedilink
      arrow-up
      0
      ·
      1 month ago

      The number of times I move code around and can just press a hotkey to fix indentation though. Not possible with Python.

    • TechNom (nobody)@programming.dev
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      1 month ago

      Python decided to use a single convention (semantic whitespace) instead of two separate ones for machine decodeable scoping and manual/visual scoping. That’s part of Python’s design principle. The program should behave exactly like what people expect it to (without strenuous reasoning exercises).

      But some people treat it as the original sin. Not surprised though. I’ve seen developers and engineers nurture weird irrational hatred towards all sorts of conventions. It’s like a phobia.

      Similar views about yaml. It may not be the most elegant - it had to be the superset of JSON, after all. But Yaml is a semi-configuration language while JSON is a pure serialization language. Try writing a kubernetes manifest or a compose file in pure JSON without whitespace alignment or comments (which pure JSON doesn’t support anyway). Let’s see how pleasant you find it.

    • Crisps@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      1 month ago

      This leads to weird bugs when you change indentation and miss a line or reorder lines. The logic changes. Not too bad when you’re on your own, as Python seems to be intended for. Add multiple developers and git merges and it is a recipe for disaster. With end tags at least you just end up with poorly formatted working code.

      • sajran@lemmy.ml
        link
        fedilink
        English
        arrow-up
        0
        ·
        1 month ago

        Of course, but when indentation has a syntactic meaning the formatter often won’t be able to fix it.

  • lorty@lemmy.ml
    link
    fedilink
    arrow-up
    0
    ·
    1 month ago

    No, YAML can fuck right off. I hate that this shit format is used for cloud stuff.

      • RecluseRamble@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        0
        ·
        1 month ago

        OK, that’s excessively “convenient” for booleans. But I don’t get the passionate YAML hate, seems like a simple enough language for config. Didn’t have the pleasure (“pleasure”?) to work with it though, so what’s why else is it shitty?

        • magic_lobster_party@kbin.run
          link
          fedilink
          arrow-up
          0
          ·
          1 month ago

          A property can have the wrong indentation and it would still be a syntactically correct yaml. It’s hard to distinguish whether a line is wrongly indented or not. Copy and paste a line and mistakenly use the wrong indentation, and the entire production breaks.

          In json it’s much harder to do similar mistakes.

  • masterspace@lemmy.ca
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 month ago

    Go home OP, you’re drunk.

    And give us your keys, you’ve had too much minimalism to drive.

  • Litanys@lem.cochrun.xyz
    link
    fedilink
    English
    arrow-up
    0
    ·
    21 days ago

    But s-expressions give you power that other syntax doesn’t. Data and code as one. Besides there is no other syntax than simply that so it becomes much easier to remember random extra things.

    Whitespace on the other hand, I hate with fiber of my being.

    • pkill@programming.devOP
      link
      fedilink
      arrow-up
      0
      ·
      17 days ago

      Yes definitely. However Rust manages to become extensible and capable of constructing powerful DSLs out of it’s macros without using S-expressions. But I still find them prettier than Rust’s syntax.

  • xmunk@sh.itjust.works
    link
    fedilink
    arrow-up
    0
    ·
    1 month ago

    Who hates s-expressions? They’re elegant as fuck…

    Python, on the other hand, deserves all the hate it gets for making whitespace syntactically significant - I even prefer Go’s hamfisted go fmt approach to a forced syntax to python’s bullshit.

    • eestileib@sh.itjust.works
      cake
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      1 month ago

      I dgaf about indices starting at 0 or 1, I can deal with case-insensitivity, but syntactically significant whitespace drives me up the wall.

      • Diplomjodler@lemmy.world
        link
        fedilink
        arrow-up
        0
        ·
        1 month ago

        What’s so hard to understand about it? It’s how you should format your code anyway. Only it’s enforced.

        • magic_lobster_party@kbin.run
          link
          fedilink
          arrow-up
          0
          ·
          1 month ago

          It’s quite often I have to second guess whether the code is correctly intended or not. Is this line supposed to be part of this if block or should I remove that extra indentation? It’s not always entirely obvious. Extra troublesome during refactors.

          In other languages it’s always obvious when a line is incorrectly indented.

        • vrighter@discuss.tchncs.de
          cake
          link
          fedilink
          arrow-up
          0
          ·
          1 month ago

          sometimes, a script needs to be edited in a plain text editor, without having access to an lsp or any other dev tools.

        • Lysergid@lemmy.ml
          link
          fedilink
          arrow-up
          0
          ·
          1 month ago

          No it’s how Python wants you to format. Many times I want to separate two logical sections in one function and can’t coz Python go crazy

          • Diplomjodler@lemmy.world
            link
            fedilink
            arrow-up
            0
            ·
            1 month ago

            Just put them in separate functions. If you have too many levels of indent, your code is convoluted. Sticking to the line length limit sometimes forces you to write more lines than you’d like to. But it makes everything so much more readable that it’s 100% worth the trade off

            • xmunk@sh.itjust.works
              link
              fedilink
              arrow-up
              0
              ·
              1 month ago

              What if the logic is more readable in one function?

              I use whitespace to make my code more legible, python forces more whitespace consistency but it comes at the cost of limiting the legibility.

    • muntedcrocodile@lemm.ee
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 month ago

      I hate em cos regardless of language auto formatter takes care of everything. So now im typing extra characters and fucking shit up and confusing myself when moving code between scopes.

  • umbrella@lemmy.ml
    link
    fedilink
    arrow-up
    0
    ·
    1 month ago

    one of my least favorite things about python is semantic whitespace. no need to comment on yaml.

    fuck it, parenthesis all the way.