How can you avoid casting and Options when dealing with inconsistent HTTP APIs? Scala’s path-dependent types provide an elegant solution that is less intimidating than it sounds. Expect to see simple explanations, and the real-world, open-source code that inspired this talk.
The rumours are true. Writing code in purely functional languages tends to produce code that is much easier to read, modify and reason about.
This talk examines how an experienced Scala team transitioned into writing production code using PureScript in AWS lambda, and services using Haskell.
Take a Scala Native journey with us and learn about systems level programming in your favorite language. We’ll write a natively compiled CLI using Scala Native, and teach participants how they can use the Scala type system to interface with system level shared libraries.
Recently, reactive architectures have “graduated” from being backend-only, to also enriching frontend applications. This talk describes the creation of a multi-user structured document editor, which allows full real-time collaboration business documents, using ScalaJS, Outwatch, and Akka.
Have you heard about all of these breathtaking, purely functional, principled and blazingly fast libraries that handle purity and concurrency in Scala? Interested but lacking foundations and Google doesn’t help much? That’s what this talk aims to address!
Functors are a functional programming central concept… But beyond a buzz word to shine in society, what are they?
I’ll do my best to give you an intuition about what they are in practice but also about what they are in theory by exploring notions of category theory and how both relate!
Property-based testing is a powerful tool to validate our code, but it is only as good as the random generators which produce its test cases. This talk will demonstrate several techniques to take random generators to the next level and expand the universe of useful types that can be generated.
Genetic programming is applicable in a limited domain. Could the reason be the current state of software engineering?
Let’s imagine the future of programming languages (or forgotten past), FP, homoiconic languages and better APIs in the next 20-40 years: can they help genetic thrive?
The SKI combinator calculus can be thought of as a computer programming language, though it is not convenient for writing software. In this talk we’ll use it for live-coding.
IDEs provide support for many tasks that go into creating software. But developers want to be able to use special tools for each task. This shifts the focus from Integrated to Integrating external tools. I will talk about how the Build Server Protocol allows IntelliJ to interface with any build tool
Watch as John furiously scrambles to live code a massively parallel web crawler in the span of 30 minutes. Along the way, you’ll learn about how functional programmers use modern, purely functional libraries like ZIO to solve complex business challenges.
This is about a library, Program Description Based Programming (PDBP), written using Dotty. PDBP implements FP, the language presented by John Backus during his Turing Award winning lecture. During my 2018 Scala eXchange talk I concentrated the design of PDBP. During this talk I will concentrate on the usage of PDBP.
Property-based testing has been praised in various programming communities, but it can still be hard to see how it applies to your day-to-day work. This talk will describe techniques that you can use to test the “ugly” parts of your system, with case studies from the screencast editor Komposition.
Reinforcement learning (RL) is a powerful and versatile machine learning framework, recently gaining in popularity thanks to DeepMind projects such as AlphaGo. You’ll learn what RL is, how it works and how to implement it from scratch in Scala.
Functional programmers in Scala seem to either be fascinated by or afraid of category theory (or both). In this talk, a normal software engineer (without a math PhD) seeks to uncover and explain structures lurking beneath functional Scala code, demonstrating how they can be useful to programmers.
Effect capture is a core tenant of pure FP. But what effect capture style should you use in Scala?
Monad Transformers work well in Haskell, but perform poorly on the JVM. Free Monads allow great abstraction, but involve complex types.
All hope is not lost! Tagless Final is here to save the day.
A transducer is composable algorithmic transformation, but what does that even mean? In the introduction to transducers it’s described as a function with the following signature:
(whatever, input -> whatever) -> (whatever, input -> whatever)
When you have gotten started on your functional journey, realised that life becomes easier with immutability and pure functions and want to have a web server that lets you leverage that.
In this workshop to learn how to use the http4s that is functional, streaming HTTP server and client for Scala.
FINN.no was built on Java, and considers itself a “Java-shop”. What did it take to put business critical applications on Haskell in a place with object oriented history and culture? In this talk I will attempt to create a reproducible formula for you to turn your current job into a Haskell one.
Composition is a very central topic in FP, but why is that? Why is everybody so excited about it and how can I use it to make my life easier?
This talk will show why composition is one of THE key aspects of abstractions from FP and why this is so extremely important (and cool) in daily programming