• xigoi@lemmy.sdf.org
    link
    fedilink
    arrow-up
    3
    arrow-down
    1
    ·
    1 year ago

    Tabs are designed for tabulation (hence the name), not indentation. The side effect is that a tab’s length changes based on its position in a line, which is terrible for programming. If you use tabs in the Python REPL, it looks like this:

    >>> def frobnicate_all(arr):
    >>>     for item in arr:
    >>>             frobnicate(item)
    
    • spartanatreyu@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      a tab’s length changes based on its position in a line

      What does this even mean? A tab is a tab.

      Tab’s don’t have multiple lengths inside a file, they all have the same length.

      That’s the point of tabs.

      • xigoi@lemmy.sdf.org
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        The horizontal tabulation character moves the cursor to the next column which is a multiple of the tabulation length. See the examples here: https://en.m.wikipedia.org/wiki/Tab_key

        At least for me, it renders like this:

        Screenshot of a part of the linked Wikipedia page

        Clearly the whitespace produced by each tab character has a different length.

        • spartanatreyu@programming.dev
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          The horizontal tabulation character moves the cursor to the next column which is a multiple of the tabulation length. See the examples here: https://en.m.wikipedia.org/wiki/Tab_key

          Yes

          Clearly the whitespace produced by each tab character has a different length.

          No, each tab has the same size, the text rendered over the top of the tabs are not the same size.

          Always remember the golden rule: Tabs for indentation, spaces for alignment.