Top 10 Functional Programming Posts from 2021
by Jason McClellan
- •
- December 21, 2021
- •
- kotlin• arrow• scala• haskell• swift• functional programming
- |
- 5 minutes to read.

It’s that time of year again when we look back at the ten most read stories from the 47 Degrees blog. After the requisite drum roll and fanfare have played in your head, I’m happy to present to you our most read stories during 2021:
#1 - Functional Domain Modeling in Kotlin
Simon Vergauwen wrote this post back in February, explaining what functional domain modeling is, and he describes that the goal of functional domain modeling is to describe your business domain as accurately as possible to achieve more type-safety, maximize the use of the compiler with the domain and, thus, prevent bugs and reduce unit testing. And, through this post, he demonstrates why Kotlin is a great fit for it.
#2 - Arrow 1.0 is now available
In September, our CTO Raul Raja published this post announcing the long-awaited general release of Arrow 1.0. Arrow is a collection of libraries that complement the Kotlin ecosystem with functional patterns and data types. This post describes the most noteworthy features introduced in version 1.0 to Arrow Core, Arrow Fx, Arrow Optics, and Arrow Meta.
#3 - Functional Domain Modeling in Kotlin - Validation
The “Functional Domain Modeling in Kotlin” series of posts from Simon Vergauwen was popular this year. This second post in the series also made this year’s list, and it continues where the previous post in the series left off. This post shows how to use Either
and Validated
to achieve different goals.
Scala 3 made its debut in 2021, and this post, focused on one of the fundamental building-blocks of typed functional programming: typeclasses, is one of several that Noel Markham wrote to help with the transition to Scala 3. It’s intended to serve as an introduction those who are unfamiliar with typeclasses. But, for those who have used typeclasses in Scala 2, this post illustrates how Scala has evolved to bring them to the front of the language.
#5 - Higher-kinded data in Scala
Our engineers love sharing knowledge with the community, and this post is a great example of that. Very early in the year, Chris Birchall wrote this post to explain the concept of higher-kinded data, and he shares a real-world example to show how it can be useful in Scala.
6 - Effects and Contexts in Kotlin
Modeling data is an important part of software design. And so is how you choose to model your behaivors. That’s what this post from November by Alejandro Serrano dives into, and he shows you how to simplify your Kotlin code with effects, avoiding heavyweight dependency injection frameworks on the go,
7 - Database Persistence in Kotlin
Because there are many database frameworks out there, Daniel Montoya wrote this post in April to walk through the features of two popular database frameworks: SqlDelight and Exposed. He gives a comparison of these two, and provides information to help you determine which framework is right choice for you and your project.
The Scala language features one of the most sophisticated type systems, which can make it incredibly challenging to learn and/or understand it. So Sarpong Abasimi took the time to write a post focused on one of these types: the F[_]
. This is an example of a type that initially confused Sarpong, so, in this post, he takes the time to fully explain what it is, and why you even need it.
9 - Automatically Deriving Typeclass Instances in Scala 3
This post from May is a continuation of Noel Markham’s excellent and helpful look at type classes in Scala 3. With this post, Noel focuses on Automatic Typeclass Derivation, and he demonstrates this trick to have the compiler write the code for you.
10 - Run a fs2-kafka stream with scala-cli and Scala 3
Finishing out our list is this post from Miguel Garcia Puyol where he demonstrates how to build a fs2-kafka stream and run it on Kubernetes with scala-cli. This post is yet another example of our engineers and their desires to share information and knowledge with the community. In this post, Miguel shares a real use case from a project he worked on. But, going further, he also provides additional use cases and resources too.
So there you have it! This is our list of the most read posts on the 47 Degrees blog for 2021. But this only represents a sample of the awesome posts added throughout the year. So make sure to check the blog periodically to see all the great functional programming content we publish regularly. And, if you don’t already, consider following 47 Degrees on Twitter to be among the first to know when we publish new posts in the blog.