Your source of geek knowledge


Latest stories

Myths about F#: F# is for FP, C# for OOP! No, F# loves OO.


Sometimes when I talk to C# developers about F#, they say they don’t want to switch to a functional programming language. When I reply that F# is my favourite object-oriented programming language, they look a bit puzzled. They typically think that F# is for functional programming, while C# is for object-oriented programming. And this is wrong!

Using SRTP-Active Patterns in F#

Country codes mapping JSON

A few days ago, we embarked on the process of tidying up a particularly complex piece of code. It involved moving typical frontend code to the backend, as it was becoming too cumbersome and we felt more secure writing it in F# in the backend. (more on that in another blog post) After much of it was rewritten, we ran into a pattern matching construct that threatened to contain a lot of code duplication. To increase readability, we wanted to use an Active Pattern. The problem was that the...

Myths about F#: F# is for math problems only! No, F# is a general-purpose programming language.


When I show F# code to non-F#ers, I often get a reaction that goes something like this: “This code looks kind of nice, but we don’t have math problems to solve, so F# is not for us.”

By the way, the code I show typically has nothing to do with math. We don’t solve math problems with F#. We write a business application with it.

So I wonder why I hear this almost every time when I present about F#. Some guesses:

Myths about F#: C# will become F# anyway, so we don’t need F#! Nope, not happening.


C# indeed gets more and more features known to F#, like pattern matching, switch expressions, records, a way to deal with nulls, and someday maybe even discriminate unions and deep equality on collections. Maybe even type inference could become as powerful as in F#. However, C# can’t eliminate the features it already has, like mutability by default and statements. Immutability by default and expressions-only are strengths of F# and make building error-free apps easier. Real pipes and...

Recent Posts