Язык имеет значение. Не знаю, как вам, а мне кажется, что слова, используемые при разговоре о функциональном программировании (ФП), имеют элитарный оттенок. С FP нам рекомендуется использовать «чистые» функции, что, конечно же, подразумевает, что мы все это время занимались нечистыми вещами. Я не психолог, но могу поспорить, что такого рода разговоры могут стимулировать подсознание к проявлению некоторой ненависти к себе за наши нечистые проступки.

А как насчет этих «побочных эффектов», которыми мы регулярно пользуемся? Мы знаем, что обычно означает термин «побочные эффекты»: лекарства используются из-за их полезных предполагаемых эффектов, но нас предостерегают от их многих, возможно, пагубных «побочных эффектов». Но веб-разработчики интерфейса пишут код, который намеренно взаимодействует с пользователями и реальным миром, верно? Поскольку эти взаимодействия являются преднамеренными, они определенно не являются «побочными эффектами» в обычном смысле этого слова. Но на языке ФП это называется «побочные эффекты», что подразумевает вредность. Это похоже на еще одну атаку в самое сердце того, что мы делаем. Кодировщики, которые впервые знакомятся с FP, получают сразу два удара!

Хорошо, я знаю, что есть очень веские причины сместить нашу практику кодирования на функциональные методы. Может быть, чтобы помочь в переходе, мы можем в шутку изобрести новую, не осуждающую терминологию для непосвященных (есть предложения?) или даже отказаться от некоторых более специализированных терминов FP. Я думаю, что Эван Чаплицки, разработчик языка Elm, добился значительного прогресса в преодолении разрыва между общепринятым интерфейсным программированием и более утонченным миром FP ​​(например, представление монад как обратных вызовов). Кроме того, последняя версия JavaScript содержит больше дополнений к языку, упрощающих переход.

Что касается переменных, то они называются переменными, потому что мы ожидаем, что они будут меняться, верно? Итак, что я слышу о вреде «мутации» переменных состояния? Это снова мы…