I started on my path to learning F# because I was looking for a way to write a backend for my elm client app, I just decided to give it a try , and I haven’t turned back since. The language just gets a lot of things right to me, it’s about as practical as you can get in terms of an FP language used for general purpose programming. One thing to note though, is that IMO, the popularity of F# in the future will rest largely on how popular Fable becomes. Javascript is literally everywhere, “Isomorphic” stacks is the new trend (not really new at this point) and the main driver for the popularity of node is the use of one language for the entire stack. FP is hot right now in the JS community, and this is where F# can really shine and show it’s worth, just look at how popular elm is, but guess what? You can’t use elm on the backend, and this is were F# wins.
Safe Stack is cool, but there’s still tons of work to be done in regard to tooling around it, and also the dependency on react needs to be removed. On the backend, .net core is well developed and things keep getting better, but on the client, it’s a different story, I am reasonably experienced with javascript, so using bundlers, module loaders , and setting up various aspects of the toolchain is fine for me, (though i’m not a fan of webpack), but this is not an attractive option for someone new to F# who wants to do full stack development, All of a sudden, for one program to run you have packet.dependencies, package.json, yarn run, fake build, and so on. The whole process should be more seamless and streamlined, the entire scala.js workflow is a part of SBT , gopherjs - everything is built using gopherjs commands, elm has the best tooling there is on the client to me, better than JS itself! If this becomes the story for Fable using fake, and the overall ecosystem around fable continues to grow (more bindings “ts2fable needs more love”, an actual home for fable packages ala package.elm-lang.org ) things could start to spread more. As for me, I’m really happy with F# so far and I definitely plan to contribute to the community as much as time permits , .net core + fable is just to cool for “full stack cross platform functional development” <— ( The current appeal of F# ) not too!