In our industry there are conversations (arguments, really) that probably aren’t very fruitful. Some of these can include:
- Tabs vs Spaces
- Squash merge vs no squash merge
- git branching strategy
- var or not to var
- Constructor injection vs dependency injection
- Database change control – deltas vs schema
I’m kicking off a series where we look at each one of these arguments. I personally don’t have strong feelings around these topics, I actually find them amusing.
But each of these topics are landmines that may or may not end a relationship, friendship, or result in a change in employment. I want to be sensitive to the strong feelings that exist around these, but I also ask that we take a step back and consider if there are really worth getting worked up about. Poking fun is one thing, but all-out flame wars are useless.
For my first post, I am going to look at the “Tabs vs Spaces” argument which, out of all the topics listed above, is probably the one I have the least energy around. I can use either tabs or spaces. I tend to be a spaces person, but that is only because it’s the Visual Studio default. Outside of that, I have no preference.
Why do some people prefer spaces? Like me, many prefer it because of the Visual Studio default. Others prefer it because spaces are not an editor spacing. If I load a file that uses spaces in any editor, it looks the same.
Why do some people prefer tabs? First, using tabs allows any developer to change the amount of indention by changing the indention in their editor. You also don’t have to worry about someone indenting with three spaces and not noticing it. Using tabs makes things more uniform.
But in the end, does it really matter? I don’t think so and find it a silly argument. Others however do not see this as fun and games. There’s even an argument that developers who use spaces make more money. There is a nice StackOverflow blog post on this. 🙂
Lastly, this issue can cause problems within relationships. There is a Silicon Valley episode dedicated to this topic.