F#
Hacker ApprovedRanked 22 of 163 programming languages by recommenders
A concise functional-first .NET language with a strong type system, good type inference and discriminated unions, though many feel Microsoft neglects it in favor of C#.
A concise functional-first .NET language with a strong type system, good type inference and discriminated unions, though many feel Microsoft neglects it in favor of C#.
183 people gave an opinion
- recommend it
- 154
- criticize it
- 29
- approval share
- 84%
Recommended in 12 of 13 months
- November 2025: recommended
- December 2025: recommended
- January 2026: recommended
- February 2026: recommended
- March 2026: recommended
- April 2026: recommended
- May 2026: recommended
- June 2026: recommended
- July 2026: recommended
- August 2026: recommended
- September 2026: recommended
- October 2026: recommended
- November 2026: not recommended (month in progress)
Owned for 8 years
Median of the 6 owners who said how long they have had it.
Each square is one year.
Why it carries the badge
- 154 people recommend itNeeds 10 or more, met.
- 5.3 recommenders for every criticNeeds 2 to 1 or better, met.
- Recommended in 12 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Expressive type system catches errors
“the closest thing to a rich type system yet pragmatic enough is to me F# and it’s still falls short as formal verification and ecosystem integration”
Comment from 8 Feb 2026 in “Python interpreter written in Rust for use by AI” “you get the conciseness of a scripting language but with a type system that catches errors before you run anything”
Comment from 9 Mar 2026 in “Why use F# for scripting and automation?” “F# is just as easy with a pen, but far more powerful and with a powerful type system and aggressive compiler”
Comment from 12 May 2026 in “If AI Writes Your Code, Why Use Python?” - Comment from 30 Jun 2026 in “Parse, Don't Validate – In a Language That Doesn't Want You To”
- Comment from 5 Jan 2026 in “Monads in C# (Part 2): Result”
- Comment from 27 Oct 2026 in “Python's experimental JIT to be removed”
- Comment from 22 Jul 2026 in “OpenAI and Hugging Face partner to address security incident”
- Comment from 7 Jul 2026 in “Poly/ML – A Standard ML Implementation”
Concise, terse syntax
“tame this a bit with things like the forward application operator |> that, in my opinion, largely solve the readability problem”
Comment from 22 Jan 2026 in “In Praise of APL (1977)” “you get the conciseness of a scripting language but with a type system that catches errors before you run anything”
Comment from 9 Mar 2026 in “Why use F# for scripting and automation?” “I quite enjoy C# and F# and while they are low boiler plate, you can really learn them in a week or two”
Comment from 7 Mar 2026 in “What canceled my Go context?” - Comment from 12 Nov 2025 in “.NET 10”
- Comment from 30 Nov 2025 in “Advent of Code 2025”
- Comment from 5 Nov 2025 on Hacker News
- Comment from 1 May 2026 in “I built a Game Boy emulator in F#”
Discriminated unions and pattern matching
“once you've used a language with good union and pattern matching support, this feels like a clunky hack”
Comment from 24 May 2026 in “dotNET (OK, C#) gets union types” “you can use a single case discriminated union to get that behaviour fairly cheaply, and ergonomically”
Comment from 11 Feb 2026 in “Parse, Don't Validate (2019)” “F# was years ahead of the major languages on what are increasingly looking like 'the basics'”
Comment from 1 Feb 2026 in “The history of C# and TypeScript with Anders Hejlsberg | GitHub” - Comment from 22 Feb 2026 in “Parse, Don't Validate and Type-Driven Design in Rust”
.NET interop and cross-platform deployment
“In F#, you interoperate with Task transparently, and there is a number of community libraries to further enhance the experience.”
Comment from 4 Nov 2025 in “Pain Points of OCaml” “C#/F# are great languages and I use them for almost everything that doesn't have extreme real-time constraints.”
Comment from 21 Oct 2026 in “C# now beats Rust on WASM size” “F# has plenty of features that OCaml doesn't have like proper cross-platform support, proper deployment”
Comment from 8 Nov 2025 in “Why I love OCaml (2023)” - Comment from 1 May 2026 in “I built a Game Boy emulator in F#”
- Comment from 2 Aug 2026 in “Show HN: Fuse – statically typed functional programming language”
What people warn about
Each mark is one comment
Microsoft neglects it for C#
“Microsoft's management has always behaved as if it was a mistake to have added F# into Visual Studio 2010”
Comment from 8 Apr 2026 in “Explore union types in C# 15” “Thankfully F# is more community driven, but the CLR ecosystem is definitely getting C#-centric”
Comment from 12 Nov 2025 in “.NET 10” “If only Microsoft had more love for F# instead of slowly copying its features into C#.”
Comment from 7 Jul 2026 in “Poly/ML – A Standard ML Implementation” - Comment from 20 Jan 2026 in “The Gleam Programming Language”
- Comment from 8 Nov 2025 in “Why I love OCaml (2023)”
- Comment from 24 May 2026 in “dotNET (OK, C#) gets union types”
Performance and slow compiler
“I would've loved an F# that found a way to improve on the performance issues, especially when using computation expressions.”
Comment from 8 Apr 2026 in “Explore union types in C# 15” “near useless for systems programming and predictable behavior when caring about performance”
Comment from 11 Jul 2026 in “Scarf has moved away from Haskell” “F# also has a real slow compiler. Last time hello world took a few secs on brand new mac.”
Comment from 7 Nov 2025 in “Why I love OCaml (2023)” Indentation rules awkward to edit
“I love the semantics of many indentation based languages (F# for example) but really dislike editing them”
Comment from 2 Aug 2026 in “F*: A general-purpose proof-oriented programming language” “the slightly-peculiar nature of F#'s indentation rules means tabs are less flexible in F# code”
Comment from 24 Jun 2026 in “Rhombus v1.0” Cryptic .NET errors
“reames of weird .Net errors that were never fixed and hard to understand or speculate about”
Comment from 26 Mar 2026 in “Swift 6.3 Released” “F# would be awesome but for the dogs*t .Net backend that made the tiniest error insoluble”
Comment from 8 Nov 2025 in “Why I love OCaml (2023)”
Other programming languages people recommend
The four most recommended other programming languages, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
See all 163 programming languages, rankedWhat people said
40 of the 271 comments that mention it, newest first. Each links to the original comment.
“letting the compiler tell the AI "nope, here's why" seems like a huge win in saving cycles and time”
“C#/F# are great languages and I use them for almost everything that doesn't have extreme real-time constraints.”
“the people writing F# are more likely to have some actual engineering because it's an ML but just .NET flavoured”
“F# is good because it can easily fetch and import third party dependencies in a script.”
“I love the semantics of many indentation based languages (F# for example) but really dislike editing them”
“have type systems expressive enough that using them to track escaping is not an absolute hassle”
“near useless for systems programming and predictable behavior when caring about performance”
“in the stronger languages you can reason about larger swaths about domain concepts easily”
“If only Microsoft had more love for F# instead of slowly copying its features into C#.”
“F# has type providers, which lets the compiler construct nominal types based on the structure of real data”
“the slightly-peculiar nature of F#'s indentation rules means tabs are less flexible in F# code”
“They have always behaved as if it had been a mistake to promote F# from research project”
“once you've used a language with good union and pattern matching support, this feels like a clunky hack”
“F# is just as easy with a pen, but far more powerful and with a powerful type system and aggressive compiler”
“F# is so elegant and terse for writing functional-style wrappers around OO code packages”
“also either in the dotnet 9 or 10 timeframe f# added an attribute to make it so a recursive call that isn't a tail call throws a compiler error”
“I would've loved an F# that found a way to improve on the performance issues, especially when using computation expressions.”
“Microsoft's management has always behaved as if it was a mistake to have added F# into Visual Studio 2010”
“reames of weird .Net errors that were never fixed and hard to understand or speculate about”
“you get the conciseness of a scripting language but with a type system that catches errors before you run anything”
“I quite enjoy C# and F# and while they are low boiler plate, you can really learn them in a week or two”
“F# discriminated unions are even better for this with algebraic data types built right in”
“you can use a single case discriminated union to get that behaviour fairly cheaply, and ergonomically”
“the closest thing to a rich type system yet pragmatic enough is to me F# and it’s still falls short as formal verification and ecosystem integration”
“F# was years ahead of the major languages on what are increasingly looking like 'the basics'”
“tame this a bit with things like the forward application operator |> that, in my opinion, largely solve the readability problem”
“It's maintained by like 5 people working in eastern Europe and they only do maintenance updates basically.”
“F# is an outlier, that is a real community project with lots of contributions from companies and enthusiasts”
“I also really didn't like having to to Seq.map or List.filter for everything instead of just calling methods off of the seq or list.”
“F# also has substantially better type inference so you don't need to write the types out everywhere”
“Terse languages with great collection functions in the standard libraries and tail call optimization.”
“hiring/onboarding for F# hasn't at all been a limiting factor. Ultimately F# is not a particularly difficult language to learn.”
“F# is a really good OOP language. It's also concise, so I don't spend as much time jumping around files”
“Thankfully F# is more community driven, but the CLR ecosystem is definitely getting C#-centric”
“F# would be awesome but for the dogs*t .Net backend that made the tiniest error insoluble”
“The use case for F# seems to be shrinking because MS is putting all its energy in language.”
“F# has plenty of features that OCaml doesn't have like proper cross-platform support, proper deployment”
“F# also has a real slow compiler. Last time hello world took a few secs on brand new mac.”
“F# has a similar whitespace syntax to Python, but is statically typed and can be compiled AoT.”
“In F#, you interoperate with Task transparently, and there is a number of community libraries to further enhance the experience.”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.