# F#

154 Hacker News commenters recommended F# and 29 criticized it, November 2025 to November 2026. It was recommended in 12 of 13 months; owners who said how long report a median of 8 years (6 owners). It meets the Hacker Approved badge rule.

**Verdict:** 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#.

## Why people recommend it

- Expressive type system catches errors (8 comments): "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" ([source](https://news.ycombinator.com/item?id=46932706)) "you get the conciseness of a scripting language but with a type system that catches errors before you run anything" ([source](https://news.ycombinator.com/item?id=47307189)) "F# is just as easy with a pen, but far more powerful and with a powerful type system and aggressive compiler" ([source](https://news.ycombinator.com/item?id=48109528))
- Concise, terse syntax (7 comments): "tame this a bit with things like the forward application operator |> that, in my opinion, largely solve the readability problem" ([source](https://news.ycombinator.com/item?id=46723527)) "you get the conciseness of a scripting language but with a type system that catches errors before you run anything" ([source](https://news.ycombinator.com/item?id=47307189)) "I quite enjoy C# and F# and while they are low boiler plate, you can really learn them in a week or two" ([source](https://news.ycombinator.com/item?id=47285939))
- Discriminated unions and pattern matching (4 comments): "once you've used a language with good union and pattern matching support, this feels like a clunky hack" ([source](https://news.ycombinator.com/item?id=48253253)) "you can use a single case discriminated union to get that behaviour fairly cheaply, and ergonomically" ([source](https://news.ycombinator.com/item?id=46972336)) "F# was years ahead of the major languages on what are increasingly looking like 'the basics'" ([source](https://news.ycombinator.com/item?id=46845675))
- .NET interop and cross-platform deployment (5 comments): "In F#, you interoperate with Task transparently, and there is a number of community libraries to further enhance the experience." ([source](https://news.ycombinator.com/item?id=45811305)) "C#/F# are great languages and I use them for almost everything that doesn't have extreme real-time constraints." ([source](https://news.ycombinator.com/item?id=50180581)) "F# has plenty of features that OCaml doesn't have like proper cross-platform support, proper deployment" ([source](https://news.ycombinator.com/item?id=45853634))

## What people warn about

- Microsoft neglects it for C# (6 comments): "Microsoft's management has always behaved as if it was a mistake to have added F# into Visual Studio 2010" ([source](https://news.ycombinator.com/item?id=47690063)) "Thankfully F# is more community driven, but the CLR ecosystem is definitely getting C#-centric" ([source](https://news.ycombinator.com/item?id=45899389)) "If only Microsoft had more love for F# instead of slowly copying its features into C#." ([source](https://news.ycombinator.com/item?id=48814298))
- Performance and slow compiler (3 comments): "I would've loved an F# that found a way to improve on the performance issues, especially when using computation expressions." ([source](https://news.ycombinator.com/item?id=47690260)) "near useless for systems programming and predictable behavior when caring about performance" ([source](https://news.ycombinator.com/item?id=48870046)) "F# also has a real slow compiler. Last time hello world took a few secs on brand new mac." ([source](https://news.ycombinator.com/item?id=45849173))
- Indentation rules awkward to edit (2 comments): "I love the semantics of many indentation based languages (F# for example) but really dislike editing them" ([source](https://news.ycombinator.com/item?id=49147028)) "the slightly-peculiar nature of F#'s indentation rules means tabs are less flexible in F# code" ([source](https://news.ycombinator.com/item?id=48663399))
- Cryptic .NET errors (2 comments): "reames of weird .Net errors that were never fixed and hard to understand or speculate about" ([source](https://news.ycombinator.com/item?id=47535881)) "F# would be awesome but for the dogs*t .Net backend that made the tiniest error insoluble" ([source](https://news.ycombinator.com/item?id=45860356))

## Alternatives hackers recommend

- [Rust](https://hackerapproved.com/p/rust.md): 2039 recommend
- [Go](https://hackerapproved.com/p/go-programming-language.md): 1254 recommend
- [Python](https://hackerapproved.com/p/python.md): 1067 recommend
- [Zig](https://hackerapproved.com/p/zig.md): 743 recommend
- [TypeScript](https://hackerapproved.com/p/typescript.md): 574 recommend

## Cite as

Hacker Approved, "F#", https://hackerapproved.com/p/f-sharp/ (counts from 1,795,640 Hacker News comments, November 2025 to November 2026).
