Есть такая холиварная
тема — code indentation.
Особое значение отступы приобретают в
языках типа Python. Что нам
говорит руководящий документ:
For new projects,
spaces-only are strongly recommended over tabs. Most editors have
features that make this easy to do.
Есть статья, в которой
перечисляются проблемы, возникающие
при использовании табуляции вместо
пробелов
Поскольку использование
табуляции (код ASCII 9) обычно вызывает
всякие проблемы с кодом, используйте
хорошее правило:
1) Никогда не используйте
табуляцию
Reasons not to use hard tabs
* Due to legacy, different text
editors treat hard tabs different. UNIX text editors prefer hard tab
is 8 spaces, Windows text editors and IDEs (Eclipse) prefer that a
hard tab is 4 spaces.
* The hard tab length agreement
between different text editors cannot be reached
* The hard tab length agreement
between people cannot be reached
* Thus, hard tabs may break
source code readability and editability if there is more than a
single person editing the file. They will open the file in an editor
with different tab settings, edit it and next time you open the file
it is ruined and all indentations are wrong.
* This is even worse on white
space sensitive languages (Python, CoffeeScript) as this might
actually cause syntax errors or programming logic errors
Лично я не считаю
перечисленные проблемы серьезными или
заслуживающими внимания. Все они решаются
довольно легко настройками редактора
или пре/пост конвертацией файлов.
Зато у меня есть ровно
две причины, по которым я хочу использовать
табуляцию вместо пробелов для выравнивания
кода:
1. идейная причина —
концептуально именно табуляция
предназначена для «отбивки» и выравнивания;
2. практическая причина
— когда я использую пробелы для
выравнивания и случайно удаляю один из
четырех (обычно) пробелов отступа, меня
крайне раздражает необходимость искать
микроскопический сдвиг (ширина пробела
это сколько пикселов?) и вбивать
недостающий пробел.
Когда я использую
табуляцию, случайное удаление одного
символа приводит к очень заметному
сдвигу строки, что исправляется тычком
в кнопку «Tab», как и
положено. С пробелами так не выходит.
Но как человек
законопослушный, я буду выполнять
рекомендации PEP-0008 и
использовать пробелы для отступов в
Python. Может быть, со временем привыкну и
перестану раздражаться неуместностью
и неудобностью пробелов в отступах.
Комментариев нет:
Отправить комментарий