Lambda Days 2020, verso il paradigma funzionale

Giovedì 13 e Venerdì 14 Febbraio si è svolta la settima edizione dei LAMBDA DAYS, una delle più importanti conferenze internazionali sulla programmazione funzionale, dove accademia e mondo del lavoro possono trovarsi e confrontarsi sul tema. È da tempo che Evoluzione sta valutando di adottare il paradigma funzionale, quale miglior occasione dei Lambda Days 2020 per vedere come altre realtà hanno già affrontato il cambio? Ecco una panoramica dei talk che abbiamo avuto il piacere di seguire, con riferimenti a speaker e materiali disponibili.

Gabrielle Keller

Keynote: Functional programming for array-based parallelism

Gabrielle ci mostra della “stregoneria” in Haskell per la programmazione in ambito parallelo, in modo da sfruttare al meglio sia le CPU multiprocessore sia le GPU.

Tomas Petricek

Designing composable functional libraries, not just for data visualization

Cosa è un grafico? Semplice, è un “algebraic data type”. Così Tomas ha affrontato la sfida di creare una libreria di generazione di grafici in ottica funzionale con F#.
Partendo da coordinate x e y su un canvas SVG si arriva a tipi di dato e funzioni componibili per costituire un domanin specific language.

Devon Estes

Comparing common concurrency patterns in Elixir and Erlang

Bella comparazione sui quattro pattern di concorrenza messi a disposizione dalla BEAM partendo dalla semplice creazione di un nuovo processo, cosa banale in BEAM, fino ad arrivare a GenStage approfondendo pro e contro di ogni possibile scelta.

Paweł Szulc

Maintainable Software Architecture in Haskell (with Polysemy)

Perchè quando ai colloqui ci chiedono di scrivere un algoritmo di ordinamento tutto fila liscio (scrivo qualche test, poi un po’ di codice e tutto sembra arcobaleni e unicorni), mentre quando affronto la mia prima user story tutto cambia? Semplicemente perchè nel primo caso il nostro codice non deve interagire con nulla, mentre il nostro software ha molteplici interazioni con il resto del mondo: Pawel ci presenta Polysemy una libreria Haskell per affrontare in maniera più serena la complessità dello sviluppo.

Daniel Beskin

Category Theory as a Tool for Thought

“La teoria delle categorie è una teoria matematica che studia in modo astratto le strutture matematiche e le relazioni tra esse”. Così Wikipedia definisce l’argomento, molto caro ai programmatori funzionali, di questo interessantissimo talk.

William Heslam

Modelling Side Effects via Extensible Effects and Property Testing

Il property base testing è una tecnica molto interessante per migliorare il testing del codice. In pratica invece di testare che 1 + 2 sia uguale a 3, fissando così valore atteso e valore effettivo, questi vengono “variabilizzati” testando delle proprietà del codice: ad esempio applicando due volte la reverse ad una lista si ottiene la lista di partenza.
Così facendo il tool permette di generare centinaia di test, fornendo diverse casistiche di output e aiutando a trovare specifici corner case.

John Hughes

Keynote: How to specify it! A guide to writing properties of pure functions

Keynote di chiusura che fa scopa con il talk precedente, John, co-creatore del tool di property base testing QuickCheck, illustra le diverse metodologie per “creare” proprietà da testare e quali siano le più efficaci.

Viktor Kunčak

Keynote: Proving Algebraic Laws in Scala using Stainless

Stainless è una libreria molto interessante che ha alla base il concetto di verifica formale del codice; in altre parole tramite un DSL si specifica alla libreria come provare il nostro codice. Praticamente con tutti gli input possibili e stainless produrrà un report dettagliato di tutte le possibili anomalie.

Thomas Gebert Nick Misturak

Distributed Programming, Hash Tables, and fun!

Come realizzare un sistema di streaming alla Youtube senza i capitali del colosso americano? Thomas e Nick si sono affidati al p2p tramite distributed hash table realizzando così un Youtube distribuito e peer to peer in clojure e clojurescript.

Evelina Gabasova

The bottom of the iceberg: Enabling data science research with F#

Evelina ci mostra come F# sia stato un match eprfetto per il suo lavoro, Data Scientist all’Alan Turing Institute, e come l’espressività del linguaggio l’abbia agevolata nel complesso mondo dell’analisi dei dati.

Juliano Alves

Enhancing the type system with Refined Types

Refined Types è l’idea di restringere il campo dei possibili input delle nostre funzioni in modo da ridurre inutili controlli e rendere più espressivo il nostro codice. In questo talk Juliano ci mostra refined, una libreria scala atta proprio a questo.

Raphael Sousa Santos

Programming synthesizers live in OCaml

Bellissimo talk che mostra come trasformare in codice le basi della musica e come “comporre via codice” in OCaml.

Amr Abdelwahab

Privilege as a technical debt

Amr porta sul palco uno dei talk meno tecnici ma più interessanti della conferenza, che affronta il tema del privilegio sociale da affrontare come debito tecnico. Nel dettaglio vengono affrontati i concetti dati per scontati nella propria cultura, come ad esempio la presenza di un Nome e di un Cognome, che però stridono con culture diverse.

Van Anh Dam

Keynote: How to let kids outsmart you and why they should?

La chiusura della conferenza è affidata al direttore generale della Centralny Dom Technologii che ci ha illustrato il progetto messo in atto per avvicinare giovani e meno giovani alla tecnologia e alla programmazione. Progetto molto interessante e che ha lo scopo di fornire sia competenze tecniche, sia soft skill che saranno la base della conoscenza del domani. Sul canale youtube trovate tutti i video dei Lambda Days 2020 e delle edizioni precedenti, vi consiglio vivamente di vederli.

Interessante? Chiedici una consulenza