Tabs are objectively better than spaces
gomakethings.com
external-link
Yesterday, I shared some spicy takes. A few were particularly controversial—most notably, that I correct Gif the correct way (with a soft G)—but I also got a lot of emails asking me to elaborate on a few of them. Today, I wanted to talk about how tabs are objectively better than spaces. This won’t take long. Tabs let you define how big you want each indent to be, and spaces do not.
z3bra
link
fedilink
5
edit-2
1Y

When I talk about alignment it’s not about function arguments, but values, “=” signs and such. You simply cannot use tabs for that because alignment must be fixed and indentation independent:

CreateOrderRequest(
    user,
    productDetails     => order.detail,
    pricingCalculator  => DEFAULT_CALCULATOR,
    order              => order.internalNumber)

Yeah I agree I don’t find alignment very useful. It’s more work for dubious benefit, and god forbid you change one of the lines.

PHLAK
link
fedilink
English
51Y

This kind of “manual” alignment should be avoided for many reasons including the fact that adding/removing/changing of one parameter here may force you to modify multiple lines which on it’s own is annoying but this will also show up in the diff during review making it harder to grep what was actually changed.

z3bra
link
fedilink
21Y

I personally favor code readability over patch readability. But I reckon this is a matter of preference so I can understand how you might not like that.

@realharo@lemm.ee
link
fedilink
10
edit-2
1Y

I normally avoid that too, I find it hurts readability more than helps, plus a proper IDE will separate it with color anyway.

But yeah, the newline comment doesn’t apply to this.

z3bra
link
fedilink
11Y

To each their own indeed. But my rule of thumb is: only use tabs when there’s no other character before it (aka, start of line).

Nate Cox
link
fedilink
English
11Y

The emacs wiki agrees and has the correct take on this: https://www.emacswiki.org/emacs/SmartTabs

It seems like this basic guideline, tabs to indent and spaces to align, solves the problem for everyone. It doesn’t matter what your tab width is, it’ll look “right” regardless.

Create a post

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person’s post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you’re posting long videos try to add in some form of tldr for those who don’t want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



  • 1 user online
  • 1 user / day
  • 1 user / week
  • 1 user / month
  • 1 user / 6 months
  • 1 subscriber
  • 1.21K Posts
  • 17.8K Comments
  • Modlog