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