Top 10 Functional Programming Posts from 2021

Top 10 Functional Programming Posts from 2021

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 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 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 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.


#4 - Typeclasses in Scala 3 Typeclasses in Scala 3

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 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 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 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.


8 - What is F[_] in Scala? What is F[_] in Scala?

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 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 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.

Ensure the success of your project

47 Degrees can work with you to help manage the risks of technology evolution, develop a team of top-tier engaged developers, improve productivity, lower maintenance cost, increase hardware utilization, and improve product quality; all while using the best technologies.