Функциональное программирование и работа

Читать в полной версии →

Свежий выпуск вопросов и ответов. Вопрос от Петра Алексеенко:

Я начинающий веб-программист, уже могу делать простые сайты и веб-сервисы на PHP, сейчас изучаю JavaScript. Много слышал про функциональное программирование, и как крут Хаскел и Clojure, посмотрел несколько уроков, сделал несколько упражнений. Интересно, прикольно, но не могу понять насколько это вообще имеет для меня смысл в реальной жизни. С одной стороны — очень интересно и есть приятное ощущение, что работаешь с элегантными штуковинами. С другой — прямо сейчас не могу ничего из этого применить, а сайты на PHP могу делать прямо сейчас. Стоит ли новичку лезть в дебри того же Clojure и ClojureScript, или сначала набрать достаточно опыта в обычных языках и фреймворках? Есть ли "правильное время" для изучения функционального программирования?

Отвечает Никита Прокопов (@tonsky):

Если стоит задача обеспечить себе карьеру — наверное, нет. Работу будет найти непросто.

Если просто так, то, думаю, да. Есть языки, через которые транслируются правильные идеи про промышленное программирование, разработку надежных систем, и пр. Для меня это Erlang и Clojure (ну, и еще питоновский PEP-8). Ради этого их стоит изучить, определенно.

Единственное, насчет чего я хочу предостеречь — не возводить эти идеи в догму и воспринимать идеи отдельно от языка. В этом смысле эти языки — это такой кладезь хороших и умных инженерных решений и практик, на которые определенно стоит посмотреть. Но языки сами по себе только предлагают идеи. Оценить, когда они уместны, можно только самостоятельно, извне. Это всё придет только с практикой, на этом этапе лучше этим не заморачиваться, и стараться как можно больше смотреть по сторонам.