Пробелы или табуляция? Двойные или одинарные кавычки? Открывать фигурную скобку с новой строки или в «египетском» стиле? Вокруг этих соглашений оформления исходников постоянно бурлят священные войны. Впрочем, мало кто решается спорить с тем, что если работаешь в команде, то писать надо так, как в этой команде принято, или хотя бы переформатировать свой код в принятом стиле перед коммитом. В конце концов, если бы у какого-то стиля было абсолютно решающее преимущество перед другим, то и споров бы не возникало, так что, возможно, самое мудрое решение — делать как все.
А как делают все? На сайте sideeffect.kr собрана статистика коммитов Гитхаба за несколько месяцев для языков JavaScript, Ruby, Scala, C#, Java и Python. Для каждого языка выделены несколько типичных разногласий в оформлении кода, и подсчитано, к какому варианту склоняется сообщество.
В самом популярном холиваре «пробелы против табуляции» решительную победу одержали пробелы. Больше всего любителей табуляции остаётся в лагере Java — 24,6%. Меньше всего — среди программистов Scala — 3,3%. Зато в некоторых других вопросах единодушия нет и в помине. Так, любителей использовать верхний регистр для именования констант в Java лишь на 3% больше половины, а пишущие на C# используют три разных стиля оформления констант (капсом, в паскалевском стиле и как попало) с почти равной частотой. Почти поровну разделились и сторонники двойных и одинарных кавычек в JavaScript.
Некоторые соглашения противоположны для разных языков. Так, подавляющее большинство (86%) программистов C# открывают фигурную скобку на новой строке. В Java всё наоборот — лишь 19,8% придерживаются такого соглашения. Остальные используют «египетский» стиль.
Этот проект был создан для конкурса GitHub Data Challenge II по анализу и визуализации открытых данных GitHub, его код опубликован на Гитхабе под лицензией MIT, так что туда можно добавлять новые языки и новые соглашения по оформлению кода.
Автор: ilya42