Трушный JavaScript-ер поймет

Помню, как в комьюнити JS начал всплывать этот персонаж. Не очередной блогер с «5 способами использовать this», а кто-то, кто копал с другой стороны - со стороны самой спецификации. Сначала это казалось курьёзом: ну да, пришёл какой-то педант и говорит, что всё, чему нас учили, - не совсем так. Что «замыкание» - это не про то, что «функция запоминает внешнее окружение», а про совсем другой механизм доступа. Все, естественно, возмущались.

Потом пошла волна. Он не просто спорил - он катком проезжался по шатким основаниям поп-знаний. И это сработало. Появилась целая армия последователей. Одни - толковые, кто реально загорелся докопаться до сути. Другие быстро превратились в сектантов с тремя заученными фразами. Их не интересовало понимание, их интересовало козырнуть на собеседованиях и в комментариях, тыкая палкой в тех, кто «не в теме».

Речь, конечно, о Мурыче. Для меня его подход стал откровением. Не потому, что он давал ответы, а потому, что он заставлял искать их самому. Заставлял часами рыться в ECMAScript, спорить с самим собой, отказываться от старого и собирать понимание заново, уже на фундаменте, а не на песке удобных метафор.

Вся магия растворилась. Остался лишь конкретный, пусть и сложный, механизм. Строка + число, environment records, async/await - всё это перестало быть магией и стало просто алгоритмом. Проблемы, которые раньше вызывали ступор, теперь решались вопросом к спецификации. Осталась только практика - но теперь осознанная.