Разговор будет серьёзный. С 1 марта 2026 вся публичная информация для потребителя должна быть на русском — № 168-ФЗ. Пока что разработку это не касается, но стоит быть готовыми. Предлагаю договориться о словаре разработчиков Российской Федерации.

Извинения и благодарности

Границы моего языка означают границы моего мира. — иноагент Людвиг Витгенштейн.

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

Также хочу выразить благодарность защитникам русского языка за то, что решают вопросы прямо. Вот как с Max — прошу прощения, «Макс» — вместо того, чтобы выигрывать в конкурентной борьбе, как делали все, включая Китай, — просто запрещаем и замедляем всех. Радует, что в России присутствует инновационное, «дизрапторское» мышление — ой, прошу прощения, «подрывное»... ой... ладно, проехали.

Кстати, cердцем возгоревшись к слову русскому, назвал своё ИИ cамодѣйство стола работнаго — Союз ИИ.

Термины — кодословь

Некоторые термины — вроде Ассоциативного массива (Map) — и так устоялись, поэтому их просто пропущу. Рассмотрю лишь то, что до сих пор живёт в форме мерзких англицизмов.

Примитивы

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

Boolean — логический.
Short — короткий.
Integer — целый.
Long — длиннющий.
Float — плавающий.
Double — двойной.

Пример:

var xyz = 666L;
double fz168 = -100.0;
var progress = xyz * fz168;

Гляньте, насколько легко воспринимается текст, описывающий код на java

Компилятор Java может вывести, что xyz — длиннющий. А виртуальная машина Java проведет продвижение чисел, и установит progress в тот же тип, что и fz168. Можно сказать, что fz168 проводит xyz-ом по лбу progress-а.

Функциональные операторы

Map — ассоциировать.
Reduce — скукоживать.
Fold — раскладывать, соответственно, Folder — раскладушка.
Debounce — отменить отскакивания.
Zip — молния.

Посмотрим, как это элегантно может смотреться в коде на Kotlin:

// реактивные изменения, прям как жизнь россиянина
import io.reactivex.rxjava3.core.Observable
import java.util.concurrent.TimeUnit
import kotlin.math.max

data class Udar(val title: String, val loss: Int)

/** насколько больнее/мягче бьёт следующий удар */
data class Kontekst(val title: String, val multiplier: Double) 

fun main() {
    // Поток ударов: инфляция, блокировки, падение аудитории, исчезновение вакансий, регуляторные ограничения
    val udary: Observable<Udar> = Observable.just(
        Udar("Инфляция", loss = 20),
        Udar("Блокировки/ограничения доступа к платформам", loss = 30),
        Udar("Потеря наработанной аудитории (TG/Instagram)", loss = 25),
        Udar("Отсутствие вакансий у зарубежных компаний", loss = 30),
        Udar("Новые регуляторные требования (например, 168-ФЗ)", loss = 25)
    )
        // размазываем по времени, чтобы было похоже на “историю”
        .zipWith(Observable.interval(0, 90, TimeUnit.MILLISECONDS)) { u, _ -> u }

    // Поток контекста: “шумные” изменения правил/доступа/рисков.
    // Debounce оставит только те состояния, после которых была пауза — то есть контекст “устоялся”.
    val kontekstShum: Observable<Kontekst> =
        Observable.just(
            Kontekst("Переходный шум: то открыто, то закрыто", 1.0),
            Kontekst("Стабилизация: стало понятнее, как жить", 0.85),
            Kontekst("Новая волна ограничений/рисков", 1.15),
            Kontekst("Снова устаканилось", 0.9)
        )
            .zipWith(Observable.interval(0, 200, TimeUnit.MILLISECONDS)) { k, _ -> k }

    val stabilnyKontekst = kontekstShum.debounce(120, TimeUnit.MILLISECONDS)

    // Zip: каждый “удар” связываем с ближайшим “устоявшимся” контекстом
    val udarVKontekste = Observable.zip(udary, stabilnyKontekst) { u, k -> u to k }

    // Reduce: считаем, сколько возможностей осталось
    val start = 100 // условные “возможности” гражданина в процентах
    val ostalos = udarVKontekste.map { (u, k) ->
        val realLoss = (u.loss * k.multiplier).toInt()
        u.title to realLoss
    }.reduce(start) { acc, (_, loss) ->
        max(0, acc - loss)
    }

    ostalos.subscribe { println("Итог: осталось возможностей: $it") }

    // Можете запустить и посмотреть, сколько у вас осталось возможностей
    Thread.sleep(2000)
}

И смотрите, как легко читается логика кода на обычном русском языке, даже неразработчики поймут:

В коде выше описаны два потока — «удары» судьбы и «контекст». Последний определяет, как сильно следующий удар бьёт по россиянину.

«Отмена отскакивания» на контексте отбрасывает «дёргания» и оставляет только состояния, после которых была пауза, то есть когда контекст устоялся (всё считается в миллисекундах, как и в реальной жизни).

«Молния» попарно связывает удар с ближайшим устоявшимся контекстом. Другими словами — в каком контексте пришел удар.

«Ассоциирование» переводит пару в реальную потерю возможностей, а Reduce скукоживает всё в один результат — сколько возможностей осталось.

ГИТ — Государственный Инструмент Труда

Pull Request — запрос на вливание.
Merge Conflicts — сливать конфликты.
Commit — внесение.
Git status — сводка по фронту.
Git clone — ГИТ размножение.
branch — сучок.
origin — родина.
master — владыка.

Примеры общения с коллегами:

— Схожу отлить, а затем залью запрос на вливание.
— Делайте размножение, отводите сучки от родины владыки.

Управление разработкой

Feature — причуда.
Framework — костяк
API (Application Programming Interface) — ППЦ (Приложенческо-Программный Циркуляр).
Cache — закрома.
Roadmap — карта несбыточного.
Sprint — рывок.
Release — допуск в народ.
Rate Limit — предел вежливости.

Примеры общения с коллегами:

— Нам нужно реализовать все причуды к концу рывка, вы видели карту несбыточного?
— Костяк другой, а ППЦ всё тот же.
— Почему 429? — Предел вежливости превышен, потому что закрома пусты.

Призыв не сидеть сложа руки

Что мы можем со всем этим делать, товарищи?

Нельзя сидеть сложа руки! Призываю всех, кому не безразлично лингвистическое будущее российской разработки, подключаться к работе над словарём с открытым исходным кодом — KLODOCLOBb! Также оставляйте предложения и замечания прямо здесь, в комментариях.

Я пошел дальше, и переименовал свой канал. Теперь не Dumch API, а нормальный Артур Думчев.

А на что готов пойти ты ради России?