Live data from Hacker News

Ask HN: Why isn't F# more popular?

news.ycombinator.com

21–30 of 115 posts

Re: Ask HN: Why isn't F# more popular?

#21
I love F#. Switched over from the other .NET languages as soon as it came out and I haven't looked back. F# helps me to become a better programmer.

What's wrong with ti? I wish F# had more OCAML to it. Functors would be cool.

Why isn't it more popular? Sad to say, most programmers don't really care about being a better programmer. They care about getting a job, keeping a job, and getting promoted -- none of which might involve learning a functional language.

To be fair, there's also a different paradigm programming functionally with larger development teams, a skill that many shops haven't mastered. Three guys in a startup would be fine. Three hundred guys in a mid-sized firm could have a lot of problems switching over. I grok that.

I'm kind of surprised F# is as popular as it is. Microsoft deliberately downplayed it when it came out, calling it a "scientific" language. I think that coders realize the open source power the language brings to *nix boxes, the more popular it'll get.

Let's put it this way: there are a ton of other languages I've wanted to try, but so many of them just aren't "done" yet -- there's still a crap ton of things missing. F# isn't like that. You pick F# up, you can code just about anything, and the community is there for support. I don't see that advantage changing any time soon.

Re: Ask HN: Why isn't F# more popular?

#22
post #10
post #7

Functional languages are less popular. They are harder to learn and to use. Proprietary platform are less popular. And .net is was very closed at the begining. Non cross platform languages are less popular. And mono is not really that great on linux. Plus the usual communication, timing and hype factors.

I believe f# works on .net core.

I don't believe any serious project uses only core

Re: Ask HN: Why isn't F# more popular?

#23
post #4

I think it's two things. If you write a lot of F# then if anyone leaves you need to replace them and it's harder than finding a C# developer. Secondly most of the libraries you interop with are C# and so you have to go through interop which is more annoying.

What's surprising is that Scala/Java basically has the same issues, but Scala seems to be more popular due to early adoption by several industry actors (Twitter IIRC).

Re: Ask HN: Why isn't F# more popular?

#25

Most of the programmers do programming for a living. They are not passionate programmers who like to learn new languages. They care about getting things done. Since Java, C#, Python, JavaScript, Ruby and Rails, PHP are all popular and have huge library ecosystem around them, for most of the 9 to 5 programmers, there is little incentive learn any functional language. Also since all popular and dominant languages are e…

Agreed. At some point, if your language(s) of choice are decently powerful and you are decently good at them, you don't feel yourself shackled by a lack of agility, expressivity, or capacity for producing something of quality. Rather, you feel fluent. I mean, I feel a little uncool having never more than dabbled in functional-first languages. But I'm also an adult who has shipped multiple products without any undue tooth-pulling and rather enjoyed the process. So it's hard to take my feeling of uncoolness all that seriously.

And then the motivation to pick up not only a new language but a whole new paradigm just doesn't seem that urgent or appealing, especially when compared to that new bit of infrastructure which will oh-so-obviously add a significant new tool to your toolbelt.

Re: Ask HN: Why isn't F# more popular?

#26
post #2

javascript is insanely popular and its obviously shitty. popularity correlates very lightly with quality.

Node.JS specifically has a lot of libraries in certain domains not available, with the same maturity, in other programming languages. For example, in the cryptocurrency space there are good libraries (e.g. Ethereum web3 support) but when you try to use similar ones in Python they don't have the same level of support.

Re: Ask HN: Why isn't F# more popular?

#29
In corporate, especially in MS shops, to modify an old adage, "Nobody ever got fired for choosing C#". For side projects, I'd imagine most people working on those would rather do something not Microsoft-specific.

For me, I've done plenty of freelance projects in F# over the past few years and enjoy it. I've done about two years worth of projects in Clojure, and about a half year in Scala, and F# was the nicest of the three for me.

It takes a while to figure out your style however. Since it's a FP-OO hybrid, there are often many approaches to doing the same thing (https://fsharpforfunandprofit.com/posts/13-ways-of-looking-a...) and lots of different "styles" of how FP you want to go. Some people end up with "C# in F#" and some go almost to "Haskell in F#". (I personally end up somewhere in the middle). And until you figure that out, it's hard to be as productive as in a language you already know. But once you do, I think F# provides the ability to be more productive than C#. (Granted I think immutable records and `with` syntax would get C# half way there).

However I will admit that when it comes time to transition the code back to the owner, I kind of regret using an edgy language. Fact is most workaday developers don't have a ton of interest in new languages and would rather work with something they already know.

Most of the pain points are due to running on a runtime designed for OOP. So even though idiomatic F# code shouldn't need null checks or much exception handling, you still need them if you're using C# libraries. There's also an annoying mix of camelCase and PascalCase everywhere (the former for logical consistency: a function is a value, and the latter for consistency with C# conventions).

Post reply on HN