As far as I can tell, F# is being sidelined by the larger programming community to the same degree that most other functional programming languages are. It’s hard to get numbers, but for years, I’ve been keeping an eye on various information channels that claim to provide a pulse on programming language popularity. These include sources such as Stack Overflow, Github, TIOBE, and just my general sense of things. Take the following for what it is: informed opinion.
Of the functional programming languages, Swift and Scala seem to be the most popular ones, but for different reasons. I should point out in advance, though, that I can program in neither Swift nor Scala.
Swift is becoming popular because the alternative for iPhone development (Objective C) is generally loathed by all. (See, incidentally, also the interesting article Why your F# evangelism isn’t working; by juxtaposition, it indirectly explains the popularity of Swift.)
Scala is another interesting entry. It’s popular, but it’s difficult to say how many Scala programmers actually use it for functional programming. Being a multi-paradigmatic language, it supports more than one style of programming, and if I understand things correctly, there’s at least three tribes of Scala programmers, each with their own style:
- Java Scala
- Ruby Scala
- Haskell Scala
Historically, this may have something to do with Scala programmers’ original backgrounds. I haven’t seen any qualified guesses at how large each of these sub-communities are, but I hear that they find each others’ styles fairly incomprehensible, so it’s almost as though it was three languages in one.
Beneath Swift and Scala, you typically see a cluster of three or four functional languages that seem fairly close in terms of popularity: F#, Clojure, and Erlang (and Elixir). Of these, F# seems to have an edge on at least Clojure.
Haskell is the de facto gold standard of functional languages, but it’s less popular than the languages I’ve already covered. It’s been around for 25+ years, though.
Then there’s a rising star like Elm, and and a lot of other nascent languages (I’m particularly keeping an eye on Purescript).
Personally, I often choose F# for greenfield development. In my opinion, it’s superior to C#, but it still runs on .NET, which isn’t going to go away in my lifetime (I’m 47, though).
I often recommend F# to other people as well. It’s never going to be as popular as the big languages, but it’ll be around for a long time. It’s officially supported by Microsoft, which often implies decades of support. Besides, you’ll learn functional programming and an ML-style language, and I think that that knowledge will have a long shelf life. It can, for example, be a nice step towards learning Haskell
Ultimately, I believe that functional programming has a bright future, but it’ll be decades before it becomes mainstream, and the functional languages that will eventually become popular will be none of those that are popular today. Those languages may not even exist yet.