Функциональное программирование: использовать или нет?

05:00, 03 June 2019

Мнения коллег, посетивших эту конференцию, об актуальности функционального программирования в нашей работе существенно разделились. Рассказывает инженер-программист из группы разработки модулей телефонии Виталий Слотин:

— Ехал на конференцию с целью узнать новые подходы к построению программ. Конкретно мне были интересны функциональные паттерны, которые я бы хотел использовать в нашем проекте сервисов телефонии. Это уже начато, но не везде, и я надеюсь, что мы будем применять такие паттерны все больше. Ещё обратил на себя внимание доклад по OpenCensus — системе, которая собирает метрики. В дальнейшем мы рассмотрим внедрение либо самой библиотеки, либо её подходов в сборе и обработке метрик. Такие конференции полезны сразу по нескольким причинам. Во-первых — сами доклады, в которых рассказывают не только про функциональное программирование в общем, но и про использование ФП и связанных с ним библиотек в проектах, находящихся в продакшне. А во-вторых это живое общение с другими участниками конференции, обсуждение трендов и новостей, обмен новыми взглядами на разработку с учетом опыта как докладчиков, так и слушателей.

А вот мнение руководителя группы web-разработки Ревала Акмалова почти противоположно:

— Послушав доклады на конференции, понял, что в рамках нашего направления не стоит переходить на функциональные языки. В основном речь шла про сырые и далёкие от использования в реальной жизни эксперименты. Сами докладчики не используют функциональные языки на продакшне, они нужны в основном в исследовательских проектах.
Считаю, что функциональные языки для гиков, хотя и сам использую их для своих личных проектов. Интересные вещи из функционального программирования появляются в популярных нефункциональных языках, таких как C#, Kotlin, поэтому переход на функциональные языки мало что дает. По моему мнению, функциональное программирование не для продакшена, по крайней мере, в ближайшем будущем.

Что такое "функциональное программирование" и чем оно отличается от "процедурного" можно прочитать, например, здесь: https://habr.com/ru/post/142351