Schedule

Welcome Guests, Registration, Pizza, Refreshments & Networking

17:00 - 17:45 UTC

We’ll kick off the ScalaCon Meetup at G-Research with welcome drinks, food, and a chance to network with fellow Scala fans.

KEYNOTE: Simply Scala

  • Martin Odersky
  • EPFL
18:00 - 18:45 UTC

Scala lets us write beautifully simple code. It incurs very low boilerplate and does not restrict expression in arbitrary ways. Scala itself is also quite a simple language, with few constructs that compose well. On the other hand, Scala is often described as difficult. I believe this criticism is not so much directed at the language itself but at certain libraries, frameworks and applications written in Scala. In my talk I want to raise this problem, and start a discussion how the Scala ecosystem can do better.

Networking

19:15 - 20:00 UTC

-

KEYNOTE: Tournesol: An Open-Source Project for Collaborative Algorithmic Governance

  • Lê Nguyên Hoang
  • Tournesol Association
15:00 - 15:45 UTC

Today's large-scale algorithms, especially recommendation systems, play a major role in the spread of disinformation and hate speech. Yet, they are increasingly opaque, despite repeated scandals in big tech companies. In this talk, after underlining the danger they now represent for national security and global peace, I will present Tournesol, an open-source AGPL platform to collaboratively design a public utility content recommendation algorithm. I will stress in particular the mechanisms that were designed to secure the platform. I will then conclude by stressing the urgent importance of security, especially in the current geopolitical context.

How to avoid safety hazards when using closures in Scala

  • Philipp Haller
  • KTH Royal Institute of Technology
16:00 - 16:45 UTC

Closures, or lambda expressions, are an essential language feature to work productively with data processing engines and they enable functional programming. In this talk you will learn how to avoid safety hazards and runtime errors when using closures in concurrent or distributed settings.

Scala with batteries included?

  • Krzysztof Romanowski
  • VirtusLab
17:00 - 17:45 UTC

Python is known and loved for its battery-included approach. In this talk, I'll explore if Scala can also include batteries: all the tools and libraries needed for small but meaningful projects. Let me convince you that vanilla Scala may be all you need in the near future.

Mid-Day Break

17:50 - 19:00 UTC

How to Test a Milion Lines of Code without Writing a Single Test

  • Wojciech Mazur
  • VirtusLab
19:00 - 19:45 UTC

You might have already created hundreds of tests for Scala 3 and still be unaware of that! How is that possible? Let's talk about the Scala 3 Community Build!

Fetchless - A New Take on Data Retrieval

  • Ryan Peters
  • 47 Degrees
20:00 - 20:45 UTC

Fetchless is a total reinvention of the famous Scala "Fetch" library that is rebuilt from the ground up to be more flexible, extensible, and meet the needs of modern Scala effect systems and their users while also being an order of magnitude faster in worst-case scenarios.

A Practical Skeleton for Your Next Scala/Scala.js Web Application

  • Alexis Hernandez
  • Wiringbits
21:00 - 21:45 UTC

I'm sure that you have saw yourself writing the same boilerplate code many times when working in new web applications (registration/login/layout/etc), that's was my case until I decided to create a nice skeleton that's easy to get into by juniors, easily saving 1 month of work for every new app.

Data-Centricity: Rethinking Introductory Computing to Support Data Science

  • Kathi Fisler
  • Brown University
22:00 - 22:45 UTC

On a growing number of campuses, data science programs offer introductory courses that include a non-trivial amount of programming. The content of such courses overlaps that of traditional computer science introductory courses, but neither course subsumes the other. This talk argues that a common introductory course that covers both data science and data structures supports students and provides curricular flexibility, while also bringing social impacts of computing into the early curriculum. We'll discuss both the design and implementation of such a course, with particular focus on programming language features that support it.

Type-level Programming in Scala

  • Matt Bovel
  • EPFL
12:00 - 12:45 UTC

In Scala 3, you can do more with types by the virtue of match types and type-level operations, which increase the design space for compile-time verification. For example, operations for type-level arithmetic are available which can be used to verify the correct dimensionality of matrices in machine learning projects.

It quacks but it’s not a duck: structural typing in Scala 3

  • Michał Pałka
  • VirtusLab
13:00 - 13:45 UTC

Imagine you could write type-safe code without having to modify your data model classes every time you update a database query. Or access members of deeply nested data structures without boilerplate. With structural typing in Scala 3 you can make these dreams come true and get even more.

KEYNOTE: Towards a Healthy & Resilient Scala Community

  • Darja Jovanovic & Adam Goodman
  • Scala Center, EPFL
14:00 - 14:45 UTC

What constitutes a healthy community? How do we get there and who needs to participate to make it a reality? Where does Scala community stand now? And how does Scala Center's Scala governance project fit in all of this?

While exploring these questions, the authors encourage attendees to take action and join the movement, taking away three points * It is possible to foster a healthy Scala community * Scala Center is investing in community building * Success requires individual community member’s engagement.

Managing micro-libraries with Scala CLI

  • Alexandre Archambault
  • VirtusLab
