I have been writing Scala for a little over three years now and kept coming across this concept called the “Free Monad.” After a while, I decided to do the research to understand what a Free Monad is. This led me down the rabbit hole of functional programming in Scala, which some outspoken people in the community love. My experiences hadn’t been completely positive, so I decided to write my own talk about the Free Monad.
In “Why the Free Monad Isn’t Free” I both defined what a Free Monad is, and discussed the tradeoffs of using patterns like these in your code. The Free Monad is complex enough that it took me a while to fully grasp the concepts, and in a lot of projects this complexity isn’t abstracted away from the user. I argued for practicality; there are so many ways to do anything in Scala (a blessing and a curse) that it’s not necessary to introduce things like the Free Monad in most cases.
The feedback at the conference and since was amazing; people loved hearing this point of view. It has started a lot of great conversations on the subject and I hope to continue to explore and challenge the notions about functional programming in Scala. It was really wonderful to meet and learn from other Scala developers and hear about the challenges they face using the language. From finance to e-commerce to research, I learned so much from talking to the other attendees about their companys’ use cases and it made me excited to be involved in the Scala community.
It was my first conference speaking engagement, so thank you to the teams and Lightbend and Trifork for giving me this opportunity, and to Sharethrough for supporting me along the way. If you’d like to learn more about Why The Free Monad Isn’t Free, my talk is now available on YouTube - check it out!