In this talk, I'll look at the different uses to which tagless final is put to, and see what we can learn about when it is useful and when it just gets in the way.
Tagless final can be either an amazing tool that allows for incredibly expressive code, or a colossal pain in the butt. So how do we make it more the former and less the latter? In this talk I'll describe when tagless final is appropriate, and Scala programming techniques that can make the notational overhead disappear.
Tagless Final is a common in the Scala world, but does it really justify the resulting code complexity? I've spent a decade writing a library using tagless final, so I can't claim I don't like the technique. At the same time I've worked on many codes bases where I felt it added a lot of complexity for little value.
In this talk I'll look at the different uses to which tagless final is put to, and see what we can learn about when it is useful and when it just gets in the way. Then, when we decide it is useful, I'll show how we can use subtyping, extension methods, and path-dependent types to allow the end user to write tagless final code that feels a natural as writing code without it, and won't have people shouting "What the F[_]?!"
In this talk, I'll introduce Bazel, exploring its core concepts and the unique aspects that set it apart from other build tools. I'll dive into some typical challenges Scala developers might face when working with Bazel.
Discover how functional programming can inspire creativity with the Scala Sampler, a digital music instrument developed for the Sounds of Scala web audio library.
In this talk I will explain the inner workings of an organisation that goes into releasing, maintaining and developing Scala and core parts of its ecosystem.
In this talk, I will discuss why it's hard to use the power of RT to test side-effect-heavy apps.
In our talk, we will introduce a novel approach to system design— TypeOps — in which the application and infrastructure layers are fused to provide unprecedented safety and productivity for Scala teams.