Как вы уже, наверное, знаете, наша компания активно использует Scala и старается поддерживать комьюнити разработчиков. Так, не столь давно, мы инициировали создание московской юзер группы. В прошлый раз наш коллега ездил на конференцию по своей инициативе, о чем и отписывался в одной из предыдущих статей. В этот раз, уже по проторенной дорожке, было решено откомандировать двоих, особо отличившихся, сотрудников. Так, в общем, мы и поехали на Scala Days.
Далее я постараюсь описать свои впечатления от мероприятия и вкратце расскажу об особо запомнившихся презентациях. Все доклады доступны по ссылке.




Берлин


В этом году конференция проходила в Берлине. Город в целом понравился. Много парков и велосипедистов, мало машин. Север чем-то напомнил мне Москву. Достопримечательностей не так много, за пару-тройку дней можно обойти все туристические мекки. Местом для конференции был выбран кинотеатр Kosmos.

Кейноут


Первый день был не очень насыщенный. По плану был только кейноут Martin’а Odersky и афтепати. Перед регистрацией была встреча основателей скала юзер групп. Будучи единственным человеком из Москвы, я в итоге пердставлял московскую юзер группу. Времени было не так много, но успели познакомиться и обсудить насущные проблемы. Проблемы оказались, на удивление, более или менее у всех одинаковыми: как привлечь людей в группу, как сбалансировать доклады, чтобы было интересно всем категориям, от вновь прибывших до профессионалов своего дела, как поддержать интерес к группе, и всё в таком духе.



Далее была презентация Martin’а Odersky “Scala. The Simple Parts”, в котором он рассказал, как ему видится программирование на скале и какие (лучшие) части языка он использует в своей повседневной работе. Немного вспомнили историю языка, каким он задумывался, и что в итоге получилось.



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



Конференция


Следующие дни были уже полноценными и насыщены докладами. Второй день начался с кейноута Eric’а Meijer’а “Contravariance is the Dual of Covariance” про денотационные семантики. Eric, как водится, был в своей психоделической рубашке, которой он обычно гипнотизирует зрителей. Много шутил, и иногда было сложно понять, когда он троллит аудиторию, а когда говорит серьёзно. Как следствие, несмотря на академический уклон, доклад воспринялся довольно легко.



Далее, по ходу конференции в параллель читалось четыре доклада, и нужно было сделать выбор, кого, собственно, хочется послушать больше всего. В выборе очень помогало приложение от команды с названием 47 Degrees (кого-то напоминают, да?), написанное специально для конференции. Кроме просмотра расписания и добавления заитересовавших докладов в календарь, с помощью него можно постить в твиттер, смотреть информацию о докладчиках и (киллер фича) сохранять информацию о других участниках конференции (для этого, у каждого на бейджике есть QR-код). В общем, всё, чтобы не отвлекаться на технические мелочи и сделать времяпрепровождение на конференции приятным.

Презентаций было много, далее постараюсь вкратце рассказать про особо запомнившиеся.

Reactive Streams: And why you should care


Viktor Klang и Roland Kuhn постарались донести до аудитории, что же такое реактивность (reactive manifesto) и как добиться его с помощю реактивных стримов. Также было демо с лайв кодингом, на котором Kuhn демонстрировал возможности akka-streams. Вообще, если обратить внимание на названия презентаций, то слово “reactive” встречается, чуть ли не в каждом третьем докладе, и стало, на мой взгляд, баззвордом конференции. В общем, тренд налицо.







Dynamic Push-Pull — вся суть реактивных стримов; ничего космического, очень похоже на tcp.

akka-http: (un)REST for your Actors


Mathias Doenitz рассказывал про будущее библиотеки spray. Главным месседжем было то, что spray будет частью akka 2.4 и будет основываться на reactive streams. Обещанное превью akka-http доступно уже сейчас, и все желающие могут приложить к нему руки, что не может не радовать.





Изначально планировалось, что http модуль будет уже готов к конференции.

Legacy


Chad Fowler рассказывал, о своей работе, про то как он убивает legacy системы. В докладе, он попытался дать определение таким системам и разобраться, почему, в конечном счёте, программное обеспечение становится legacy, и как этого можно избежать. В целом, очень хорошая презентация, заставляет задуматься над тем, чем мы с вами занимаемся.

Scala: The First Ten Years


Jon Pretty и Miles Sabin устроили целое представление в двух лицах. Получилось очень здорово. Было море шуток, порт Shapeless и live coding на Scala версии 1.3. Вспомнили всех заслуженных деятелей комьюнити.

Composable application architecture with reasonably priced monads


Любителям хардкора scalaz Rúnar Bjarnason рассказал о способе композиции программ с помощю Free Monad. Суть в том, что логика программы задается композицией таких монад (хотя, в целом, монады стэкаются довольно плохо), что дает абстракцию над потоком выполнения. Изощренная аудитория найдет себе пищу для размышлений.





Quote or be quoted


Денис Шабалин делает quasiquotes для Scala. В докладе он рассказал об их возможностях и показал, как с помощю квази-цитат можно сделать интерпретатор языка Joy. Довольно интересная презентация с практическим уклоном.





В заключение


В итоге, конференция оставила приятные впечатления. Организация была на уровне, комфортабельные залы кинотеатра не давали уставать после череды докладов, плюс, мероприятие проходило в дружеской атмосфере, что (вместе с немецким пивом), только способствовало общению. Все доклады были досотойными, спикеры подготовленными, и каждый мог найти себе talk по душе. В общем, попытался донести, что неплохо иногда выбирать время, чтобы просто развеяться, посмотреть новые места, пообщаться с интересными людьми и узнать для себя что-то новое.