Любителі прогалин перемогли прихильників табуляції в суперечці про відступи

Розробник з Google Феліпе Хоффа за підсумками аналізу понад мільярд файлів з 400 тисяч репозиторіїв на GitHub з'ясував, що форматування коду за допомогою прогалин в загальному випадку використовується частіше, ніж форматування за допомогою табуляції. Про це автор розповів у блозі на Medium.


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


Феліпе Хоффа вирішив визначити, які відступи використовуються частіше, для чого використовував аналітичний сервіс BigQuery. За допомогою сервісу автор відібрав і обробив 400 тисяч репозиторіїв, які отримали найвищу оцінку користувачів на GitHub за період з січня по травень 2016 року, обсяг оброблюваних даних при цьому склав 14 терабайт.

У розпорядженні дослідника виявилося більше мільярда файлів з розширеннями .java, .h, .js, .c, .php, .html, .cs, .json, .py, .cpp, .xml, .rb, .cc, .go - тобто, містять код на 14 різних мовах програмування. З вибірки були виключені файли, що дублюються, а також файли невеликого розміру, що містять менше десяти рядків з відступами. Якщо у файлі використовувалися відступи, оформлені і пробілами, і табуляцією, він враховувався в тій чи іншій категорії залежно від переважаючого методу форматування.

Виявилося, що в більшості випадків пробіли для оформлення відступів використовуються частіше, ніж табуляція. З 14 мов програмування тільки в двох табуляція поширена ширше, ніж прогалини: з невеликою перевагою у файлах .c (C, C++) і практично повсюдно у файлах .go (Go).

Проблема різних відступів існує досить давно і часто є причиною безрезультатних суперечок у професійному середовищі. Фактично, питання «прогалини або табуляція» являє собою зразковий холівар, в якому у обох сторін є свої аргументи (1, 2), але ніхто не має наміру переходити на іншу сторону. Явище також знайшло відображення в сучасній культурі - наприклад, одна зі сцен у серіалі «Кремнієва долина» будується саме навколо проблеми «прогалини або табуляція».

COM_SPPAGEBUILDER_NO_ITEMS_FOUND