Support us

Функциональный прорыв: влияние новой парадигмы уже заметно во многих языках

Оставить комментарий
Функциональный прорыв: влияние новой парадигмы уже заметно во многих языках

10 декабря в Минске в третий раз пройдёт единственная в Беларуси конференция, посвящённая функциональным языкам программирования F(by). В преддверии мероприятия мы попросили опытных спикеров и партнёров мероприятия поделиться своими мыслями о настоящем и будущем функционального программирования.

Читать далее

Иллюстрация: GeekBrains

Как вы оцениваете развитие Clojure, который отметит 10-летие в 2017-м?

Пьер-Ив Ришар, CTO и сооснователь Exoscale (Швейцария):

— За 10 лет Clojure превратилась из нишевого проекта в полноценного «гражданина» JVM и экосистемы Java. Последние нововведения — как, например, spec system — показывают, что Clojure в ближайшие годы будет продолжать своё развитие как смесь прагматизма и продвинутых механизмов разработки.

Никита Прокопов, Senior Software Engineer в Cognician Software (Россия):

— Сейчас в Clojure затишье. Основные, самые мощные задумки реализованы. Дальше только рост и то, что называют adoption.

Малкольм Спаркс, основатель JUXT (Великобритания):

— Clojure всегда был весьма стабильным языком. Я оцениваю успех языка по тому, какая экосистема выстраивается вокруг него. Многие языки выглядят отлично по возможностям, но существует только один способ сказать, как «работает» этот язык — посмотреть на построенные на нём большие системы. За последние 10 лет люди, которые строили свои проекты на Clojure, остаются в целом довольны выбором языка. В новую систему на Clojure достаточно просто подключать новых людей, даже если они не знакомы с языком. Некоторые считают, что нехватка системы типов становится проблемой при масштабировании, но мы не видим в этом большой проблемы, если разработка ведётся с учётом этого ограничения.

Филипп Мейер, автор фреймворка Liberator (Германия):

— Я скептично относился к языку и был уверен, что Clojure достиг своеобразного «плато» в развитии. Но затем Рич Хики и его команда представили clojure.spec. Ядро языка Clojure снова оказалось настолько мощным, что просто невероятные вещи добавляются как библиотеки, в то время как в других языках они потребовали бы фундаментальных изменений. Я уверен, что в ближайшие годы мы увидим ещё больше подобных крутых изменений.

Иллюстрация: Beyond PLM

Сформировалось ли вокруг Clojure профессиональное сообщество?

Пьер-Ив Ришар:

— Комьюнити есть — пока оно не очень большое, но очень сильное, особенно в США. В Восточной и Западной Европе сообщество ещё формируется, и сильное присутствие языка в ключевых компаниях (в случае с Германией и Швейцарией) будет помогать росту интереса к теме.

Никита Прокопов:

— Коммьюнити прекрасное, в него очень легко попасть, оно дружелюбное и помогающее.

Малкольм Спаркс:

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

Филипп Мейер:

— Во многих частях США и в Лондоне есть сильное и «здоровое» сообщество, из которого выросли многие важные контрибуторы в язык и библиотеки. В Германии, полагаю, центром Clojure разработки является Берлин, но сообщества есть и в Гамбурге, Мюнхене и других городах. К сожалению, не могу прокомментировать ситуацию с Восточной Европой, так как недостаточно знаком с вашим регионом.
 

Фото: GeekBrains

Когда ожидать прорыва в популярности языков функционального программирования? Какие инструменты разработки Clojure в тренде сейчас и какие будут в ближайшее время?

Пьер-Ив Ришар:

— Влияние функционального программирования можно отслеживать через изменения и дополнения мэйнстрим-языков. Сложно представить, чтобы Haskell, Ocaml или Clojure набрали серьёзный вес, но можно наблюдать за появлением заметного влияния на Java, Javascript и C++, что помогает донести идеи функционального программирования до широкой аудитории

Наилучшим вариантом использования Clojure на данный момент является обработка данных, и так будет продолжаться некоторое время. Как многоцелевой язык, Clojure будет менять направление в зависимости от успеха в конкретных областях. Я надеюсь на усиление экосистемы Clojurescript и снижения планки входа для написания веб-интерфейсов, а также на появление новой низкоуровневой платформы для системного программирования на Clojure.

Никита Прокопов:

—  Прорыв давно случился, на мой взгляд. Мейнстримные языки поглотили идеи функционального программирования и прекрасно себя чувствуют. Из инструментов следуюет упомянать Emacs, который, судя по всему, с нами надолго.

Относительно прогнозов... крутые фичи у платформы уже есть, теперь нужны простые земные удобства. Популярный веб-фреймворк, какие-то более традиционные и полезные в обычной жизни библиотеки. Может быть, что-нибудь важное появится на фронтенде.

Малкольм Спаркс:

