If there was such a thing as a crusade between software developers, it would be over tabs or spaces. How important is this difference between the spacers and the tabbers? Is it important at all?
It turns out, this difference might actually matter in a big way. Spacers tend to be more concerned with consistency in their coding format, while tabbers are less likely to be concerned about how their work appears on different screens. Perhaps unsurprisingly, companies seem to place more emphasis on the consistency that comes from using spaces.
Yes, we’re saying that those who use spaces make more money than those who use tabs.
It might sound outlandish, but the Stack Overflow Survey of 2017 proves just that: spaces make more money than tabs. No matter how much experience the coders have, the same trend rings true. So what’s with this difference in income? Is there some kind of weird developer voodoo at play that we don’t know about? From HBO’s Silicon Valley to the office break room, you’ll likely never hear the end of this debate. While we can all agree there’s no difference as far as the coding is concerned, we’d like to get to the bottom of this issue once and for all: What exactly is it that makes these spacers earn more, on average?
Keep reading for a breakdown of the findings and how they apply to real-world development.
Usage Demographics
While style guides are known to vary widely between languages—and even within languages!— just over 40% of surveyed developers use tabs, and just over 40% of developers use spaces. The remaining percentage is comprised of people who favor both equally, which doesn’t indicate the same wage gap. Of those surveyed, 72% were web developers, with desktop application developers and mobile developers making up smaller percentages. Almost 20% of those surveyed had over 20 years of experience, while there was also a substantial group with between three to eight years of experience.
While you might think these findings are related to programing language or even country of origin, that’s not really the case. The same wage gaps between spacers and tabbers existed in different countries across the globe, and there were no clear trends based on language, either. While mobile developers are more likely to use tabs and DevOps developers will likely use spaces, the same wage gap exists regardless of years of experience or company size. We can expect a coder with more experience to make more annually, but the use of spaces over tabs can give a developer over two years’ lead in his or her income level (based on reported income levels).
It doesn’t matter if the surveyed individual was in the United States, India, United Kingdom, Germany, Canada, or beyond. The same trends still occurred. Weirdly enough, Bill Gates himself has reportedly admitted to preferring tabs. Google took to settle this debate by parsing a billion files amongst 14 programming languages. They found that while spaces were the most popular except in Go and C, there was still no consensus.
Will the tabs or spaces argument ever end?
So what’s the takeaway? While we might not ever be able to have any concrete answer, we can make an educated hypothesis that this might be based on the rise of collaborative development.
A possible answer: open source
To understand one possible reason behind this wage gap, we have to look at the nature of development. According to Evelina Gabasova, a machine learning researcher, those who produce or contribute to open source code are much more likely to use spaces rather than tabs. This data goes beyond country borders, and this might be just the solution we’ve been looking for to end this debate once and for all.
Why would open source coders be more likely to use spaces rather than tabs? One of the main advantages of tabs is seeing exactly how they’re displaying in the IDE. The spaces basically mean the layout is fixed. With tabs, the coding layout might end up looking very different for different screens. If there’s a lot of transfer between computers, this starts to become a mess.
Because open source coders are more likely to be working with an app or software that will be used by numerous people, they need the stability of spaces. There’s a stronger enforced coding style within open source projects because these codes are used collaboratively. While correlation doesn’t necessarily imply causation, this is one of the only leading reasons behind the income differences in this ongoing debate. Open source coders just might have the right skillset to earn them a little more income.
Open source coders prefer spaces over tabs.
Salary and open source
Now that we have a reason to believe open source development might be to blame, it’s time to dive even deeper. Do those who work with open source tend to have higher salaries than those who work with other applications? It might not be that clear.
Evelina Gabasova reviews this salary difference extensively in her own research based on the original survey. She finds some evidence that suggests that the higher salaries of those who contribute to open source and use spaces can be attributed to years of experience. Specifically, those who have less than 15 years of experience and use both spaces and tabs will likely have a higher salary. The effect is clearest for those who have under five years of experience total. This might be why the results seem so extreme overall. Junior developers seem to make less (on average) if they’re tab users. After 15 years of experience, there is minimal (if any) difference to report.
Junior developers who use tabs tend to make less than those who use spaces.
Tabs or spaces: which is right?
To end the debate, there is no real “right way.” There might even be a time and place for both tabs and spaces depending on your role in the development process. The debate comes down to readability, storage space, and productivity. When working with a large team, you need to be consistent. As we discussed before, tabs can lead to problems in readability depending on the screen size. Nobody wants their project code to be messy, especially when working between computers.
So you would think the solution is spaces, right? Maybe. Some coding styles, like the Linux kernel, prefer tabs over spaces, and it’s not the only one. You can also make the argument that tabs take up fewer keystrokes and less disk space. When you’re trying to be as efficient as possible, it makes sense to opt for tabs.
You’re always likely to encounter fanatics who claim only one way is valid and everyone else is a disgrace. While it’s true spaces always represent a single column, you probably couldn’t be that extreme with your decision. Remember, correlation isn’t causation.
There will always be fanatics who have extreme preferences for either tabs or spaces.
While the debate is ongoing, you might want to second-guess your decision if you’re firmly on the tab team. After all, who would pass up the opportunity for a higher salary? Open source coding might prove to be the hidden answer to the tab or space argument, but it also might just be another correlation that falls short. Ultimately, it’s up to you and your team to choose the style that suits your needs. Just make sure you can stick with it.
An ongoing discussion
What do these median salary findings mean for the world of tech? The programming industry is always evolving, and it’s interesting to assess these types of statistics that transcend global boundaries. When it comes to spaces and tabs, it’s such a minor thing that divides all of us in one way or another.
Like the iconic scene in Silicon Valley, there’s a reason we’ve aligned ourselves with one side of the good fight. Whether you’re team tabs because you value efficiency or are devoted to spaces because you always need to be consistent, odds are these lines will only continue to grow. As the programming industry continues to grow as well, the demands for more languages, more development, and more styles will grow with it.
What we can all agree on is the need to manage our code after projects are launched. Consistent, easy to manage development styles are going to be necessary as more open source programs become mainstream. Similarly, consumer demands create pressure to publish frequent updates, new add-ons, and more digital products. Companies always value developers who know how to work with a team, keep their code organized, and who look for ways to be more efficient. Spacers fit that bill.
As we continue to explore the difference between spaces and tabs, developers also need to find more ways to manage their own code. Developments in application performance management might be pressuring more tabbers to change sides since these performance management solutions rely on consistency. Thanks to increased consumer demand for more quality applications, APM calls for a world filled with more spacers.
As of today, both camps are equally protective of their respective practices. The best consensus in the programming industry is that developers need to use what works for them. There truly is no right answer… though, there might be a more profitable one.
Are you a spacer or a tabber? What’s your take on this epic debate? Let us know in the comments.
You can also stay updated by subscribing to iTechCode.