There are two big holy war questions about code style in JavaScript: tabs vs. spaces and semicolons vs. no semicolons. Of course there are more, like where to put a comma in a multiline array declaration, but these two are causing the most casualties.
I was wondering if it’s worth our time. Can we all just adopt the most popular style if there is one, and stop arguing? So I’ve analyzed 100 most depended-upon npm packages and ran a survey with the same questions that ended up with 1169 respondents.
Two-space indentation is a clear winner, especially for open source projects.
Some developers don’t really know what they use. Here’s my favorite answer: “I just press tab and the editor formats it to something else I don’t even know”.
I was expecting to see numbers closer to 50% for the first two questions. But I was surprised by actual popularity of spaces for indentation in JavaScript: tabs are almost non-existent. Same for semicolons: most people use them, but the ones who don’t are very loud on Twitter.
The results show less diversity in code style of popular open source projects: more than half use 2 spaces with semicolons. Many still don’t use any tooling to validate code style.
It could also be because many popular open source projects are old but in the survey people described what they used on their latest project.
So if you’re starting a new JavaScript project Airbnb preset (2 spaces, semicolons, etc.) will be a good choice: your code style will be familiar for many developers.
Note Two projects of 100 are written in CoffeeScript. CoffeeScript itself is one of them. They and one with only native code were excluded from the results.