Недавнее открытие, что разработчики, которые используют пробелы для отступов, зарабатывают больше денег, чем те, кто использует вкладки, привело к нескольким поднятым бровям и озадаченным взглядам. Теперь повторный анализ данных обнаруживает дальнейшие корреляции.
Проблема с вкладками и пробелами вряд ли скоро исчезнет, тем более что разработчики, как правило, сильно переживают по этому поводу. Идея о том, что вместо того, чтобы просто личные предпочтения, которые разработчики с обеих сторон будут изо всех сил защищать, была рассмотрена в сообщении blg от Дэвида Робинсона, о котором мы сообщали в прошлом месяце.
Используя данные недавнего исследования переполнения стека, он обнаружил, что
использование пробелов вместо вкладок стоило дополнительных 2,4 лет опыта.
Страсть, которую люди проявляют к тому, какой метод отступа они предпочитают, даже легла в основу сюжетной линии в Силиконовой долине. Если вы пропустили его, этот клип стал вирусным в прошлом году:
Что я нахожу самым удивительным в этом клипе на YouTube, так это не то, что у него было 455 725 просмотров, а то, что у него было 464 комментария, большинство из которых посвящены проблемам, которые короткому клипу удается аккуратно обобщить.
Аргумент в пользу вкладок заключается в том, чтобы избежать нажатия клавиш и снизить требования к хранилищу.
Аргумент против вкладок заключается в том, что они более сложны. Все, что вам нужно, — это редактор или среда и, которая не понимает вкладок, и файл бесполезен. Существует также небольшая проблема, связанная с тем, что вкладки взаимодействуют с текстом непредсказуемым образом. Например, если текст прошел остановку табуляции, то вкладка переходит к следующей. Это кажется невинным, пока кто-то не изменит позиции вкладок, когда все может пойти не так. Лобби pro spaces также указывает, что настройки вкладок могут варьироваться от машины к машине, поэтому пробелы лучше подходят для согласованности. Речь идет о простоте и контроле над торговым пространством для сложности.
В настоящее время проводится опрос Opensource.com что показывает, что пробелы незначительно более популярны, чем вкладки. Ключевым результатом, однако, является то, что «Отсутствие сильных предпочтений» имеет только около 20% акций.
Данные StackOverflow доступны для скачивания, и Ева Габасова решила изучить их и попытаться пролить свет на вопрос о том, почему места должны приравниваться к более высокой оплате независимо от уровня опыта.
Ограничив свой анализ американскими разработчиками, она сначала сравнила эффект включения информации о методе отступов в регрессионную модель и обнаружила, что как полная модель (с включенной информацией о вкладках и пробелах), так и уменьшенная модель (без этой информации) объясняют около 40% дисперсии заработной платы. Глядя на то, какие переменные приобрели большее значение при прогнозировании заработной платы в уменьшенной модели, она определила:
Многолетний опыт программирования
Вклад в открытый исходный код
PHP
К сожалению, больше нет упоминания о PHP, но это особенно низкооплачиваемая технология в США, согласно опросу Stack Overflow 2017, см. Удовлетворенность разработчиков оплатой в соответствии с переполнением стека.
Анализ Габасовой показывает, что вклад в открытый исходный код предсказывает более высокую зарплату независимо от опыта.
Добавление информации о методе отступа показывает, что пробелы лишь незначительно более популярны, чем вкладки, среди тех, кто в США не участвует в работе с открытым исходным кодом, и что в глобальном масштабе вкладки более популярны.
С другой стороны, пространства гораздо более популярны среди тех, кто вносит свой вклад в открытый исходный код, особенно среди разработчиков из США.
На этом этапе своего анализа Габасова пишет::
Я думаю, что здесь мы приближаемся к потенциальным причинно-следственным объяснениям. Основное преимущество использования вкладок заключается в том, что вы можете установить, как они отображаются в среде IDE, с пробелами макет фиксирован. Это означает, что один и тот же код может выглядеть очень по-разному для разных людей при использовании вкладок. И когда люди начинают смешивать их, один человек использует вкладки, а другой-пробелы в одном файле, это приводит к беспорядку. Моя теория заключается в том, что когда разные люди работают над проектами с открытым исходным кодом вместе без принудительного стиля кодирования, возможная путаница с форматированием подталкивает людей к использованию пробелов просто потому, что код согласован для всех.
График заработной платы на основе взносов с открытым исходным кодом и метода отступов показывает этот вариант для американских разработчиков:
Габасова комментирует:
Младшие разработчики, использующие как вкладки, так и пробелы, вносящие вклад в открытый исходный код, имеют несколько более высокую среднюю зарплату, чем люди, использующие пробелы, но не вносящие вклад. А участники с открытым исходным кодом, которые имеют более чем 15-летний опыт работы и используют вкладки, имеют более высокую среднюю зарплату, чем люди, которые используют пробелы. Кроме того, если у вас менее 15 лет профессионального опыта и вы используете вкладки, вклад в открытый исходный код не связан с более высокой зарплатой. Но если вы используете пробелы, вам лучше заплатят, если вы также внесете свой вклад в открытый исходный код, чем если вы этого не сделаете.
Уже напомнив нам, что корреляция не подразумевает причинно-следственной связи, Габасова затем поискала другую переменную, которая отличала более высокооплачиваемых разработчиков от остальных, и с удивлением обнаружила, что это был контроль версий, причем Git ассоциировался с более высокой оплатой по сравнению с Team Foundation Server:
Глядя как на предпочтение отступов, так и на выбор управления версиями, именно использование Git является фактором, который коррелирует с высокой зарплатой:
Комментируя это Габасова пишет:
Интересно, что система контроля версий нарушает модель более высоких зарплат, всегда связанных с пользователями пространства. Компании, использующие Git, имеют в основном более высокие зарплаты независимо от метода отступа, по крайней мере, для разработчиков с опытом работы до 10 лет! Люди, использующие вкладки с Git, имеют большую зарплату, чем люди, использующие пробелы с TFS, на всех уровнях опыта. В группе Git using люди, использующие пробелы, по-прежнему получают более высокую зарплату, чем люди, использующие вкладки. Но в группе TFS картина не так ясна: люди, использующие пространства с TFS, имеют самые низкие зарплаты для некоторых групп.
Вывод, к которому она приходит, таков::
Подводя итог, можно сказать, что сочетание вклада с открытым исходным кодом и использования системы контроля версий объясняет, по крайней мере, некоторую разницу в зарплатах между пользователями tab и spaces. Это не означает, что вы должны начать использовать Git и вносить свой вклад в открытый исходный код, чтобы получать больше денег (хотя было бы здорово, если бы вы все равно это сделали!).
Я считаю, что эти два фактора вместе больше указывают на разные среды и разные типы компаний, насколько они традиционны и как они используют современные технологии. Более традиционные компании старой школы, которые не используют Git и открытый исходный код, похоже, в целом имеют более низкие зарплаты. Тип окружающей среды трудно измерить непосредственно в опросе, и оба эти фактора указывают только в этом направлении.
Идея о том, что разница между двумя очень разными рабочими средами объясняет разницу в заработной плате, действительно кажется убедительной. Но в конце дня у вас, скорее всего, будут укоренившиеся взгляды на метод отступов. Главными вопросами, безусловно, должны быть согласованность — и пространства, по-видимому, превосходят в этом отношении.