F# is really nice and simple language, not as powerful as Scala, but still very well designed. Two things that immediately come to mind that F# does better than Scala:
- I have to start with syntax. Syntax is the least important aspect of a language, but F# is just so nice. It’s simple, regular, and very light. It has the most crisp syntax I have ever seen, better than Python, Haskell, Scala or whatever else. Scala (and all other languages) should learn from it: https://fsharpforfunandprofit.com/posts/fsharp-in-60-seconds/
- Computation Expressions. Roughly analogous to Scala’s
for
comprehensions or Haskell’sdo
notation, but more generalized and powerful. It cleverly reuses syntactic constructs from regular code (likelet
,use
,for
,try
,while
) and re-purposes them for working on the Computation expression. Scala’sfor
is a wart, especially compared to this. I hope that in 3.x it take as much inspiration from this as possible: https://en.wikibooks.org/wiki/F_Sharp_Programming/Computation_Expressions
I would also guess that Scala code that uses inheritance instead of composition or functions like Any => Unit
(Akka) don’t appeal to people coming over form F#, but that is more of a question of style and the libraries you use.