Про функциональные языки программирования
Sep. 12th, 2013 10:52 amДля того чтобы понять ситуацию с ФП, нужно на секундочку отвлечься и посмотреть на обычную математику
Точнее, посмотреть, что бывает, когда скажем нетупому, но не гениальному, просто умеренно умному школьнику-семикласснику начинают обьяснять вузовский курс математики. Или когда скажем средний выпускник инженерного вуза начитает читать про сложные штуковины типа алгебраической топологии, логики, или теорката.
А происходит вот что, обычно - человек как бы "понимает", что ему обьясняют, а даже может ответить на непосредственные контрольные вопросы. Но у него возникает ощущение *тягости* и *скуки*, возникают вопросы *зачем это нада вааще* и т.п. Через пару дней после обьяснения, включаются автоматические механизмы вытеснения из мозга ненужной информации и человек обычно уже не может вопроспроизвести усвоенный, казалось бы, материал. Повторюсь, что речь не идет про глупых людей. И даже не про нелюбопытных людей. Дело тут в другом. Дело в том, что мало просто узнать определения неких сложных обьектов. Нужно к ним привыкнуть, привыкнуть оперировать ими. Эта привычка все радикально меняет. Внутренне ощущение понимания как-то совершенно меняется. Вроде и раньше "понимал", но теперь понимаешь как-то совсем по-другому.
Так вот, возвращаясь к ФП, можно указать что в ФП приходится работать с более сложными уровнями абстракции. Без относительной долгой тренировка ума, тренировки жонглирования этим понятиями - не достигается специфическое состояния *волшебной ясности", сопровождаемое почти эстетическим переживание некой прежде скрытой *красоты*.
Иными словами, есть просто некая "цена входа в клуб". Вход не бесплатный. Нужно тупо приучить ум работать с более сложными обьектами, чем с теми, которые обычно встречаются в обычном, нефункциональном программировании.
Еще одна, спортивная аналогия - невозможно обьяснить как классно играть в футбол человеку, у которого одышка и больные суставы, в результате которых он элементарно не может бегать. Он должен сначала вылечить сердце, есле это возможно (а это возможно не всегда), и суставы, и вот когда он сможет бегать так как нужно бегать в футболе, он сможет оценить и пропереться. Или не оценить, но тогда уже *по праву*, а не по причине общефизической слабости.
Практический вывод - если хочешь понять ФП как методологию - тупо бери учебник Хаскелла, и тупо прорабатывай его от корки до корки, а потом еще год пиши хобби-проекты на Хаскелле. (Год, кстати, это не много, время летит быстро, и по вечерам времени не слишком много - не все могут красть рабочее время для занитием своими проектами). "Жестоко слово сие" (цитата из Евангелия). Но по другому нельзя. Такова цена входа в клуб. Позитив в том, что потом, судя по всему, уже из этого клуба ни за какие пирожки и печеньки сатаны не выйдешь.