Объективные причины использования пробелов вместо вкладок для отступов?

Существуют ли объективные причины использования пробелов вместо вкладок для отступов в соответствии с стандартом PSR-2, может ли кто-то предоставить:

  • факты,
  • Рекомендации,
  • специальная экспертиза

на котором основан стандарт PSR-2?

Авторы стандарта PSR-2 имели в виду нечто большее, чем «внешний вид», нечто большее, чем просто мнение, и многие люди не понимают, почему пространства лучше во время совместной работы.

Объяснение принятого ответа:

Согласно ответам Фарсидеса: хранилища могут быть точным примером того, почему пробелы находятся в PSR-2, как инструмент отступов. PSR-2 стандартно разработан для содействия совместной работе. Одиночные случайные пробелы в начале строки – при использовании вкладок – могут не отображаться в среде IDE и могут пробираться в репозиторий. Если несколько человек работают над одним и тем же файлом, очень возможно создать ненужные конфликты. Использование пробелов вместо вкладок позволяет легко поймать такое случайное пространство на глазном яблоке, и это, вероятно, причина, почему их использование становится стандартом.

    Факты:

    1. GIT и другие системы контроля версий обрабатывают белое пространство по-разному

    Основываясь на моем опыте, мы столкнулись с нашими проектами: GIT и другие системы контроля версий обрабатывают невидимые spaces + TABS разному, и это приводит к изменениям в линиях, которые на самом деле не были затронуты. Легко не заметить, когда случайно добавляется одно space + TAB = отступ, одинаковый в IDE, но GIT будет иметь значение при слиянии. Это наносит ущерб вашей способности эффективно сравнивать ревизии в управлении версиями , что действительно страшно. Это никогда не произойдет, когда у вас будут только spaces .

    2. Нейтрализуйте разницу в среде соавтора (редактор, ОС, настройки и т. Д.).

    Ширина закладки (в пробелах) зависит от вашей среды (текстовый редактор, ОС, предпочтения и т. Д.), Но ширина пространства везде одинакова . IDE достаточно умны, чтобы обрабатывать белые пространства до вашего личного вкуса, но результат, созданный для совместной работы, должен соответствовать стандартам.

    3. Разработчики, использующие пробелы, зарабатывают больше денег, чем те, кто использует вкладки

    Использование пробелов вместо вкладок связано с более высокой зарплатой на 8,6%. Использование пробелов вместо вкладок связано с высокой разницей в зарплате в качестве дополнительного 2,4-летнего опыта. (источник: Stack Overflow 2017 Developer Survey ).

    4. Многочисленные исследования по важности стиля кодирования

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

    1. Например, Бен Шнейдерман подтвердил это в Экспериментальных экспериментах в поведении программистов :

      когда программные заявления были организованы в разумном порядке , эксперты смогли запомнить их лучше, чем новичков. Когда заявления были перетасованы, превосходство экспертов было сокращено.

    2. Старое исследование 1984 года Соловей и Эрлих цитируется в « Code Complete» и поддерживает исследования «Элементы стиля программирования» :

      Наши эмпирические результаты вносят зубы в эти правила: не просто вопрос эстетики, что программы должны быть написаны в определенном стиле. Скорее, существует психологическая основа для написания программ обычным образом: у программистов есть большие надежды, что другие программисты будут следовать этим правилам дискурса. Если правила нарушены , то полезность, обеспечиваемая ожиданиями, которые программисты создали с течением времени, фактически аннулируется .