We’ll kick off the ScalaCon Meetup at G-Research with welcome drinks, food, and a chance to network with fellow Scala fans.
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.
-
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.
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.
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.
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 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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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 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.
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.
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 :)
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.
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.
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.
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!