3 ms·
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
by fsloth 4y ago
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 https://www.tiobe.com/tiobe-index) it seems to be nearly on par wit Scala and much more popular than Haskell or Ocaml.
- pjmlp 4y agoPretty good if only what one cares about is CLI and class libraries. According to JetBrains developer survey, an amazing 3%. https://www.jetbrains.com/lp/devecosystem-2022/csharp/ https://www.jetbrains.com/lp/devecosystem-2022/csharp/
- fsloth 4y agoTooling: 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.
- pjmlp 4y agoNot 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.
- fsloth 4y agoI 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 :)
- qwerty456127 4y ago> 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#.