Перевод статьи James Coglan Callbacks are imperative, promises are functional: Node’s biggest missed opportunity
“Главная особенность обещаний в том, что они невосприимчивы к изменяющимся обстоятельствам”
Франк Андервуд, “Карточный домик”
Возможно, вы часто слышите, что JavaScript это “функциональный” язык программирования. Его так называют просто потому, что функции в нём – объекты первого рода: многие другие особенности, присущие функциональным языкам, такие как неизменяемые данные, предпочтение циклам рекурсии, алгебраические системы типов, избежание побочных эффектов – полностью отсутствуют. И, хотя функции высшего порядка, безусловно, полезны и позволяют программирвать в функциональном стиле, но представление, что JS это функциональный язык, зачастую затмевает основной аспект функционального программирования – программирование со значениями.
Continue reading