Полтора года назад адепты функционального программирования основали сообщество RuHaskell и с тех пор периодически собираются, и проводят митапы. Ну как периодически — уже два раза собирались. Мы тут, в «Лаборатории Касперского», вообще очень поддерживаем это начинание. Во-первых, потому что это интересно, во-вторых, потому что мы используем Haskell в процессе разработки наших решений, а в-третьих, потому что некоторые участники сообщества у нас работают. А потому мы решили собрать третий митап этого сообщества на нашей территории. 18 августа все заинтересованные могут прийти в наш московский офис (Ленинградское шоссе, д.39А, стр.2), послушать умных людей, обсудить Haskell, поделиться опытом, позадавать вопросы и пообщаться. Разумеется, предварительно следует зарегистрироваться вот на этой страничке.
Пока у нас в планах четыре доклада. Первым планирует выступать Павел Филонов, наш разработчик-исследователь. В марте этого года, когда состоялся релиз набора компиляторов с открытым исходным кодом GCC 6.1, в котором в частности была добавлена поддержка расширения системы шаблонов С++ Concepts, Павел пристально следил за докладами, разборами и статьями, посвященными этой теме. Часто авторам этих выступлений задавали один и тот же вопрос: «С++ Concepts это тоже самое что и классы типов Haskell?» Но прямого ответа на этот вопрос Павел не услышал, а потому постарался выяснить все сам. А поскольку он придерживается философии «если хочешь в чем-то разобраться, попробуй это объяснить», то он решил посвятить свое выступление именно этой теме.
В процессе подготовки к докладу Павел понял, что для того, чтобы ответить на этот вопрос, надо изрядно углубиться в тему. В результате ему пришлось обработать огромных объем материалов (ссылками обещал поделиться). Потому что если классы типов давно известны и применяются, то концепты C++ — штука новая. И Павел планирует рассказать о том, какую проблему они решают, как выглядят и как с ними работать. Ну и объяснить, наконец, что у них общего с классами типов и в чем их различия.
Второй докладчик, Юрий Сыровецкий, тоже разработчик из «Лаборатории Касперского». Он как раз из тех людей, которые применяют функциональное программирование в повседневной работе. Юрий обещает рассказать зачем мы начали нанимать Haskell-программистов и как применяем этот язык для создания высокопроизводительных программ. С учетом того, что традиционно функциональное программирование считается не очень востребованным в индустрии, доклад обещает быть интересным.
В частности, Юрий обещает подробно рассмотреть несколько инструментов, использующихся в нашей компании для решения задач кодогенерации. В частности, библиотеки language-с и Ivory. Он сравнит их и покажет сильные и слабые стороны каждого из этих инструментов. Тут особенно интересен второй инструмент, потому что по нему доступно не так много документации. Ivory создали в Galois Inc. и не применяют за ее пределами практически нигде кроме как у нас. Может быть именно потому, что мало кто за пределами Galois понимает как она работает. Вот Юрий и решил поделиться опытом, рассказать, о чем он и его коллеги узнали на практике. Обещает привести примеры кода, в том числе и достаточно сложные.
Третий докладчик, Алексей Пирогов, обещает рассмотреть в своем выступлении другой язык функционального программирования — Elm. Причем рассмотреть его как явление. Алексей восхищен этим языком и его экосистемой. Ведь автор выпустил не только компилятор, но и пакетный менеджер, и систему сборки, то есть создал полную экосистему. К тому же компилятор умеет выдавать развернутые и подробные, но при этом лаконичные сообщения. В результате даже человек не знакомый с языком может очень быстро и комфортно его освоить. Иными словами, Алексей считает Elm отличным примером того, как сейчас нужно делать язык программирования как продукт: чтобы он привлекал аудиторию, но при этом чтобы люди не уходили, набив первую шишку.
Последний докладчик — Николай Кудасов, технический директор GetShopTV (где, кстати, вся серверная часть реализована именно на Haskell). Его выступление рассчитано, в основном, на новичков, которые хотели бы познакомиться с языком Haskell (который он, опять же кстати, преподает на факультете ВМК МГУ). Николай всегда считал, что лучший способ изучить любой язык программирования — написание простенькой игрушки. Поэтому он, на примере разработки несложной многопользовательской онлайн-игры с нуля, решил объяснить, как правильно организовать проект на Haskell, разбить задачи на серверную, клиентскую и логическую часть, как используются веб-сокеты и так далее. Николай также обещает познакомить слушателей с организацией проекта при помощи Stack и Cabal, и с библиотеками gloss, servant, binary, stm.
Для тех, кто не сможет попасть на мероприятие, мы планируем вести онлайн-трансляцию на нашем канале Youtube. Еще раз — зарегистрироваться на мероприятие можно вот на этой странице.
Автор: «Лаборатория Касперского»