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.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
I think that F# (and FP in general) is simpler than C# (and OOP in general), but not easier. This has several implications:
for
loops instead ofSeq.fold
), at the cost of a slightly higher bug rate.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.