Po Lambda Days 2016

W zeszłym tygodniu odbyła się konferencja Lambda Days – dali czadu 🙂 Tematem przewodnim jest wszystko wokoło programowania funkcyjnego, jako że to bardzo obszerny temat szczególnie podobało mi się odrobinę ‘lżejsze’ podejście i duża ilość wystąpień nie związanych z konkretnym językiem czy technologią. Sesji typowo technicznych “jak napisać aplikację funkcyjną w X” było niewiele i szczerze mówiąc wypadły one słabiej. Trochę pewnie wynikało to z stosunkowo krótkiego czasu przeznaczonego na prezentacje (45min).

Jako że FP matematyką stosowaną stoi nie zabrakło sesji pokazujących praktyczne rozwiązanie problemów przy użyciu jakiejś koncepcji teoretycznej. I to moim zdaniem była najciekawsza część – część akademicka była zwykle niebanalna ale też na tyle dobrze pokazana i przez to prosta do przełknięcia, że mało kiedy można było czuć się zagubionym a po wielu sesjach aż chciało się od razu usiąść i dowiedzieć/zrobić coś więcej.

Krótki opis kilku sesji na których byłem:

Dzień 1

Philip Wadler: Propositions as Types (keynote)
Prawdziwa bomba – pełna napięcia (i humoru) podróż po historii kilku koncepcji ze świata FP. A nawiązania do “Dnia Niepodległości” i płyt wysłanych w kosmos na Pionieerze – boskie. Obejrzyjcie.
Ocena: 5/5

Andrea Magnorsky: A brief history of programming languages
Pełen pasji ale niestety też bardzo chaotycznie poprowadzony przegląd kilku/-nastu języków. W sumie niewiele brakowało żeby było całkiem nieźle ale trochę za bardzo brakowało jakiegoś celu albo myśli przewodniej. Ot, kilka fajnych ciekawostek.
Ocena: 2/5

Robert Virding: On Language Design
Roberta warto było poznać bo to jedna z osób stojących za Erlangiem. Sesja dotyczyła tego jak projektować język programowania – jeśli dobrze zrozumiałem to bardzo surowo, bez złożonych smaczków syntaktycznych i nie dając możliwości zrobienia czegoś na dwa sposoby. Myślę że wśród wielu były to bardzo niepopularne hasła ale widać było że wynikają z bardzo wielu lat doświadczeń. No i najważniejsze, co przewinęło się też na innych sesjach – język powinien być stworzony do rozwiązania jednego konkretnego problemu.
Ocena: 4/5

Tomas Petricek: History and philosophy of types
Tomas był kolejną osobą którą bardzo chciałem poznać i znałem do tej pory tylko z książek i artykułów o F#. Sesja pokazująca że w “typach” jest koncepcyjnie znacznie więcej niż możemy sądzić. Całość ciut za bardzo przegadana i zbyt filozoficzna ale i tak ciekawie się słuchało.
Ocena: 4/5

Rob Martin: Teaching functional programming to n00bs in mobs
O tym jak wdrażać nowych programistów i dlaczego warto zaczynać od razu od języków funkcyjnych.
Rob mówił jak w swojej firmie stosuje ‘mob programming’ czyli stawianie 5-15 ludzi przed dużym telewizorem i jedną (zmieniającą się) osobą z klawiaturą. Brzmiało fajnie.
Ciekawa dygresja: ponoć 80% języka którego używamy do komunikacji z dzieckiem to język imperatywny (zrób to i tamto) a z dorosłymi to w 80% deklaratywny (kiedy czymś się dzielimy i zwykle nie oczekujemy odpowiedzi).
Ocena: 4/5

Tomasz Kowal: Elixir and Elm – the perfect couple
Krótka sesja wprowadzająca do tych technologii.
Ocena: 3.5/5

Artur Skowroński: Embracing change – how to introduce Clojure into your company technology stack seamlessly
Temat bardzo interesujący – w końcu wielu z nas pracuje w firmach gdzie chciałoby choć w małym obszarze wprowadzić jakąś fajną nową technologię. Niestety praktycznie cała prezentacja składała się ze śmiesznych obrazków i animacji na slajdach. Fakt, autorskich i świetnie zrobionych (szczególnie te z Cthulhu:) ) niestety treści nie zostało z tego wiele. A szkoda bo Artur sprawiał wrażenie osoby znającej się na temacie.

Dzień 2

Konrad Malawski: The Zen of Akka
Akki nie znam ale i tak z sesji wyniosłem parę fajnych perełek jak to że domyślny Javowy serializator może zepsuć wydajność całego środowiska aktorów.
Ocena: 4.5/5

Evelina Gabasova: The F#orce awakens
Chyba jedna z najlepszych prezentacji, świetne połączenie teorii (metryki na grafach) do zbadania ciekawego problemu (kto i na jaki sposób jest ważny w filmach SW I-VII) przy użyciu fajnej technologii (F# & R). Tutaj jest jej post na ten temat.
Jeśli ktoś chce dowiedzieć się więcej na temat arcyciekawej teorii która za tym stoi polecam świetny kurs Networked Life 
Ocena: 5/5

Dmitry Ivanov, Nami Naserazad: Practical demystification of CRDT
Opis w zasadzie ten sam co w przypadku ‘The F#orce’ – ciekawy problem (implementacja struktury danych z odporną metodą scalenia jako odpowiedź na pewne problemy w środowisku rozproszonym, tutaj do synchronizacji ‘ulubionych’ w TomTomie) pokazany w przystępny sposób zarówno z punktu widzenia teorii jak i kodu. Po takim wstępie aż chce się dowiedzieć więcej i samemu przy tym podłubać.
Ocena: 5/5

Michał Płachta: Purely Functional Web Apps
Świetna technicznie sesja ale jak dla mnie podejście nie do końca trafione – 45min to za mało żeby pokazywać taką ilość kodu i jednocześnie tłumaczyć koncepcje.
Ocena: 3/5

Bartosz Milewski: The Truth about Types (keynote)
Wyszedłem wcześniej ale pierwsza połowa była tak wolna że pewnie i tak bym nie wytrzymał 🙂 Niemniej sama ‘teoria kategorii’ na pewno warta uwagi.

Ogólnie to chyba najlepsza konferencja na której byłem. Dzięki i do zobaczenia za rok!

 

maglkp@gmail.com