Табуляции против пробелов? Не Только Спорный, Но И Экономический


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

Удивительный вывод о том, что разработчики, использующие пробелы для отступов, зарабатывают больше денег, чем те, кто использует вкладки, исходит от ученого по данным Stack Overflow Дэвида Робинсона в блоге, в котором также сообщается, что необработанные данные для опроса разработчиков Stack Overflow доступны для загрузки.

Вопрос «есть ли у вас вкладки или пробелы для отступов кода» был включен в опрос о переполнении стека 2017 года, проведенный в период с 12 января по 6 февраля. Из более чем 64 000 разработчиков из 213 стран, принявших участие, почти 40 000 ответили на него, и в целом преобладали вкладки, причем 43% использовали их по сравнению с 38%, использующими пробелы, и 19% как вкладки, так и пробелы. 

В своем анализе данных Робинсон обращался только к профессиональным разработчикам, и здесь пользователи Пространства превосходили пользователей вкладок с небольшим отрывом-от 42% до 41%, а ответ на оба вопроса сократился до 17%. Из этой группы почти половина предоставила свою зарплату, и на основе этих данных Робинсон составил эту диаграмму заработной платы по годам опыта для трех групп.

Робинсон уточнил:

Средний разработчик, использующий пространства, имел зарплату в размере 59 140 долларов, в то время как средний разработчик вкладок имел зарплату в размере 43 750 долларов. (Обратите внимание, что все результаты были конвертированы в доллары США из валюты каждого респондента). Разработчики, которые ответили “Оба”, как правило, были неотличимы от тех, кто ответил “Вкладки”.

Поскольку зарплаты сильно различаются в зависимости от страны, Робинсон исследовал, может ли региональное предпочтение типа отступа объяснить результат.

Посмотрев на страны, в которых было больше всего респондентов, Робинсон пришел к выводу:

Эффект меньше в Европе и особенно велик в Индии, но он проявляется в каждой стране, что говорит о том, что это не единственный сбивающий с толку фактор.

Затем он исследовал, может ли разрыв табуляции/пробелов быть объяснен языками, используемыми респондентами, и их типом разработчика — data scientist, web, embedded и т. Д., И обнаружил, что эффект сохраняется.

Идя дальше он спросил:

Если мы контролируем все факторы, которые, как мы подозреваем, могут повлиять на зарплату, насколько сильно влияет выбор вкладок/пробелов?

Для исследования этого Робинсон применил линейную регрессию, прогнозируя заработную плату на основе следующих факторов: 

Вкладки против пробелов

Страна

Многолетний опыт программирования

Тип и язык разработчика

Уровень формального образования (например, бакалавриат, магистратура, докторантура)

Вносят ли они свой вклад в открытый исходный код

Программируют ли они как хобби

Размер компании

Вывод был таков:: 

Модель подсчитала, что использование пробелов вместо вкладок приводит к повышению заработной платы на 8,6% (доверительный интервал (6%, 10,4%), p-значение < 10^-10). (Предсказав логарифм заработной платы, мы смогли оценить процентное изменение, которое каждый фактор внес в зарплату, а не сумму в долларах). Другими словами, использование пробелов вместо вкладок стоило дополнительных 2,4 лет опыта. Одна вещь, которая удивила меня в этих данных, заключалась в том, что пробелы не были более распространены, учитывая результат, о котором мы сообщили в прошлом году в результате анализа 400 000 репозиториев GitHub, которые вместе содержали 1 миллиард файлов и 14 терабайт кода, который показал, что вкладки превосходят вкладки с большим отрывом, см. Вкладки Или Пробелы - Один миллиард файлов Позже Ответа.   Это исследование показало очень разные пропорции использования вкладок в зависимости от языка - например, разработчики Go всегда используют вкладки, а большинство программистов C делают это. С другой стороны, разработчики Ruby используют только пробелы, как и большинство питонистов и большинство веб-разработчиков (JSON, HTML и в меньшей степени JavaSrcipt). Глядя на другой анализ, проведенный ведущими репозитариями GitHub от Uku Pattak, мы обнаруживаем языки, которые используют пробелы, исключительно или почти исключительно, включая Clojure, Rust, F#, Elixir, которые, как мы сообщали еще в марте (см. Удовлетворенность разработчиков оплатой по Переполнению стека), являются самыми высокооплачиваемыми технологиями во всем мире в опросе Переполнения стека.  Scala, которая является второй по величине высокооплачиваемой технологией в США, также является языком только для космоса. С другой стороны, Go, исключающий вкладки, является самой высокооплачиваемой технологией в США и занимает 5-е место в мире, что противоречит попыткам гипотезы о том, что языки, которые настаивают на пространствах, по своей сути лучше оплачиваются. Какова бы ни была причина, по которой Робинсон обнаружил, что это может помочь смягчить дебаты о вкладках и пробелах, которые могут стать очень жаркими, даже на личном уровне. Если вы являетесь поклонником сериала "Силиконовая долина", вы вспомните, как он разрушил многообещающие отношения Ричарда Хендрика с Винни, которая написала код с пробелами вместо вкладок, заявив:  "я ни за что не буду с кем-то, кто использует пробелы вместо вкладок." Если вы признаете, что использование пробелов, а не вкладок, может принести вам значительно более толстый пакет оплаты, трудно придерживаться такого отношения. 


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