+++
title = "Why Mixing Spaces and Tabs IS a Big Deal"
date = 2016-12-15

category = "code"

[taxonomies]
tags = ["tabs", "spaces", "clean code", "editors", "en-au"]
+++

Why something so small is actually a big deal.

<!-- more -->

Reading Reddit comments about [How terrible code gets written by perfectly
sane people](https://www.reddit.com/r/programming/comments/5gc871/how_terrible_code_gets_written_by_perfectly_sane/)
when I read this comment:

>>  spaces/tabs for indentation

> Is this a joke? I've been programming professionally from 2008 and I've not
> yet found an actual case where this was an actual problem. The code looks
> the same on everyone's screen if you set tab length in the editor to same
> as the amount of spaces in your indentation. It would take seconds to fix
> this :) I've never seen a tabs vs spaces argument go anywhere. It's such a
> dumb thing to complain about. Maybe because I'm young I don't have
> experience of bad code editors of old days but it's 2016 now. It's not a
> big deal anymore.

Unfortunately, I lost the time to properly reply to this comment, but here it
goes:

No, it *isn't* a joke. If you've read [Clean Code](https://www.goodreads.com/book/show/3735293-clean-code?from_search=true),
you'd see that, at some point, Uncle Bob mentions that there isn't an actual
experiment about it, but his team personally found that a programmer that cares about
consistency and follows coding standards are prone to write less buggy code.

I get what he means: If someone cares about the small stuff,
they also care about the big stuff. It doesn't mean that people that ignore
coding standards (and the difference between using tabs and using spaces)
doesn't care about the big stuff; but on my own experience in those 28
years in the field proved the opposite: people who cared about
"putting the code at the door" without worrying about following coding standards
(and we can add tabs vs spaces here), proper code documentation,
separation of concerns, a good level of abstraction, tend to write
horrible/unmaintable code.

*This* is why mixed spaces/tabs is bad: it means that whoever didn't care enough
with something so small as the coding standard, probably didn't care
about the bigger stuff. Their only worry was to deliever stuff, no matter
what. "And no matter what" usually results in terrible code.

So, while not an "actual problem", it is an indicator that something really
terrible is going on. So, no, it isn't a joke and yes, it is a big deal. And
it has absolutely nothing to do with "bad code editors", it's a problem with
"bad coders".
