4 Comments

You missed a BUNCH of influences that F# has on many other languages. It's all here... LINQ in particular being influenced by Haskell is fairly well known, but he it's worth following the thread on where async and reactive extensions (Rx) came from.

https://fsharp.org/history/hopl-final/hopl-fsharp.pdf

Expand full comment

There's a disclaimer right at the intro:

A disclaimer before we get started: I’ve included a rough timeline, but can’t cover every language. So I’ll cover enough distinct languages to point out some interesting points. Don’t be offend if your favourite language is left out!

Expand full comment

Not offended - just factual. Leaving off an influence as big as reactive - so big it has its own manifesto - is pretty glaring. It's like talking about the history of cooking shows and leaving out Julia Child.

Expand full comment

While F# didn't invent comprehensions, it did help popularize a more intuitive syntax through its "computation expressions" feature. This was significant because F#'s approach made monadic computations (like list comprehensions) more readable and approachable for mainstream developers.

Instead of Haskell's more mathematical syntax, F# introduced the seq { } and other builder expressions that feel more natural to programmers coming from imperative languages. This proliferated to later versions of Scala and Kotlin's coroutines - and even Rust's async/await borrowed from F# as its original inspiration - OCaml - didn't have anything like that in its language at the time.

Expand full comment