It’s already been about a year since I started learning F# and functional programming (FP). Perhaps a small update is in order.

I think it’s fair to say that F# and the FP paradigm have rejuvenated my passion for programming. The relative elegance, clarity, and power of FP are refreshing and fascinating, and it’s immensely satisfying to write FP code. I never would have expected F# to take my “favorite language” crown from C#, but it has.

I think many people (including me in the recent past) assume that FP has a much higher barrier to entry than it has. Of course, there are some new (and interesting!) things to learn, but I’ve found that just diving in and learning concepts as I go is sufficient to get started, be productive, and have fun.

What’s next? I intend to do Advent of Code in F# again this year. I’ve also dug into Haskell and OCaml a little too. F# is great, but I’d like to know more about those languages’ more powerful type systems too. I’m still unsure which, if either, I’ll continue with, though.

My opinion: Every software engineer should spend at least some time with a functional-first FP language. (I think F# is a good first FP language for all, but it’s a no-brainer if you’re already a .NET engineer.) Whether you end up liking or disliking FP languages, I feel confident you’ll think about programming at least a bit differently, obtain a deeper understanding of the functional tools that your favorite language probably already provides, and come away a better (or at least more well-rounded) software engineer. At least, I feel that’s been my experience thus far.


<
Previous Post
Option Pipeline Vs. If-Then
>
Blog Archive
Archive of all previous blog posts