One Year of F# and Functional Programming
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.