1. Чтобы помочь писать код с нуля и сосредоточиться на более высоком уровне абстракции.

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

Например, Python не применяет типы в сигнатурах функций, поэтому вы можете передать логический объект, int или гигантский объект. В этом случае, возможно, вы могли бы просто выбрать стиль, например сначала наибольшую переменную (например, объект), или сначала наименьшую переменную (логическое значение), или необязательную переменную последней. Поэтому, чтобы упростить сопровождение или удобочитаемость, вы должны просто выбрать соглашение.

В отличие от этого, Java применяет принудительное исполнение, поэтому вам необходимо явно определить тип. Итак, здесь стиль встроен прямо в язык, с некоторой свободой, как при размещении переменных в сигнатуре функции.

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

2. Для сотрудничества

Здесь стиль может означать то, что команда считает наиболее полезным, будь то скорость разработки (отладка и тестирование), удобочитаемость (строки кода), ремонтопригодность (организация функций) и т. Д. Здесь лучшим стилем может быть то, что служит цели организации наилучшие.

3. Скорость и функционирование алгоритмов.

Можно написать очень трудный для чтения и ужасно стилизованный код, чтобы выражения были очень компактными на уровне языка (мы слышим термин «Pythonic»), или на уровне алгоритма (уродливый и компактный код, который работает эффективно), или где-то в между (минимизация Javascript). Стиль здесь предназначен для обеспечения вычислительной эффективности кода в зависимости от языка.

4. Эстетика

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

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

Даже простое мытье посуды, уборка комнаты или в более формализованных условиях, уход за альпинариями или заваривание чая, имеет чисто эстетический компонент, так почему бы не написать код?

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