Listen to a story of how we have dealt with 201 obstacles allowing us to run multithreaded programs natively!
One of the core Scala domains is scalable, concurrent, or parallel data processing, which typically at some point is powered by JVM Threads. However, the Scala Native - an ahead-of-time compiler and runtime for Scala, was for a long time limited to only a single thread of execution. At first glance, it might have sounded like it a not a big deal. Starting system threads is easy...but then, suddenly, you need to deal with memory models, garbage collections, synchronization, data atomicity, and many more blockers, just to provide the same semantics as JVM ensures.
Listen to a story of how we have dealt with 201 obstacles allowing us to run multithreaded programs natively!
I would like to go over the most relevant tools and changes that can improve your developer experience.
In this talk, we will demonstrate some elegant applications of functional programming in Scala, with even more elegant visual results - all with live code and real-time output.
This talk is my slightly expanded version of that statement, and should hopefully understand what "Free" is, what purpose it serves and where it came from.
I propose that we can extend Mirrors to operations, and use the most natural DSL of all - plain trait definitions.