F# is installed by default with Visual Studio, and the tooling is pretty good. I think it hardly is second class citizen? Not promoted nearly as much as C# for sure.
AFAIK F# is on quite solid foundation, as there is the F# foundation that would keep ball rolling, so to speak, were Microsoft to renounce the language.
I have no idea what the marketshare is though. On Tiobe (https://www.tiobe.com/tiobe-index) it seems to be nearly on par wit Scala and much more popular than Haskell or Ocaml.
Tooling: Not only CLI and classlibs. The debugger in Visual Studio follows calls to c/c++ dll:s over pinvoke withhout a cinch. (Same as C#). If you wrap complex entities in e.g. Protobuf then writing hybrid applications is pretty straighforward and on solid ground.
All of the GUI stuff is missing of course. I would not advice to implement a GUI on top of F#.
The main feature of F# imo is it's succint type system where one can wrap everything in a type without much bureaucratic cost, but in a way that makes program structure so much more obvious. "If it compiles it's correct" is prety much how it goes.
Not enough to justify many .NET shops to go multi-lingual projects.
They already have to use C# no matter what, given the GUI and database frameworks.
Adding C++ or PowerShell into the mix might happen, due to
the frameworks and workloads that require reaching out to them.
While adding F#, even if more expressive, it barely makes sense from business point of view.
It isn't as if a mixed C#/F# codebase brings the same value as doing Python/C++.
Also to note that while F# team has pivoted into trying to make F# attractive to data science, their employer is one of the reasons why CPython is now taking performance more seriously.
I would claim the business benefit of F# would come from a more succint, legible and correct codebase that saves developer time, but I have no basis for that argument except intuition I get having developed both in C# and F#. Also I know much better engineers than me to whom this would be a nill-argument ("You can write everything really fast, just don't make mistakes").
"It isn't as if a mixed C#/F# codebase brings the same value as doing Python/C++."
I think it depends on industry and domain what the value add specifically is? To me it would totally make sense to have small, succinct business logic module in F# that talks natively to a verbose chunk of C# wpf for instance.
"Also to note ... CPython is now taking performance more seriously."
Personally I would not hold Python isomorphic to F# on any architectural level, the former not having the typesystem of F#. IMO the whole point of F# is the wonderful typesystem, immutability first, combined with full .NET ecosystem.
On the other hand I would not try to use F# for the stuff I use Python for - so trying to take Python head on does not sound like a super good strategy.
I guess F# will languish in the "few percenter limbo" in the best case. But it IS a really nice language :)
> While adding F#, even if more expressive, it barely makes sense from business point of view.
F# code is much more reliable and requires much less people to write. Isn't this good for business?
The only problem with F# is it's not always immediately readable to those who are not familiar with it (so it's harder to find the people to hire), isn't it?
I just wonder how much harder it is to teach a random person (without even a rudimentary programming skill) to code F# than to teach them C#.
AFAIK F# is on quite solid foundation, as there is the F# foundation that would keep ball rolling, so to speak, were Microsoft to renounce the language.
I have no idea what the marketshare is though. On Tiobe (https://www.tiobe.com/tiobe-index) it seems to be nearly on par wit Scala and much more popular than Haskell or Ocaml.