— Я считаю, что мы уже видели, как функциональное программирование стало мейнстримом, особенно в последнее время. Это нельзя сравнить с прорывом дамбы — больше похоже на плавное заимствование идей функционального программирования более широким сообществом разработчиков. Как и «настоящие» языки функционального программирования вроде Haskell и Elm становятся популярнее, существующие языки перенимают идеи функционального программирования (JavScript, Java, C# и другие). Я считаю, что мы достигли прорыва в основных идеях функционального программирования. Станут ли популярными продвинутые концепции — покажет время. Лично я в этом сомневаюсь.

Относительно развития Clojure я могу сказать, что ожидаю роста популярности ClojureScript на NodeJS. Люди будут использовать его и для написания скриптов, учитывая сверхбыстрое время запуска. Большой потенциал кроется и в новых идеях использования ClojureScript в браузерах. Всё это может привести к интересным экспериментам с образовательными средами и браузерных IDE. Здесь может по-настоящему «засиять» динамический LISP.

А вот тренды в развитии языка — сложный вопрос. Я думаю, сообщества останутся относительно небольшими и продолжат разработку компактных библиотек. По-моему, распределённость и доступность библиотек, как и сложность языка на данный момент не вызывают вопросов. Я вижу большое будущее в Clojure Script, особенно сейчас, когда большинство инструментальных проблем решено. Следующий год может стать «годом серверного ClojureScript» кто знает?

Фото: The Heideblog

Филипп Мейер:

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

Относительно инструментов разработки, я считаю, что cider/nrepl будут развиваться и помогать в дебагинге. На последней clojure/conj Билл Пиль представил Sayid, инструмент для проверки качества кода на Clojure, записывающий актуальное выполнение кода и отлично интегрированный с Emacs. Это освобождает от прописывания выражений print по всему коду для определения ошибок.

Предугадывание трендов — это сложный вопрос. Если бы мне приходилось делать ставку, я бы ставил на то, что Clojure или ClojureScript появятся на «встроенных» устройствах, небольших микроконтроллерах. А может, это просто мои мечты, потому что мне очень хочется избавиться от необходимости пользоваться С и С++, когда я играюсь с ними.

Иван Сухинин, директор Kibo commerce:

— Я думаю, что нельзя говорить о золотой эпохе именно функционального программирования в чистом виде. Скорее, мы видим расцвет функциональных подходов, которые внедряются на многих уровнях, от мейнстримовых языков (старушка Java и уже потертый C#) до подходов в деплойменте (immutable server, service-as-a-function и т.д.). При этом императивное программирование никуда не уходит, и мощность инструментов программиста часто исходит именно из-за грамотного комбинирования императивных и функциональных подходов.

Предположу, что причиной заимствования другими языками идей из функционального программирования кроется в вычислительных мощностях, растущих с каждым годом. Для их более эффективного использования требуются немного иные подходы в программировании, и так совпало, что у функционального программирования есть отлично подходящие концепции. Например, неизменяемые объекты, функции более высокого порядка и прочее. Самое интересное лично для меня — это функциональные подходы в деплойменте. Например, сводишь какой-либо микросервис до функции, возвращающей фьючу (future), и масштабируй себе в бекграунде, сколько хочешь. В вызывающем коде вызов такого микросервиса неотличим от обычной функции, а код может выполняться в serverless окружении и автоматически масштабироваться. В случае многопоточных вычислений неизменяемые данные избавляют от детских ошибок и упрощают понимание.

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

Читайте также
Десять имён, ради которых стоит идти на Tech Race Summit
Десять имён, ради которых стоит идти на Tech Race Summit
Десять имён, ради которых стоит идти на Tech Race Summit
На хорошую техконференцию идут ради спикеров, тех, кто вживую разберёт задачу, над которой вы сами сейчас сидите. Tech Race Summit на этом и держится: технические разборы вместо маркетинговых презентаций. 10 сентября SOFTSWISS собирает в Варшаве больше 30 человек из финтеха, стриминга, cloud, edge и iGaming. Среди них фаундеры, техдиректора и инженеры из Google, AWS, Oracle, Cloudflare, Fastly и ScyllaDB. Собрать столько имён такого калибра в одном зале на один день мало кому под силу. Из них мы выбрали десять, кого точно стоит послушать.
«Прыгни со скалы и построй крылья на лету»: Аркадий Добкин вдохновлял беларусов примером своих родителей
«Прыгни со скалы и построй крылья на лету»: Аркадий Добкин вдохновлял беларусов примером своих родителей
«Прыгни со скалы и построй крылья на лету»: Аркадий Добкин вдохновлял беларусов примером своих родителей
«БелХард» представил национальную LLM на ИИ-форуме в Минске
«БелХард» представил национальную LLM на ИИ-форуме в Минске
«БелХард» представил национальную LLM на ИИ-форуме в Минске
Как сделать техническую презентацию ёмкой и понятной: практические советы тем, кто планирует выступать публично
Как сделать техническую презентацию ёмкой и понятной: практические советы тем, кто планирует выступать публично
Как сделать техническую презентацию ёмкой и понятной: практические советы тем, кто планирует выступать публично

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.