• GuybrushThreepwo0d@programming.dev
    link
    fedilink
    arrow-up
    8
    ·
    10 months ago

    I used to think this way, at least when writing C++. But it’s objectively harder to do and convince other people to follow, especially if they can’t be bothered to change their environment to display tabs and spaces differently. It’s a losing battle so now I just do spaces when working with other people

    • KIM_JONG@lemmy.world
      link
      fedilink
      arrow-up
      3
      arrow-down
      4
      ·
      10 months ago

      Always do spaces, because you can never trust how someone else has their tab configured.

      How is this even a debate anymore. I thought we all agreed on this years ago.

      • Pyro@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        10 months ago

        you can never trust how someone else has their tab configured

        Why on earth would I care how someone else has their editor configured? It’s none of my business, and none of yours either.

        • azertyfun@sh.itjust.works
          link
          fedilink
          arrow-up
          2
          ·
          edit-2
          10 months ago

          Because other people are fucking morons and their editor doesn’t have visible whitespace enabled - or it does but they don’t give a shit.

          Therefore these fucking morons have anywhere between 2 and 8 spaces-per-tab configured and will happily mash the tab key however many times is convenient for them to align their code or comments because they don’t understand shit about fuck when it comes to alignement (or they don’t care). Now I open their file and everything is predictably misaligned. Spaces and tabs are mixed from one line to the next, and in particularly egregious cases no tab width I can locally set on the file will make it readable because multiple different morons used different tab widths to align with tabs - sometimes within the same goddamn function or comment.

          Have you ever tried to read an important technical diagram in ASCII art aligned with tabs by different people with different IDE settings? Because I have. Emphasis on tried.

          • Pyro@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            ·
            10 months ago

            Spaces and tabs are mixed from one line to the next

            This is a solved problem: Enforce linting before committing using something like Git Hooks / Husky.

            Have you ever tried to read an important technical diagram in ASCII art aligned with tabs by different people with different IDE settings?

            No, because we live in the present and use proper tools for diagrams. SVG diagrams tend to be common nowadays. I’m aware you can’t read them raw, but realistically the intersection between people who need to read important technical diagrams and people who don’t have access to a web browser is vanishingly small (dare I say nonexistent?)

            • azertyfun@sh.itjust.works
              link
              fedilink
              arrow-up
              1
              ·
              10 months ago

              Tell me you develop with modern languages without telling me you develop with modern languages.

              Try linting perl, or bash.

              Like yeah if you work on a modern JS/Python/C# project, whatever, whitespace is going to be autoformatted, so the tabs vs spaces debate does not matter AT ALL.

              • Pyro@lemmy.world
                link
                fedilink
                English
                arrow-up
                2
                ·
                10 months ago

                Tell me you develop with modern languages without telling me you develop with modern languages.

                You say this like it’s a bad thing?

                Try linting perl, or bash.

                If you’re already writing Perl/Bash scripts then it would probably not take you long to write a git hook to check the beginning of each line of source to check if there’s a space or a tab character and preventing the commit if the wrong one is found. Crude and far from perfect, but still better than nothing.

                if you work on a modern JS/Python/C# project, whatever, whitespace is going to be autoformatted, so the tabs vs spaces debate does not matter AT ALL.

                It does though. If you read the original article then you’d know that the advantage of tabs is that everyone can choose exactly how deep their tabstops are, which is an objective benefit over spaces.

                • azertyfun@sh.itjust.works
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  edit-2
                  10 months ago

                  It’s not wrong to work with modern languages, but don’t pretend that you have the answer to the debate if you don’t work in a field where it applies.

                  Linting bash/perl is a TERRIBLE idea. Consider the following, extremely common piece of code (perl has equivalent syntax as well):

                  #!/bin/bash
                  
                  cat > testfile < < EOF
                      test1
                  	test2
                  EOF
                  

                  (lol lemmy bug found, can’t write the actual “left angled bracket - left angled bracket” syntax, it somehow truncates the comment)

                  OTOH if you use a modern auto-formattable language, then you can auto-format to tabs with a git hook or IDE plugin (and back for committing) if you want, so the debate doesn’t matter in that case. It goes both ways.