Hacker News new | ask | show | jobs
by louthy 3247 days ago
I agree, it's been a nightmare. I've dropped support for F# from my FOSS project because I can't get the .NET Core build working alongside the C# projects (and packed in a nu-get package, and deployed all in one process). I know that if I try to use it alongside any C# projects I will almost certainly lose many hours of time and it probably will fail to work at all.

I don't know how much of this is the F# team's fault, but F# the 'eco-system' feels like it's going backwards at the moment.

1 comments

F# the 'eco-system' feels like it's going backwards at the moment.

As in physics, it's all relative. .NET has been moving so quickly lately that the F# team (from my outside-looking-in view) does not have the resources to keep up. You can see that by how stretched thin they are on GitHub issues. I'd imagine things will eventually stabilize once .NET Core settles in, but that'll be a few years.

But you are right, the tradeoff always seems to be "do I want to struggle and learn" or "do I just want to get things done."

If you want to get things done in .NET Core, use C#. If you want to learn functional programming then sure, use F# and the full .NET Framework...but good luck finding help when you need it because compared to the number of people Elixir, Scala, etc - hardly anyone is using F#.

I started learning F#, but ultimately I decided I'd rather learn either Scala or Elixir because they are more "mainstream" functional programming options. If anyone doubts this, compare the number of F# repos to Elixir/Scala on Github.

I've voiced my frustration on several Github issues about the fact that F# is understaffed at MS, that F# is a 2nd class citizen to C#, etc - to no avail. It's fine, management at MS makes those calls...but then they shouldn't be surprised that there's no uptake on F#'s usage.

> If you want to get things done in .NET Core, use C#.

And if you want to get things done in F#, don't use .NET Core. :) Good thing .NET Core is merely the .NET du jour, not the only .NET.

> If anyone doubts this, compare the number of F# repos to Elixir/Scala on Github.

Challenge accepted. It turns out that GitHub's advanced search page can answer questions like this directly:

Projects written in F#: 4,246 (https://github.com/search?utf8=%E2%9C%93&q=language%3AF%23&t...)

Projects written in Elixir: 4,667 (https://github.com/search?utf8=%E2%9C%93&q=language%3AElixir...)

That's less than 10% higher. Plus, I'd guess there is a bias against closed-source projects in that result, owing to the nature of .NET.

Scala is indeed a lot higher at 38,424 projects, though I wonder how many of the complaints about F# from C# users apply apply equally to Scala. (e.g. Poor GUI builder support, no native compiler, etc.)

F#'s language representation on GitHub is also nearly equal to that of OCaml, a much older language.

I'd say that's a pretty good showing for a new-ish language. Not everything's going to pop to the top like Swift, which IMHO is a "people in Hell want ice water" reaction to Objectionable C.

> And if you want to get things done in F#, don't use .NET Core. :)

Yep - stick with the version of .NET that MS is desperately trying to deprecate - remember recently when they tried to get away with not supporting ASP.NET Core 2.0 on the full framework?

> Good thing .NET Core is merely the .NET du jour, not the only .NET.

Yep, who would want to use the cross-platform, modern implementation of .NET?

> That's less than 10% higher.

Except that F# has been around twice as long as Elixir (2005 vs 2011.)

F# is the minor league team that C# farms features from. Nothing more in microsoft’s eyes.