Hacker News new | ask | show | jobs
by gmantom 3774 days ago
Why not just use F#, it's better than Scala and C# at these sorts of things and functional first and immutable first.
1 comments

It's really not. I worked for a .NET shop that migrated some new projects to Scala. We evaluated F#, but decided the power of Scala was worth the platform switch. F# lacks higher kinds and implicit parameters, meaning you can't really use the type class pattern. This hurt our productivity.
> lacks higher kinds

It can be done in F# [1], but it's not pretty, and absolutely nails the compiler. The fact that the compiler can be cheated into doing it makes it even more frustrating that there isn't some official support.

[1] https://github.com/mausch/FsControl

> F# lacks higher kinds and implicit parameters, meaning you can't really use the type class pattern. This hurt our productivity.

Genuinely curious, but what are you doing that the lack of type classes hurts productivity so much?

It's just annoying to have to re-implement sequence/traverse and every combination of monad stacks you want to for each type. It's doable, but bug prone and frustrating.

I now work for one of the largest scala teams in the US. We make heavy use of the Scalaz project and regularly use monad transormers or free monads and both require higher kinded types.