15:00 - 15:45 UTC

Scala CLI is a new and versatile tool to compile, test, run, package, and publish Scala projects. While it's handy for experiments and scripting, its cross-compilation and publishing support make it the perfect tool to manage micro-libraries from beginning to end, as we'll demonstrate in this talk.

Mid-Day Break

15:50 - 17:00 UTC

Scala in Ukraine

  • Maciej Gorywoda & Roksolana Diachuk
  • JetBrains & Captify
17:00 - 17:45 UTC

Come to hear a story, leave making plans for a trip to Ukraine.

We will tell you about how Scala came to Ukraine, who was the first to use it and how, but also who are the people of the Ukrainian Scala community, what are their thoughts and plans, and how you can get involved.

Preparing Apache Kafka for Scala 3

  • Josep Prat
  • Aiven
18:00 - 18:45 UTC

Migrating Open Source projects to Scala 3 will be a recurring task in the future. Check out our experience while proofing the migration of Apache Kafka. We’ll share the obstacles faced, like tooling and compatibility checks, as well as where the community can improve to make such migrations smoother

Function Reuse is just Wishful Thinking

  • Nicolas Rinaudo
  • Scala & FP enthusiast
19:00 - 19:45 UTC

Functors, monads, etc... can be both very useful and extremely intimidating.

This talk will introduce and justify them in a real life scenario, staying away from their more academic interpretations. It will allow attendants to build a solid intuition for the problems they actually solve.

Autograder for Functional Programming and Beyond

  • Dragana Milovancevic
  • EPFL
20:00 - 20:45 UTC

In this talk, we present an automated approach for formally verifying the correctness of functional programming assignments. Our approach takes a small set of reference solutions and a set of student submissions and checks, for each submission, whether it is provably correct. We start by introducing our technique for automated equivalence checking, using the Stainless verification system. Our approach automatically matches function calls, generates proofs by induction, and checks them using SMT solvers. We then present our clustering algorithm that efficiently treats many programs at once. We conclude by demonstrating the effectiveness of our approach in practice, looking at various introductory Scala exercises.

Getting started with Scala.js, Laminar and Vite

  • Sébastien Doeraene
  • Scala Center
09:00 - 09:45 UTC

Starting from scratch, we build a small Scala.js (https://www.scala-js.org) application with a minimal, live-editable bar chart. We show a setup for a fast save-refresh cycle. We use Metals, sbt, Vite, Laminar, Chart.js and ScalablyTyped. Includes an intro to the FRP model of Laminar.

Building a Debugger for Scala 3

  • Adrien Piquerez
  • Scala Center
10:00 - 10:45 UTC

Building a debugger for a high-level programming language like Scala 3 is a challenging task. In this talk I will decompose it in smaller problems and describe our solutions: a debug server, an expression compiler and a step filter.

Grackle - GraphQL server

  • Rafał Piotrowski & Miles Sabin
  • Iterators & Underscore Consulting
11:00 - 11:45 UTC

During this talk, we will give a short introduction to GraphQL, present the Grackle GraphQL server, how it can be used, and how it compares to other well-known solutions like Sangria and Caliban. We will prepare a Scala sample project presenting the usage of these 3 servers.

Say goodbye to implicits - contextual abstractions in Scala 3

  • Magda Stożek
  • SoftwareMill
12:00 - 12:45 UTC

Scala 3 is out, but is it worth switching to? In my opinion, yes, because the authors addressed some important pain points, and for sure implicits are one of them! In Scala 2 they're used, confused and abused - let's see how much better it is in Scala 3 :)

Mid-Day Break

12:50 - 14:00 UTC

Speck flavored streaming micro-services with Akka

  • Andrea Zito
  • -
14:00 - 14:45 UTC

In this talk, we will dive into the world of streaming micro-services and we'll explore together the typical development journey starting from the raw input, all the way to a persisted, clustered prototype. This will be possible by leveraging Spekka's productivity enhancements to Akka Streams.

Taming the context beast

  • Paweł Marks
  • VirtusLab
15:00 - 15:45 UTC

Context functions are the new beasts in the Scala jungle. I’ll show you what they can do, when to be wary of them, and how to tame them. Finally, I’ll answer whether they really hate composition as much as it’s rumored.

The middle way for static typing in Spark DataFrames

  • Alfonso Roa
  • Habla Computing
16:00 - 16:45 UTC

No static typing with DataFrames, too much static typing with

Datasets. Steer clear of both extremes, and embrace a new proposal of typed column expressions! Brought to you with the help of functional programming patterns, Scala idioms, cats, shapeless and other libraries of the Scala ecosystem.

What logic can teach us, Scala programmers

  • Juan Manuel Serrano
  • Habla Computing
17:00 - 17:45 UTC

It turns out that logic is a great source of exercises for mastering algebraic data types, dependent types and other Scala features. Take the challenge of using Scala 3 to prove Aristotle's syllogisms or Smullyan's logical puzzles, and bring your type-driven development skills to the next level!