• Lanthanae
    link
    fedilink
    arrow-up
    7
    ·
    1 year ago

    I’d imagine it’s because people who use spaces are either further in their career in average (because the modern programming ecosystem in general uses tabs so new devs are more likely to only know that) or they’re just more serious about software development because the kind of person to die on that hill is also the kind of person who is very obsessive about other things as well.

    • zalack@kbin.social
      link
      fedilink
      arrow-up
      4
      ·
      1 year ago

      Wait. Are tabs used more often in modern stuff? Almost everything I use does spaces and I’m not that new to programming. Been doing it for maybe 5 years. I use spaces in everything but Go.

      • Lanthanae
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        Most text editors people use (like VSCode) generally automatically adjust tabs to be whatever the standard indent is for the project (and convert to spaces if it’s necessary). As a result, indenting with tabs usually just works, and so most people just learn to do it that way. Also people are used to using tabs for indent from things like Word which they used before learning to write code. As a result, I’ve noticed most people use the tab key (even if their not technically “using tabs” every time they do it).

        • itty53@vlemmy.net
          link
          fedilink
          arrow-up
          3
          ·
          1 year ago

          I think the deeper generational thing is in the idea that anything “just works”. Like I’m a programmer, right, so I know shortcuts. Ctrl+S saves the file, simple right?

          Me when I want to save a file: Ctrl+SSSS. Why? Because I don’t trust it “just works”. Same reason I don’t trust auto save. Same reason I am stunned every time I tell windows to diagnose and fix the network problem and then it actually does.

          I grew up in a time where you couldn’t trust any of that shit.

          • Lanthanae
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            I generally trust things that “just work” so long as I know why and under what conditions.

        • zalack@kbin.social
          link
          fedilink
          arrow-up
          2
          ·
          1 year ago

          Yeah, I have my tab key set up to insert spaces. I meant the characters being used, not the key used to write them.

          • Lanthanae
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            Exactly, and do you think the majority of people who took the survey considered that distinction?

  • aaaantoine@lemmy.world
    link
    fedilink
    arrow-up
    5
    ·
    1 year ago

    That’s because these programmers are getting paid by the character.

    This is also why Java dev pays so well.

  • UpperBroccoli@feddit.de
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    [ ] tabs [ ] spaces [x] why would I even care, I press tab and the editor puts either a tab or a number of spaces, couldn’t care less…

  • GNU/Dhruv@lemmy.ml
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    Is this some kind of python meme I’m too C++ to understand?

    Now, I’m completely willing to start a war about { going on the next line.

    • TheInsane42@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      1 year ago

      Totally agree, all my { end up on the next line, 1st spot when starting a function, last character of the keyword when starting an if/for/… section. I even put the closing one on the same line when it’s single line, else either at the end of the closing line (when changing really old code) or same indent.

      So indenting varies a lot, which makes most ‘new’ programmers go mental.

      while (my code)
          { I'll do it my way }
      
      if (! liked)
       { toughen-up }
      else
       { get used to it
         multi-line can go both ways...
       }
      

      That is, unless the font used messes it up. ;)

      • GNU/Dhruv@lemmy.ml
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        It goes on the next line, so you can have open and close brackets at the same indent depth for easy visual matching.

  • Demonen@lemmy.ml
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    I use tabs because I prefer 4-space indents and others might prefer 2-space indentation or the gross and unacceptable 6-space indentation.

    If more than one person is working on a code base, there will likely be more than one preference, and with tabs everyone gets to just set their own tab width.

    Yes, even the 3-space savages.

    • noisytoot@lemmy.ml
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      Tabs work fine as long as you don’t align stuff. If you do, you have to assume a tab size and mix tabs and spaces.

      • edward@lemmy.ml
        link
        fedilink
        arrow-up
        4
        ·
        edit-2
        1 year ago

        Generally aligning stuff isn’t nice. But if you do, it’s tabs up to whatever level of indentation you’re at then spaces the rest of the way. So you wouldn’t have to assume a tab size. And the tabs and spaces have different semantic meaning (indent vs alignment) so mixing them makes sense. It’s even built into Jetbrains IDEs, where it’s called “Smart Tabs”.

        Although really just adding a level of indent is better than aligning.

      • gun@lemmy.ml
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        This is a legit observation. However, I would argue that spaces needs a set indentation width anyway, so if tabs had a set indentation width that coders are expected to maintain when aligning code, it wouldn’t make a difference. Enforcing that in practice may be different, but in theory it works.

    • PeterPoopshit@lemmy.ml
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      1 year ago

      It’s OK, I replace all the tabs with spaces for uniformity. Tabs are stupid and they mess things up when I paste stuff. I like to watch the world burn.

  • projectazar@beehaw.org
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    I’d assume this is a product of space users being older and thus earning more, but that is wild speculation.

  • noisytoot@lemmy.ml
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    Seven semicolons are the correct way to do indentation (it even alliterates):

    int main
    (void) {
    ;;;;;;;printf("like this\n"); }
    
    • dystop@lemmy.ml
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      1 year ago

      the correct way is to never indent and never use whitespace. Saves memory.

      Your goal should be 1LOC every month, no more.

  • ZachAR3@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    Is there any actual advantage to using spaces? I have seen similar posts for a while and as a tab user I don’t understand why they are any better than just a tab

    • zalack@kbin.social
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      The indentation always looks the way you wrote it even in raw text viewers, is generally the argument.

    • StarkillerX42@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      So people who contribute to open source use spaces more.Thiss is probably because in a collaborative environment, you can’t guarantee how tabs will look on all systems, and it may look horribly on some. An open source project is most likely to enforce a standard, and that standard kind of has to be spaces.

      It makes me wonder what portion of the stack overflow survey is from people who aren’t working on collaborative projects at work.

      • edward@lemmy.ml
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        1 year ago

        But with tabs each contributor is free to choose how the indent looks. If it looks horrible on some system, that’s a configuration issue.

  • Joe_0237@lemmy.ml
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    So the two camps are:

    spaces: who want to be able to have accidental fractional indentation and so they can force anyone who may read their code in the future to see the indentation at the size that they intended.

    tabs: who want consistent bug-resistant and logical formatting, and for any future reader to decided for themselves thier own personal best indentation size.

    A possible explanation: people who want it their way at the expense of others are more likely to choose spaces, and are more likely to feel at home at a company that does exactly that in order to extract more profit from thier victi… customers.

  • edward@lemmy.ml
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    1 year ago

    Tabs make more sense because that’s exactly what they’re for, indents. Ignoring how it looks, which makes more semantic sense for an indent, <indent character> or <space character><space character>? You wouldn’t use a bunch of spaces to indent a paragraph, so why would you use it to indent code?

    • Vlyn@lemmy.ml
      link
      fedilink
      arrow-up
      0
      ·
      1 year ago

      I was pro tabs when I started out with software development. It just made sense, right? You press the key once, you get a single symbol, you have your indention, neat. And there is the argument that everyone can adjust their tab sizes, want it to be 2 spaces? 4? 6? Whatever? Awesome!

      Then you write actual code and this perception changes. Tabs make a mess, developers often align both code and comments to make sense. That alignment only works at x-spaces and utterly breaks if you change tab width.

      An example in C# with LINQ (just semi-random stuff):

      var test = customers.Where(c => c.Deleted == false
                                   && c.Enabled
                                   && c.HasProducts()
                                   && blockedCustomers.Contains(c.Id) == false);
      

      This kind of indention only works with spaces, not with tabs. And no, mixing tabs and spaces doesn’t work (like some users claim, that you can indent with tabs and then do alignment with spaces… nope, if you change tab with then your space alignment breaks).

      Honestly, I don’t care either way, I just use what my company uses and adapt. But till now it has always been spaces (even though I was team tabs in university) and now I actually prefer spaces as it just makes sense. It’s consistent, it’s easy, it works everywhere.

      Btw. the Lemmy code editor is shit, trying to align this was trial and error for a minute :-/

      • edward@lemmy.ml
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        1 year ago

        if you change tab with then your space alignment breaks

        No, it doesn’t? Here’s the exact same text content with different tab widths:

        The tabs are smaller but the spaces are the same, so the alignment remains.