Специалист по обработке и анализу данных из Stack Overflow Дэвид Робинсон сопоставил данные об уровне зарплат профессиональных программистов с данными о предпочитаемой технике форматирования кода и обнаружил, что любители пробелов в среднем получают больше денег, чем программисты, использующие табуляцию. Об этом сообщается в блоге Stack Overflow.
Для удобочитаемости программного кода подавляющее большинство программистов использует форматирование отступами — это позволяет выделить в коде отдельные блоки. При этом одни разработчики создают отступ несколькими пробелами, в то время как другие пользуются табуляцией. Основная проблема такого подхода заключается в том, что при работе над одним проектом нескольких человек, использующих разные отступы, форматирование сбивается и код становится трудно читаемым.
Проблема разных отступов существует достаточно давно и часто является причиной безрезультатных споров в профессиональной среде. Фактически, вопрос «пробелы или табуляция» представляет собой образцовый холивар, в котором у обеих сторон есть свои аргументы(1, 2), но никто не намерен переходить на другую сторону.
Дэвид Робинсон воспользовался данными опроса разработчиков за 2017 год, проведенного Stack Overflow. Из 28657 разработчиков, обозначивших себя профессиональными программистами, 40,7 процента используют табуляцию, а 41,8 процента форматируют код пробелами (оставшиеся 17,5 процентов заявили, что используют оба метода форматирования).
Из опрошенных 12426 предоставили данные о годовой зарплате, что позволило Дэвиду Робинсону после пересчета локальных валют в доллары США сопоставить данные о доходах с предпочитаемой техникой форматирования кода. Оказалось, что любители пробелом в среднем получают больше, чем сторонники табуляции, хотя с увеличением стажа разрыв между зарплатами несколько сокращается. Программисты, использующие оба метода форматирования, в среднем зарабатывают столько же, сколько и разработчики, пользующиеся табуляцией.
Кроме общего сопоставления исследователь также разбил данные по странам. Оказалось, что меньше всего разрыв в зарплатах заметен в Германии, а самый значительный приходится на Индию.
Всего по итогам анализа данных Дэвид Робинсон выделил несколько ключевых признаков, связанных с уровнем дохода профессионального программиста: пробелы или табуляция, страна, опыт программирования, сфера работы и язык программирования, уровень образования, участие в проектах с открытым исходным кодом, программирование как хобби и размер компании. По оценкам исследователя, в среднем пробелы вместо табуляции связаны с повышенной на 8,6 процента зарплатой. Для наглядности автор указывает, что такая прибавка также эквивалентна дополнительным 2,4 года программирования и отмечает, что корреляция не обязательно указывает на причинно-следственную связь.
Ранее разработчик из Google Фелипе Хоффа по итогам анализа более миллиарда файлов из 400 тысяч репозиториев на GitHub выяснил, что форматирование кода с помощью пробелов в общем случае используется чаще, чем форматирование с помощью табуляции. Холивар «пробелы или табуляция» также нашел отражение в современной культуре — например, одна из сцен в сериале «Кремниевая долина» строится именно вокруг этого «извечного вопроса» программирования.