• @lightsecond@programming.dev
    link
    fedilink
    9
    edit-2
    10 months ago

    If you’re using monospaced fonts for writing code (please tell me you are) spaces make sure that the code will look roughly the same on everyone’s machine.

    def function(paramX: str,
                 paramY: str,
                 paramZ: str) -> int:
      pass
    

    If I’d used tabs, the second and third parameter might not align with the first.

    Also, left-side indentation is only a small part of the overall whitespace in code. You’re adding whitespace even when you write x = y. Spaces make sure that this whitespace around the = grows in the same scale as the indentation.

    • @aidan@lemmy.world
      link
      fedilink
      610 months ago

      Yes but it’s not your job to make sure your code looks the same for everyone else. If they’d prefer to read it with a different tab size, maybe they’re using a smaller screen, or a larger one because of vision issues there’s no reason they shouldn’t. You can use an optional editor config if you want it to be able to look the same for others.

      • @lightsecond@programming.dev
        link
        fedilink
        410 months ago

        It makes a difference when you’re working on a large project with lots of people. Even Linux mandates 1 tab = 8 spaces.

        The only argument i see in favour of tabs is the “i can change the width on my own machine!” which isn’t very convincing if you are working on a team and need to follow conventions every time you commit code. The indentation will keep looking weird on your machine.

        • @aidan@lemmy.world
          link
          fedilink
          310 months ago

          Yes so you can choose to follow that convention, but it being adjustable for reading is very useful for reading on different screensizes or with eyesight issues. Why not just set what you want in an editor config?

          • @lightsecond@programming.dev
            link
            fedilink
            310 months ago

            Well, life is about trade-offs and neither spaces or tabs are perfect in every scenario, but the industry overall prefers spaces over tabs nowadays and the tooling reflects that too. For me personally, as long as a project is consistent in its formatting and developers don’t need to fight its tooling, I’m happy with either. We can yak shave all we want (and lots of people are doing that on the internets) but I hope I at least answered your initial question about why people prefer spaces over tabs.