Вкладки v Пробелы — Больше анализа


Недавнее открытие, что разработчики, которые используют пробелы для отступов, зарабатывают больше денег, чем те, кто использует вкладки, привело к нескольким поднятым бровям и озадаченным взглядам. Теперь повторный анализ данных обнаруживает дальнейшие корреляции.

Проблема с вкладками и пробелами вряд ли скоро исчезнет, тем более что разработчики, как правило, сильно переживают по этому поводу. Идея о том, что вместо того, чтобы просто личные предпочтения, которые разработчики с обеих сторон будут изо всех сил защищать, была рассмотрена в сообщении 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 и открытый исходный код, похоже, в целом имеют более низкие зарплаты. Тип окружающей среды трудно измерить непосредственно в опросе, и оба эти фактора указывают только в этом направлении.

Идея о том, что разница между двумя очень разными рабочими средами объясняет разницу в заработной плате, действительно кажется убедительной. Но в конце дня у вас, скорее всего, будут укоренившиеся взгляды на метод отступов. Главными вопросами, безусловно, должны быть согласованность — и пространства, по-видимому, превосходят в этом отношении.


Добавить комментарий