F(by) – первая в Беларуси конференция, посвященная функциональным языкам программирования.
В этом году отдельный поток выделен под Scala: разработчики из EPFL познакомят вас со значимыми обновлениями Scala и scala.meta. Кроме этого, будут представлены новый компилятор dotty и один из экспериментальных модулей Akka.
Второй поток обратит особое внимание на функциональные языки, при этом акцент будет сделан на Haskell: вы узнаете о возможностях этого языка и поймете, в каких случаях можно отдавать ему предпочтение в продакшне. Создатель фреймворка Spock подробно расскажет о бэкенде на Haskell, а его доклад будет дополнен выступлением выступлением разработчика PureScript о фронтенд-части. Закрепить знания поможет live-coding сессия! Отдельный доклад будет посвящен микросервисам в Haskell.
Все желающие смогут принять участие в обсуждениях докладов, а вишенкой на торте станет дискуссионная секция, в которой уже заявлены горячие обсуждения на тему PureScript vs ClojureScript, Servant vs Spock, EMACS vs VIM.
Greg Young is an independent consultant and entrepreneur. He is always involved with many concurrent projects, currently these include building out a distributed event store and mighty moose (a continuous test runner). For periods of years Greg has been known to stop living anywhere and just travel.
Sam is a live coder who strongly believes in the importance of emphasising, exploring and celebrating creativity within all aspects of programming. He is the lead developer of Overtone and the creator of Sonic Pi, a music live coding environment used to teach programming within schools. By day Sam is a Postdoc Research Associate at the University of Cambridge Computer Laboratory and by night he codes music for people to dance to.
Doctoral assistant at EPFL, Dotty compiler developer
Martynas has acquired his formal education from Vilnius University while working on coding theory and cryptography fusion during his M.Sc degree studies. After this brief introduction to academia he continued his endeavours in the industry working on various banking and transportation systems which lead him to distributed computing and the Akka project.
Computer Science Master student at the University of Freiburg; Startup Founder developing tram rail measurement devices at TramCloud; Software Engineer at factis research GmbH; Maintainer of Spock.
Веб-разработчик в компании Wargaming. Последние сколько-то лет программирую в основном на эрланг. Автор учебного курса «Эрланг на практике» https://ru.hexlet.io/courses/erlang_101
Nikita Volkov is a software engineer with 15 years of experience, who lately specializes in functional programming languages like Haskell, Clojure, Scala. He is the author of a multitude of open-source projects for Haskell, including ["record"](http://nikita-volkov.github.io/record/), ["stm-containers"](http://nikita-volkov.github.io/stm-containers/), ["refined"](http://nikita-volkov.github.io/refined/) and [the "hasql" library](http://nikita-volkov.github.io/hasql-benchmarks/), which is the subject of this talk. He is also the author of [the "SORM" project](http://sorm-framework.org), which is an ORM-library for Scala. Nikita [blogs about functional programming](http://nikita-volkov.github.io/), and is employed by a Norwegian company [Sannsyn AS](http://sannsyn.com/), which provides a recommendation engine as a service as well as the general consulting services in IT.
CTO of «Synrc Research Center». More than 14 years in IT. Erlang engaged since 2010. Ranked in the top 5 Erlang committers on Github. In May 2014 he took part in the Erlang User Conference in California with web framework talk. Maxim is developing the fastest web framework N2O for Erlang completely built on WebSockets, SVG and binary protocols.
scala.meta is a next-generation metaprogramming framework that is heavily based on our experiences with designing and supporting scala.reflect. With scala.meta, it is possible to efficiently carry out a wide range of metaprogramming tasks: from purely syntactic transformations that preserve low-level lexical details to powerful semantic code analyses that are aware of the program structure. With the upcoming 0.1 release, we're planning to provide a comprehensive and platform-independent model of Scala programs. Every time a Scala program is compiled with our compiler plugin enabled, we save its representation in a serialized format, which then can be loaded at any point - both at compile time and at runtime. In this talk, we will see a practical preview of features planned for 0.1. It will become clear how to use scala.meta to analyze and rewrite code to implement functionality that is very hard or outright impossible to achieve with existing metaprogramming solutions.
Dotty это компилятор для Scala-подобного языка на которой обкатываются новые идеи и технологии.Это не форк scalaс, а новый компилятор, написанный с нуля. Возможности которые тестируются в Dotty могут однажды стать частью Scala. В докладе будет рассказано, какие возможности на данный момент отличают Dotty от Scala, а также будет дан экскурс в отличия во внутреннем устройстве Dotty и scalac.
We have to build a web API now and then to communicate with other software, partners and clients. It’s a tiresome and error-prone task that gets even worse if you’re willing to utilize the microservice architecture. We can surely take some pain and routine out of this with a typelevel APIs. We’ll take a look into Haskell library/framework called Servant that helps to deal with that particular problem in a type-safe way. We'll explore it to see how we can address the common problems and advance it beyond the current implementation.
Developing theory, model and implementation of minimalistic certified executive environment for a full application stack of components: hardware abstraction, language, virtual machine, message queue, database, HTTP and websocket servers, web application framework etc that is normalized for mass data usage, correct by construction and is usable today. Starting from underlying formalisms such as process and lambda calculus, temporal logic, type theory through virtual machine abstraction to the raw hardware, real world applications and protocol stacks ending up with samples, frameworks and documentation. Keywords: Unikernel, Full-stack, Specification, Formal Methods, Certification, Event Streaming, Time Series, Protocol Analysis, Statistics.
Live coding – writing code in real time in front of an audience – has recently emerged as an expressive way of performing music. Could live coding also increase engagement in programming lessons within schools? Should we be teaching functions and variables or basslines, riffs and live loops? In this keynote Sam will introduce and perform with Sonic Pi, a live coding synth available for free to use on all major platorms including the Raspberry Pi. He will discuss how it has created a huge impact with educators in addition to artists and programmers interested in exploring the creative potential of code. Finally Sam will also offer a window into the Algorave movement: parties where live coded algorithms meet the dance floor.
This talk will go through the concept of event sourcing and show that at its core its really just functional code. You can implement an event sourced system in Object Oriented code but its really hiding what is happening. Have you seen the logo for event store or the cute little dragon? By the end of this talk you will also understand what they mean.
This talk will cover the soon to be released new version of ["hasql"](http://nikita-volkov.github.io/hasql-benchmarks/), a highly-efficient library for integration of Haskell and PostgreSQL. The new version of the library will provide an API for declarative programming, which is also quite flexible yet terse. The talk will cover the architectural and technical solutions behind the library, including the implementation of the PostgreSQL binary protocol. Hasql is used by [PostgREST](https://github.com/begriffs/postgrest), a popular restful API for Postgres.
Functional programming and Haskell are growing faster than ever and provide a great tool for building both small and large robust applications. Lots of web applications start as very small and simple prototypes and then grow quickly and become more complex. Therefore you need a tool that allows high development speed and good performance while making sure that the developers do not get overwhelmed by complexity or overlook trivial security issues. Haskell is perfect for that: The type-system trustfully guides a developer while refactoring and prevents fatal security bugs. This task should give an in depth view on web development using the Haskell web framework «Spock» ( https://www.spock.li). It will give an overview of the possibilities like type-safe routing, hyperlinks, database queries, templates and JSON parsing/generation. It also discusses various techniques on defining REST-APIs and handeling background work.
Известно, что эрланг предназначен для разработки распределенных систем. Это сложная область программирования, и о ней можно много говорить. Но зачем говорить, когда можно просто взять, и сделать что-нибудь интересное? Я проведу сессию программирования на эрланг и реализую механизм выбора мастера для кластера из эрланговских нод с помощью Raft Consensus Algorithm.