Live data from Hacker News

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

news.ycombinator.com

31–40 of 115 posts

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

#31
As a long-time advocate of functional programming, I was once asked after a talk what is the "best" FP language to learn. Since I'm known as a Haskell/Scala/ML person, I surprised much of the audience by answering that I thought F# was the best entry point. What I did not say, however, was that I think that Windows is a challenging environment for anyone who is used to Linux/Mac -- and this includes the "open source" world in general. I think that Microsoft is a leader in language design, but their platform relevance was slipping for many years. I believe it may be on the upswing (with Xamarin etc). I would encourage you to stick with F# as you will be further along in not only understanding FP, but other modern programming languages, including ones that haven't been invented yet.

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

#32
Because Microsoft could've promoted it more but it didn't.

>What are the F#'s downsides which prevent its more widespread usage?

The two biggest downsides I've encountered are not related to the language itself. One is lagging support in Visual Studio (didn't support folders for long time, poor cross-language C#/F# navigation, no support in .NET Core projects etc.) and the other is the lack of examples/frameworks for WPF applications when I needed them.

Other than that it's my favorite language for all kinds of tasks -- from production apps to scripts.

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

#33
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 disagree. Functional programming languages are not harder than for example OO-languages. The thing is that people usually learn procedural or OO -paradigm first when they start programming and moving on to FP requires a mindset change.

Recursion is harder than iteration. Immutability is harder than mutability. Callbacks, dependancy injection, and implicit loops are hard to wrap your head around.

Oop is just a strut with functions and a fancy dress. It's not really a new way to think.

I trained many, many, many people in small groups in programming. The functional concepts are always the hard ones to explain.

And as a dev, even when i deeply understand the benefits of immutability, i find it often being a huge constraint for the most mundane tasks.

Most programmers make simple programs. They don't need complex tools.

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

#35
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 disagree. Functional programming languages are not harder than for example OO-languages. The thing is that people usually learn procedural or OO -paradigm first when they start programming and moving on to FP requires a mindset change.

This matches my observations as well. My university used Haskell as its intro language for Math and CS students, and the people who struggled the most where those who already knew a bit of programming in another language, but weren't really strong programmers. Those who had never programmed before had, on the whole, no great problem understanding Haskell, but then got completely lost in the follow up course that was taught in Java and focused on OO.

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

#36
post #2

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

Users don't care about imperative, functional, object oriented or what coffee you drink in the morning... stop calling languages shitty and get some shit done with the language you feel more comfortable with. We don't code for the shake of coding.

Doesn't change the fact that javascript is shit.

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

#37
I "like F#" but there are a few layers between my having some fun a few times a month and a business adopting it.

F# makes sense when a) functional programming has a history of being advantageous in the domain, b) there is a mandate or clear advantage to develop in the .net ecosystem, c) a founder or engineering team has serious expertise with F#. Even then you have to ask if a functional-ish C# codebase you can easily add 50 developers to if needed is good enough.

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

#38
post #2

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

What's so shitty of javascript? From what I've heard is that people's opinion has changed about that. Javascript is evolving, and so is the ecosystem.

Js was a terrible language with a great platform. Now it's a terrible languages, with a lot a make up to make it look decent, and an a powerful and rich yet very unfriendly and unstable ecosystem.

The only reason js has any success at all is the web.

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

#39
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).

Scala is also far closer to Java than F# is to C#. You can write Scala code that looks almost exactly like Java code.

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

#40

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…

Scala may be worth a look. You can write libraries using it and pop them into Java code like it's no big deal. There's a few caveats and gotchas, but overall I've been pretty happy with what it's allowed us to do (Apache Spark in Scala especially is lovely).
Post reply on HN