Восемь десятых внутренних слов на сайте приходятся на одну печатаемую страницу, а не на прозу
Владелец открыл опубликованный сайт и сказал, что страницы читаются как чужая история, а не как гайд о языке: «термины твои хуёвые из разряда корпус, близнец и прочее типа свидетель». Число, с которым пришли разбираться, — 729 вхождений в docs/site/*.md. Оно верное и ведёт не туда.
Чем подтверждено. grep по одиннадцати словам владельца на дереве github/main (коммит cb3b7a18, ветка vypusk/zapret-zhargona):
| Где | Вхождений |
|---|---|
docs/site/*.md целиком | 729 |
из них docs/site/changelog.md | 608 |
из них docs/site/releases*.md | 10 |
| остальные 24 страницы, написанные руками | 111 |
changelog.md — журнал вливаний, он печатается из тем слияний (scripts/build-changelog-page.mjs), руками не правится, и темы эти пишутся для команды: «Слияние work/stdlib-json-time: json и datetime влиты поверх правки затенения». Править там нечего — там надо решать, стоит ли эта страница на публичном сайте вообще. То же у «Выпусков»: они печатаются из тегов и docs/release-notes.json.
Что из этого следует для работы. Задача «вычистить 729 мест» и задача «вычистить 111 мест плюс решить судьбу двух печатаемых страниц» — разные по цене примерно в шесть раз, и вторая настоящая. Ровно та же ошибка ждёт всякого, кто померит жаргон grep-ом по каталогу: печатаемые страницы дают основную массу, а читает человек прозу.
Чем ограничено. 111 — по одиннадцати русским словам. Прогон scripts/jargon-guard.mjs на тех же 24 страницах даёт 141: он считает ещё и английские пары (witness, ledger, corpus, twin, fixed point), которыми болеют английские половины страниц, зато не считает блоки кода, адреса ссылок и имена файлов — proof-ledger.mjs переименованием текста не чинится.
Где ещё течёт наружу, кроме страниц сайта. Тем же прогоном по 72 поверхностям, которые читает пришедший за языком, 1231 вхождение в 63 файлах:
| Поверхность | Вхождений |
|---|---|
спецификации (flang/proof/SPEC.md — 478, conc — 192, flang/SPEC.md — 60, cat — 18) | 748 |
прочие страницы docs/ (overview.ru.md — 73, замеры, память, модульность) | 177 |
страницы сайта docs/site/ | 141 |
руководство docs/guide/ | 97 |
| справка и диагностика компилятора | 36 |
| README и CONTRIBUTING | 32 |
Спецификации — самая большая доля, и это ожидаемо: их писали как контракт для своих, а на сайт они попали страницами разделов «Язык» и «Доказательства».
Связано: write-in-plain-language, checks-that-stopped-comparing