DEV Community

Discussion on: A .NET Manager's Perspective on F#

Collapse
 
shimmer profile image
Brian Berns • Edited

What do you think is the main hindering of larger adaption of F# (or functional in general)?

I think that F# (and FP in general) is simpler than C# (and OOP in general), but not easier. This has several implications:

  • For small problems, it's easier for the typical developer to get stuff done using OOP/procedural logic (e.g. for loops instead of Seq.fold), at the cost of a slightly higher bug rate.
  • For large problems, the complexity of OOP bogs things down because it becomes difficult to reason about behavior (e.g. mutable variables), while FP scales up more linearly (e.g. no side-effects).

This means that an FP developer will sometimes seem stuck on an isolated problem longer, because solving it with correct types and without side-effects can be like a puzzle. However, once the solution actually compiles and runs, it's likely to be superior to whatever an OOP programmer might slap together quicly.

So, eventually, I expect FP to be picked up by more disciplined teams creating large systems, while smaller projects will continue to be implemented in C#, Python, etc., where the benefits of FP don't matter as much.