Длина свободного пробега языка
- title
- Длина свободного пробега языка
- type
- concept
- summary
- Сколько строк кода можно написать до расхождения ментальной модели с поведением программы - физическая метрика для оценки языков
- tags
- language-design, cognition
- sources
- zig-functional-programmers
- created
- 2026-04-30
- updated
- 2026-04-30
- lang
- ru
- translation_of
- mean-free-path-language
- source_updated
- 2026-04-30
- translated
- 2026-09-01
- translator
- lllm/antigravity/gemini-3.7-flash-medium
В физике вакуумных систем длина свободного пробега - это среднее расстояние, которое частица пролетает до столкновения с другой частицей; показатель качества вакуума. Автор pure-systems-blog заимствует этот термин как метрику для языков программирования: сколько строк кода вы можете написать, прежде чем ваше понимание работы программы разойдётся с тем, что она делает на самом деле. Каждое такое расхождение он называет сюрпризом.
Большая длина свободного пробега не означает, что язык компактный или простой - это значит, что его семантика достаточно предсказуема: вы сразу строите верную ментальную модель и не натыкаетесь на случаи, где она втихую ошибается. Языки с неявными приведениями типов, правилами диспетчеризации с нелокальным разрешением, скрытыми аллокациями памяти или "дальнодействием" (spooky action at a distance) обычно показывают плохие результаты. Философия Zig "no spooky action" - это прямая попытка максимизировать эту метрику.
Такой подход удобен для оценки компромиссов, которые обычно преподносят как эргономику. Неявную диспетчеризацию тайпклассов в Haskell писать быстрее, чем передавать словарь вручную, но она добавляет в ментальную модель нелокальное разрешение. Оправдан ли такой выигрыш, зависит от того, приемлема ли итоговая частота сюрпризов для вашей предметной области.
Связанное: type-systems-vocabulary делает похожий шаг в другой плоскости - подбирает точную терминологию, чтобы перестать путаться в том, что язык на самом деле гарантирует.