Based on inferences it has a small, enthusiastic and talented userbase and has still language core developers bankrolled by Microsoft.
There's been some worried discussion whether Microsoft wants to continue investing in it or not, e.g.:
https://www.reddit.com/r/fsharp/comments/91gg6j/is_microsoft...
Personally I hope they would continue the investment.
For me, at least, I've had negative experiences with Mono-based applications on non-Windows platforms (e.g. Keepass), so that is scaring me off from wanting to build anything on .NET.
Data science-y stuff is our next target, starting with finishing out our REPL support for .NET Core. It's not fully functional (turns out it's a ton of work!), but when completed it'll have support for ingesting packages in a REPL session, and it'll work with libraries such as ML.NET.
I appreciate everything the open source community does btw. It is just a little frustrating that there is a really cool language and ecosystem that I'm only making glacial progress in.
The main benefit of an industrial language is the entire toolchain including IDE with code higlighting, intellisense capabilities, debugging capabilities, etc. To provide these for F# in Visual Studio requires continuous investment.
Hence, given the not-entirely-committed feel MS is emanating just now for it, if they don't feel supporting F# as a first class citizen on visual studio is worth the investment, they might orphan it to to open source developers. Who probably would hold good care of the core facilities, but would probably lack resources and interest to provide an entire industrial strength stack. I do hope this is not the scenario, and Microsoft will continue investing in the language as a first class citizen on visual studio.
(lots of language stuff at the beginning, but there's a tools and "what we're thinking of next" section afterwards)
To be painfully blunt: The language is really nice as it is. I would prefer it would expand on the bolted-on batteries included utilities rather than new contrived ways of code golfing.
What is critical from industrial point of view that the fundamentals are now and "forever" rock solid. Not how many new language features it will gain.
See C for reference. Nobody uses C because it gets new ways to write shorter code. People choose C for stability[0], not because it's horrible language or because it's a beautiful language.
F# would be fantastical, if it would ossify like C. Then I could write it for the rest of my programming career.
[0] Yes, C moves forward, but with a geological pace
* F# for unit testing
* F# + Giraffe or Saturn deployed to Docker containers on .NET Core (people tend to love the succinct routing and that it all runs on ASP.NET Core in Docker)
* F# for internal tools to ingest and manipulate data, then put it into another place in a much more sane format
* F# with FAKE for a right proper build script
* F# with Azure Functions to perform some scheduled task or something like that (it also helps that Functions is dirt cheap)
Good luck!
However, I have messed around with data manipulation in F# for sports betting, and it's been exceptionally pleasant.
Love the work you guys are doing on the F# team.
Thanks for the compliment! And I hope that it all goes well with you.
[0]: https://aws.amazon.com/blogs/developer/f-tooling-support-for...
[1]: https://read.acloud.guru/comparing-aws-lambda-performance-of...
I recently was trying to decide which language to pick up next: Lisp, OCaml, F# or Haskell (I know a bit of Lisp and Haskell already, as well as some Standard ML).
It came down to two: OCaml and F#. The former has poor support in Windows (work machine), and the latter has less poor support in Linux (home machine). So I decided I'll probably go with F#. I've been told the syntax is quite similar, so how difficult is it to translate an F# program to OCaml. Are all the patterns the same that one can do a more or less 1:1 translation while still being canonical?
The opposite is also true, F# does not have ppx, OCaml's object system, GADTs, polymorphic variants, functors, first class modules, extendable variants.
On the other hand, F# has computation expressions (essentially extensible syntax sugar for certain kinds of operations), as well some nice extensions to the pattern match system.
That's not to say one is exactly better than the other, they just focus on doing different things.
There are still a few deployment scenarios where only C#, VB.NET, C++, JavaScript get to play and F# gets no entry.
A few F# features still don't work on .NET Core, like REPL and type providers.
Speaking of which, type providers is the king of F# demos, instead of discussing how and if ever .NET Native devs will care about F#.
Edit: https://twitter.com/dsyme/status/981799285925842945?s=20
https://stackoverflow.com/questions/179492/f-changes-to-ocam...
http://web.archive.org/web/20080410181630/http://research.mi...
How’s F# adoption?