Вкладки Или Пробелы – Один Миллиард Файлов Позже Ответ

Эта проблема разделяет мир программирования, как никакая другая тема. Это кросс-платформенное, кросс-языковое разделение, которое противопоставляет коллег-программистов варварам, которые просто неправильно форматируют свой код. Для отступов это должны быть пробелы или вкладки?

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

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

Этот аргумент с вкладкой space v заставил гуглера Фелипе Хоффу пойти на крайние меры, чтобы узнать правду. Он написал программу, которая исследовала 400 000 репозиториев GitHub, в которых содержался 1 миллиард файлов и 14 терабайт кода, чтобы ответить на один вопрос – вкладки или пробелы. 

Результаты удивительны. Нет никаких сомнений в том, что пробелы превосходят вкладки с большим отрывом. Что действительно интересно, так это разбивка по языку:

 В большинстве языков, похоже, есть программисты, которые действительно не знают, где находится клавиша tab. Но что такое с программистами C и Go? Что бы ни заставляло программиста C использовать вкладки больше, чем пробелы, это, похоже, не влияет на программистов C++, которые, похоже, потеряли клавишу tab почти так же, как ребята из Python и Ruby.

Подожди минутку… Программисты на Python не используют вкладки?! Это кажется почти антипитоническим, но это правда, PEP 8-руководство по стилю для кода python – говорит довольно ясно:

Пробелы являются предпочтительным методом отступа.

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

Python 3 запрещает смешивать использование вкладок и пробелов для отступов.

Код Python 2, содержащий отступы со смесью вкладок и пробелов, должен быть преобразован в использование исключительно пробелов.

При вызове интерпретатора командной строки Python 2 с параметром –t он выдает предупреждения о коде, который незаконно смешивает вкладки и пробелы. При использовании-tt эти предупреждения становятся ошибками. Эти варианты настоятельно рекомендуются!

Что ж, это объясняет это и оставляет программистов C единственной загадкой табуляции.

Так почему же так много программистов на C, но не на C++, используют вкладки?

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *