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

  • @ornery_chemist@mander.xyz
    link
    fedilink
    411 months 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.

  • _NetNomad
    link
    fedilink
    911 months ago

    you’ll pry my END command from my cold, dead hands…

      • @Barbarian@sh.itjust.works
        link
        fedilink
        3311 months 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.

            • @Buddahriffic@lemmy.world
              link
              fedilink
              311 months 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.

  • Rose
    link
    fedilink
    911 months 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

  • DumbAceDragon
    link
    fedilink
    English
    27
    edit-2
    11 months 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.

    • setVeryLoud(true);
      link
      fedilink
      611 months ago

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

    • Traister101
      link
      fedilink
      2311 months 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
      1211 months 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
        111 months 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.)

  • RedSeries
    link
    fedilink
    English
    2111 months ago

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

  • ☂️-
    link
    fedilink
    1611 months ago

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

    fuck it, parenthesis all the way.

  • @lorty@lemmy.ml
    link
    fedilink
    8511 months ago

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

      • @quantenzitrone@feddit.de
        link
        fedilink
        111 months ago

        since yaml is just a superset of json, you can easily avoid all problems like this

        yaml is like a less strict json for me

      • @RecluseRamble@lemmy.dbzer0.com
        link
        fedilink
        2111 months 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?

        • @CaptPretentious@lemmy.world
          link
          fedilink
          2711 months ago

          Do a search for ‘why yaml is bad’ and you’ll get a lot of stories.

          Constant passing problems, especially when the yaml gets very large and complex. After I implemented a new feature I was pulled into a call with 12-15 people demanding to know why it didn’t work. The new feature worked fine, The guys yaml had the wrong amount of white space and so it didn’t parse.

        • magic_lobster_party
          link
          fedilink
          3111 months 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.

          • Ethan
            link
            fedilink
            English
            111 months ago

            It’s hard to distinguish whether a line is wrongly indented or not.

            That’s very much not my experience. I use YAML regularly and while I’ve had copy paste indentation errors when I look at the offending line it’s always obvious to me how to fix the indentation. The only indentation thing that’s ever given me trouble is embedding YAML as a string within a file that uses tabs.

        • @lorty@lemmy.ml
          link
          fedilink
          1911 months ago

          White space in the wrong place? Fails Wrong amount of tabs? Fail

          Working in a big configuration file that has a lot of nesting? Good luck.

          Best part is that most of these things don’t throw errors or anything, it just doesn’t work and you are left scratching your head as to why your deploy only fails in the production environment.

    • @AdamBomb@lemmy.sdf.org
      link
      fedilink
      English
      1111 months ago

      Since it’s a superset of JSON, couldn’t you just use the JSON notation if you hate the semantic whitespace?

  • @chonglibloodsport@lemmy.world
    link
    fedilink
    911 months 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.