DEV Community

Discussion on: What is your "Coder/Language Fit"

Collapse
 
ssimontis profile image
Scott Simontis

I think you would love F# (or Haskell or any other functional programming language) for the strong type system the languages are built around. If you design your types correctly, a lot of errors will be caught at compile time. fsharpforfunandprofit.com has some really cool articles and uses of F#, but he does NOT know how to write for beginners. I had to learn functional programming by other means before his stuff clicked with me, but once it did I learned some mind-blowing things.

Thread Thread
 
mindplay profile image
Rasmus Schultz • Edited

I'm actually not fond of purely functional programming languages. While they're great in theory, I find that the barrier of entry is too high for most people, and code in functional languages tends to be more nested and harder to understand.

It's not a skill that most people acquire easily - and while you could say that it's worth the investment (and you'd probably be right) there is a shortage of talented programmers to begin with, most of them do not know functional programming.

Besides, I don't think there's really a functional programming language that is popular enough that you could describe it as "mainstream"?

I do think that programmers should know some functional programming language concepts and have an understanding of the qualities, but, from my perspective, it's better to choose mainstream languages that also allow functional programming - so we can apply the concepts when it makes sense and adds value, but, the rest of the time, we can leverage the talents of the majority of the talent pool.

Thread Thread
 
ssimontis profile image
Scott Simontis

You bring up a lot of really good points. The learning curve is pretty insane, from me hearing about functional programming and trying to learn it for the first time until I felt moderately comfortable using it, 2 years had passed. Some of that is the lack of good resources or poor community support, but it is difficult.

Scala might be the most mainstream language that you can use for FP? And of course Javascript. F# still feels like a second-class citizen in the .NET world. Getting .NET to play well with F# can be a PITA. I get away with using it for scripts and that's about it. I get confused trying to scale out a large project - OK I can write a monad and implement some cool data transformation, but how d I write an entire program functionally? I don't see any tutorials offering that.

It has changed the way I write C# and JS in a positive way. I am about to start contributing to the F# foundation I think. Making it viable...one ticket at a time!