diff --git a/content/why-mixing-tabs-and-spaces-is-a-big-deal.md b/content/why-mixing-tabs-and-spaces-is-a-big-deal.md new file mode 100644 index 0000000..84913bd --- /dev/null +++ b/content/why-mixing-tabs-and-spaces-is-a-big-deal.md @@ -0,0 +1,56 @@ ++++ +title = "Why Mixing Spaces and Tabs IS a Big Deal" +date = 2016-12-15 + +category = "code" + +[taxonomies] +tags = ["tabs", "spaces", "clean code", "editors"] ++++ + +Why something so small is actually a big deal. + + + +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".