Numeric Programming with Spire & State vs. Stateful Actor
Using the opportunity of Lambda Days (http://www.lambdadays.org/lambdadays2019/) happening in February in Krakow, we managed to convince two fantastic speakers to come and share some of their experience with Scala community in Krakow.
Talk #1: “Numeric Programming with Spire” by Lars Hupel
Numeric programming is a notoriously difficult topic. For number crunching, e.g. solving systems of linear equations, we need raw performance.
However, using floating-point numbers may lead to inaccurate results. On top of that, as functional programmers, we’d really like to abstract over concrete number types, which is where abstract algebra comes into play.
This interplay between abstract and concrete, and the fact that everything needs to run on finite hardware, is what makes good library support necessary for writing fast & correct programs. Spire is such a library in the Typelevel Scala ecosystem. This talk will be an introduction to Spire, showcasing the ‘number tower’, real-ish numbers and how to obey the law.
Lars (https://twitter.com/larsr_h) is a consultant in Munich, Germany. He has been using Scala for quite a while now, and is known as one of the founders of the Typelevel initiative which is dedicated to providing principled, type-driven Scala libraries. He also talks about Haskell and Isabelle a lot.
More info --> https://lars.hupel.info
Talk #2: “State vs. Stateful Actor” by Krzysiek Otrębski
During this talk I will show you how we can move the logic from actors into a monad state. We will see the benefits of the logic implemented in composable, side-effect-free way.
The talk is based on a project that keeps all of the business logic inside actors. Our goal is to refactor actors into a monad state. The changes will make the application more testable and comprehensible.
Krzysztof (https://twitter.com/kotrebski) is a software developer with 10 years of professional experience. Having spent many years on Java programming and problem solving, he has developed useful tools that make a programmer’s life easier. He is also a founder of a few open-source projects.