Что это такое
cloc — практичная утилита командной строки для подсчета строк в исходниках. Она отдельно показывает код, комментарии и пустые строки, а результат группирует по языкам программирования.
Проект появился задолго до GitHub-эпохи: сначала жил на SourceForge с 2006 года, а в 2015 году переехал на GitHub. Такая история хорошо объясняет его характер: это зрелый маленький инструмент, который годами решает одну задачу.
Что внутри
Основная версия написана на Perl, а готовые релизы позволяют запускать cloc без сложной сборки. Для Windows есть отдельный исполняемый файл, а для Linux и macOS часто достаточно пакетного менеджера.
cloc умеет работать не только с папками исходников, но и с архивами. Это удобно, когда нужно быстро сравнить несколько версий проекта или оценить кодовую базу до распаковки в рабочее дерево.
Как используют
Обычно cloc запускают перед аудитом проекта, миграцией, оценкой технического долга или подготовкой отчета. Он не говорит, хороший код или плохой, зато быстро дает честный размер и языковой состав.
Командам полезно смотреть не только общий итог, но и распределение по языкам. Например, внезапно большой объем шаблонов, сгенерированных файлов или старых скриптов может показать, где стоит навести порядок.
Пример
В примере cloc получает папку проекта и выводит сводку по языкам. JSON-формат удобен, если результат нужно сохранить в систему отчетов.
Подсчет строк проекта
Команда считает строки по языкам и сохраняет машинно-читаемый отчет.
cloc ./app --json --out cloc-report.json
Сильные стороны и ограничения
Сильная сторона cloc — простота и повторяемость. Один и тот же вызов можно вставить в скрипт, запускать в проверках и сравнивать между ветками.
Ограничение тоже важно: число строк не равно сложности продукта. cloc полезен как измеритель размера, но архитектуру, качество тестов и читаемость кода он не оценивает.
Контекст проекта
cloc ведется в репозитории AlDanial/cloc; публичная история проекта начинается 2015-09-07. Основной язык, который показывает GitHub, — Perl, лицензия — GPL-2.0.
Для страницы каталога это важно как практический контекст: читатель видит не абстрактное название, а реальный проект с владельцем, лицензией, технической базой и открытой историей изменений.