The State of F# (2023)
Date: 2023-06-21 | create | ctech | research | fsharp |
Stack Overflow just released their 2023 Developer Survey - a survey they run every year covering everything from developer demographics to salaries to best / worst technologies. While all surveys are prone to bias, I consider the yearly SO dev survey to be one of the most comprehensive surveys for understanding the technology landscape.
For the past two years F# has been my favorite language to program in - but it comes with its own challenges, mostly revolving a relatively small community.
In this post, I want to explore:
- The state of F# as compared to other technologies and previous years
The state of F# (2023)
In 2023 F# is a known niche language (1% usage) that most users like (57% like), relatively many are interested in (2.4% want to use), and commands one of the highest salaries (ranked 3 - if you can find a job).
- Popularity (Usage): 1.03% (Rank 37)
- Admired (~Loved): 57.4%
- Salary: $99,311 (Rank 3)
F# Popularity (2023)
Popularity is essentially a proxy for usage - not how much developers like / dislike it (that comes later). For this comparison, I want to look at professional developers as they tend to spend more time coding / researching technologies and also provide some look into what people actually get paid to use.
F# popularity (Professional Developers) vs other languages:
- 2023 Popularity: 1.03% (Rank 37)
At rank 37, F# is clearly not a leading language in the industry. 1% usage is far behind first tier leading technologies like JavaScript (65%), Python (45%), or C# (29%) and roughly fits into a third tier of known niche languages like Scala (3%), Elixir (3%), Haskell (2%), Clojure (1%), Lisp (1%), Erlang (1%), Julia (1%), and Zig (1%) to name a lot.
Popularity Tiers (non-official):
- Tier 1: Industry Standard - 20%+
- Tier 2: Common Languages - 5-10%+
- Tier 3: Known niche languages - 1%+
F# popularity (Professional Developers) 2023 vs 2022:
- Rank: 34 -> 37 (= -3 -> -9%)
- Popularity: 1.08% -> 1.03% (= -0.05% -> -5% usage)
F# is holding steady around the mid 30s rank and 1% usage but usage does seem to be falling by a non-trivial amount - 5-10% depending on how you look at it. We'll have to see if this trendline farther out is ~constant but it's not a great sign for long-term usage given that this means the community isn't growing fast and community size is one of the largest issues facing the language.
F# Loved / Hated (2023)
The Dev Survey changed their terminology from Loved / Hated to Admired (well-regarded) / Desired (want to use in the next year) this year but we can still draw general conclusions by comparing them. This section really looks at the experience of using the technology which gives smaller technologies a better chance (like Rust which has won this category for the past 8 years).
Definitions:
- Admired - Have used the technology and would use again in next year (similar to Loved)
- Desired - Want to use in the next year
2023 F# Admired / Desired vs other languages
- 2023 Admired (Loved): 57.4%
- 2023 Desired: 2.4% (Rank 27)
F# sits squarely in the Okay (unofficial) tier of admiration. A majority of people who use it like it but it's not a super majority in the Love tier like Rust (85%), Elixir (73%), TypeScript (72%), or Zig (71%) and is close but not quite at the solid Like tier like Python (65%), C# (63%), Go (62%), or Kotlin (62%). Instead its joins languages like JavaScript (58%), Dart (58%), and Scala (53%) in a decent Okay tier meaning most people like it but still a lot of people that don't.
Aside: I was interested to find some very popular languages with surprisingly low Admiration scores which may point to a form of Review Bombing - Ruby (48%), Java (44%), PHP (42%)
On the Desire front, 2.4% isn't great but it's actually a pretty good turn out for a language with only 1% usage in the industry. This essentially means about double the amount of people that use it currently are interested in trying to use it next year which at least is pointed in the right direction.
Admiration Tiers (unofficial)
- Loved: 70%+
- Liked: 60%+
- Okay: 50%+
- Bad: <50%+
F# Admired (2023) vs F# Loved (2022)
- 2023 Admired (Loved): 57.4%
- 2022 Loved: 61% (Rank 17)
Like I said Admired vs Loved isn't the perfect comparison but it still gets us close. If we assume they're the same, then F# love has dropped about 4% since last year. Not a sustainable rate of decline but does match up with our popularity figures of ~5-10% decline.
If I had to guess I would bet that a lot of the Love problems for F# are due to a few scenarios:
- Getting started - There's some really good info out there (F# for Fun and Profit is amazing) but not nearly the amount you'd see for things like Python, C#, etc which makes both the value proposition a bit more daunting / unclear and the actual execution difficult esp on edge cases
- Interfacing w existing projects - My guess is that the majority of people who see F# at work do not do it willingly. Instead they are likely a C# dev who inherits some piece of code and immediately hates it cause why is it different (a parallel would be a Java team inheriting a Scala service). This is a reasonable thing to not like but I bet it skews popularity down in these situations compared to more hyped languages like Rust or Go
F# Salaries (2023)
In this section we'll take a look at Salaries for F# engineers (and I'll give my own opinion on the job market from experience). I'll note that Salaries and Job market are not equivalent and sometimes a higher salary actually means a worse job market because the underlying reason for high pay is a lack of supply of devs - often meaning a more specialized technology. However jobs / salaries are very important for the sustainability of a technology so we'll still take a look with these caveats noted.
2023 F# Salaries vs other languages
- Salary: $99,311 (Rank 3)
I am actually pretty surprised that F# salaries are so high here - 3rd behind only Zig and Erlang. I think that there are a few reasons for this:
- Seniority
- Specialization / Low n
Seniority - F# is not a beginner language, not because it's not easy to learn (I actually think of it as a better TypeScript / Python in terms of syntax / ergonomics) but because it is 1) not super popular, 2) not taught as much, and 3) has the Functional Programming label which reinforces 1 and 2. To me this means that most people who use F# have likely been around the block awhile, those that still use F# likely program on the side (thus more reps), and those that like F# are smarter because it's the beautifulest language (okay kidding w the last one - kind of) and thus are likely higher seniority thus tend to get paid more than average junior / midlevel engineers (and the average isn't brought down by these lower level engineers either).
Specialization - My experience is that there are not that many F# devs or F# jobs. So it would seem to me that those that are F# professional devs are likely filling a relatively niche role and thus may be able to command a higher salary.
All of this is conjecture and it's still surprising to me given most clear F# roles I've seen tend to be in Europe where they just pay less for SWE compared to US.
F# Salaries 2023 vs 2022
- 2023 Salary: $99,311 (Rank 3)
- 2022 Salary: $95,526 (Rank 3)
Basically from 2022 -> 2023, the salaries remained the same. Yes there's a few $k difference but that's basically a rounding error in terms of salaries / population.
Overall I'm pleasantly surprised that F# salaries are ranking so well but I do feel the need to caveat that there don't seem to be that many true F# jobs out there, esp compared to other more popular languages. In many ways I see this as a vicious cycle - a small community leads to less people using the tech in their company which leads to less jobs which leads to less people using the tech (small community).
Next Steps
I still think F# is one of the best languages available today. It makes a lot of good decisions and very few bad ones. It is beautiful compared to most other options. That said - the language's small community does pose a lot of practical challenges to wider adoption and I believe is the main thing holding it back.
That's it for this analysis - let me know if there's anything I got wrong / missed.
If you're interested in exploring what F# has to offer, check out Build a simple F# web API with Giraffe.
Want more like this?
The best / easiest way to support my work is by subscribing for future updates and sharing with your network.