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

  • xmunk@sh.itjust.works
    link
    fedilink
    arrow-up
    54
    arrow-down
    18
    ·
    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
      link
      fedilink
      arrow-up
      22
      arrow-down
      7
      ·
      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
        34
        arrow-down
        8
        ·
        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
          12
          arrow-down
          1
          ·
          edit-2
          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
          link
          fedilink
          arrow-up
          5
          ·
          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.

    • TheHarpyEagle@lemmy.world
      link
      fedilink
      arrow-up
      9
      ·
      1 month ago

      You take that back, python is my homie!

      In all seriousness, I freely admit that I’m biased towards python because it was my first language and remains my favorite. I use an IDE for anything but the simplest scripts, so I’ve very rarely had any issues with spacing.

    • muntedcrocodile@lemm.ee
      link
      fedilink
      English
      arrow-up
      8
      ·
      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.

    • pkill@programming.devOP
      link
      fedilink
      arrow-up
      4
      ·
      1 month ago

      I agree but still you can oftentimes expect that the average person’s initial reaction to be somehow reluctant… until they understand it. it’s like those foods and drinks that you might need to try a couple times before you start enjoying them.

    • best_username_ever@sh.itjust.works
      link
      fedilink
      arrow-up
      2
      ·
      1 month ago

      In 20 years of using Python, I never had one issue with the indentation. Use spaces all the time, use PyCharm, and that’s it.

      Whitespace is statistically insignificant in Python.

      • Barbarian@sh.itjust.works
        link
        fedilink
        arrow-up
        33
        ·
        1 month ago

        As long as the next line also has 5 spaces, that’s fine. Python only complains about inconsistency, not the exact number of spaces/tabs.

          • smeg@feddit.uk
            link
            fedilink
            English
            arrow-up
            4
            ·
            1 month ago

            What, you don’t like tabs and spaces being syntactically different?

            • Buddahriffic@lemmy.world
              link
              fedilink
              arrow-up
              4
              arrow-down
              1
              ·
              1 month ago

              (Sarcasm/deadpan detected but I’ll respond anyways).

              Not when they are visibly the same and the spaces have no other meaning in that context.

              Not to mention tabs being annoying in general because of how badly it works to adjust the distance of tab stops. That doesn’t really affect this particular case, but it’s why I generally use spaces instead of tabs.

              Most of the annoyance is from vim recognizing that spaces are an error in makefile recipes but still using them unless I copy paste a tab in, including when I hit enter on a line that is using a tab already. It matches the indentation but uses spaces instead of tabs. I’m sure there’s a way to adjust vim config to fix this, but I have yet to acquire the esoteric knowledge required to do so.

              • ugo@feddit.it
                link
                fedilink
                arrow-up
                2
                ·
                1 month ago

                If by vim you mean neovim

                vim.api.nvim_create_autocmd(“fileType”, {
                    group = file_type_group,
                    pattern = “make”,
                    command = “setlocal ts=4 sts=4 sw=4 noexpandtab”,
                })
                

                Slap this in your config, done

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

    Go home OP, you’re drunk.

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

  • DumbAceDragon@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    28
    arrow-down
    7
    ·
    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
      26
      arrow-down
      4
      ·
      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.

    • yogsototh@programming.dev
      link
      fedilink
      arrow-up
      11
      ·
      1 month ago

      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).

      Just for anyone thinking you are serious; https://en.wikipedia.org/wiki/M-expression I love how S-expression existed.

      McCarthy had planned to develop an automatic Lisp compiler (LISP 2) using M-expressions as the language syntax and S-expressions to describe the compiler’s internal processes. Stephen B. Russell read the paper and suggested to him that S-expressions were a more convenient syntax. Although McCarthy disapproved of the idea, Russell and colleague Daniel J. Edwards hand-coded an interpreter program that could execute S-expressions.[2] This program was adopted by McCarthy’s research group, establishing S-expressions as the dominant form of Lisp.

      • Corbin@programming.dev
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 month ago

        And for anybody thinking of implementing M-expressions, look at Wolfram Mathematica, which is the only popular M-expression-oriented language. It turns out that high-level graph-rewriting semantics are difficult to make efficient! (If you want to try, you might also want to look at GHC or other efficient graph-rewriters to see what the state of the art is like outside Planet Wolfram.)

    • setVeryLoud(true);@lemmy.ca
      link
      fedilink
      arrow-up
      6
      ·
      1 month ago

      I literally can’t see whitespace, it gives me headaches looking for it. With brackets, I can get bracket matching in my IDE.

  • RedSeries@lemmy.world
    link
    fedilink
    English
    arrow-up
    23
    arrow-down
    5
    ·
    1 month ago

    ITT: Developers who think their code is readable complaining about Python and YAML.

  • umbraroze@lemmy.world
    link
    fedilink
    arrow-up
    9
    ·
    1 month ago

    Clearly, the superiour mode is to just use keyword based scoping (à la Ruby do ... end). When I was a kid I read an OBSCENE MAGAZINE where I saw a Forth program go dup dup dup and I was like “ok so what’s the problem here? Things happen and everything is just keywords?” and my young mind was corrupted forever I guess

  • chonglibloodsport@lemmy.world
    link
    fedilink
    arrow-up
    8
    ·
    1 month ago

    Haskell does both! Most people prefer to use whitespace when writing Haskell but it’s not required. Braces and semicolons are preferred if you’re going to be generating Haskell code.

  • luciole@beehaw.org
    link
    fedilink
    arrow-up
    5
    ·
    1 month ago

    It’s fascinating how s-expressions are both data type and language syntax. Such power. Only other time I saw something remotely like this was XSLT & XML, which I admittedly do not miss one bit.

  • ornery_chemist@mander.xyz
    link
    fedilink
    arrow-up
    4
    ·
    1 month ago

    This post made me go try something in clojure again and man I forgot just how fucking good the language is. Everything fits together so nicely.